草庐IT

c++ - 从库中查找 argc 和 argv

如何找到程序的argc和argv来自共享对象?我正在用C编写一个库,它将通过LD_PRELOAD加载.我已经能够通过两种不同的方式找到堆栈:阅读rsp通过内联__asm__打电话。阅读/proc//maps并解析堆栈的条目。然后我可以创建一个指针,将其指向堆栈段,然后循环查找数据。问题是我想不出一种有效的方法来确定哪些字节是argc和指向argv的指针的指针字符串。我知道/proc//cmdline还包含参数,每个参数由0x00分隔,但我有兴趣在内存中找到所有内容。在gdb中我看到一个DWORD对于argc其次是QWORD这是第一个指针。argc地址前20字节是一个指向主程序代码段的指

c++ - 从库中查找 argc 和 argv

如何找到程序的argc和argv来自共享对象?我正在用C编写一个库,它将通过LD_PRELOAD加载.我已经能够通过两种不同的方式找到堆栈:阅读rsp通过内联__asm__打电话。阅读/proc//maps并解析堆栈的条目。然后我可以创建一个指针,将其指向堆栈段,然后循环查找数据。问题是我想不出一种有效的方法来确定哪些字节是argc和指向argv的指针的指针字符串。我知道/proc//cmdline还包含参数,每个参数由0x00分隔,但我有兴趣在内存中找到所有内容。在gdb中我看到一个DWORD对于argc其次是QWORD这是第一个指针。argc地址前20字节是一个指向主程序代码段的指

c - 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

我正在尝试使用GTK构建一个helloworld,其中包括以下行:#include如你所料。提供的Makefile包含以下行:GTK_INCLUDE=-I/usr/local/include所以它期望在/usr/local/include/gtk/gtk.h中找到gtk.h。但是在我的系统上,它位于/usr/local/include/gtk-2.0/gtk/gtk.h,即在一个版本化的子目录中。显然,在这种情况下,我可以将-I/usr/local/include/gtk-2.0添加到Makefile,但同样的问题会出现在gtk.h的依赖项等方面。有什么好的方法可以解决这个问题吗?可以

c - 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

我正在尝试使用GTK构建一个helloworld,其中包括以下行:#include如你所料。提供的Makefile包含以下行:GTK_INCLUDE=-I/usr/local/include所以它期望在/usr/local/include/gtk/gtk.h中找到gtk.h。但是在我的系统上,它位于/usr/local/include/gtk-2.0/gtk/gtk.h,即在一个版本化的子目录中。显然,在这种情况下,我可以将-I/usr/local/include/gtk-2.0添加到Makefile,但同样的问题会出现在gtk.h的依赖项等方面。有什么好的方法可以解决这个问题吗?可以

c++ - 编写 C/C++ 守护进程 (Linux)

我想编写一个通用(C/C++)库,用于在Linux环境中开发守护进程。与其重新发明轮子,我想我应该来这里看看是否有任何知名的库在使用。库可以是C或C++-虽然我更喜欢C++(也许是优秀的BOOST库的一部分,或者基于它?)。顺便说一句,就库选择标准而言,由于守护进程是非常“关键任务”的组件,如果您建议的库由一组开发人员积极维护(例如BOOST库[再次]),有一个活跃的社区(或者至少有一个在遇到棘手情况时可以求助的邮件列表),而不是一个孤立无援的人...我看到了这个document,这是一个很好的起点,但有点过时了,所以我想知道是否有更好、更广为人知/使用的东西......?顺便说一句,

c++ - 编写 C/C++ 守护进程 (Linux)

我想编写一个通用(C/C++)库,用于在Linux环境中开发守护进程。与其重新发明轮子,我想我应该来这里看看是否有任何知名的库在使用。库可以是C或C++-虽然我更喜欢C++(也许是优秀的BOOST库的一部分,或者基于它?)。顺便说一句,就库选择标准而言,由于守护进程是非常“关键任务”的组件,如果您建议的库由一组开发人员积极维护(例如BOOST库[再次]),有一个活跃的社区(或者至少有一个在遇到棘手情况时可以求助的邮件列表),而不是一个孤立无援的人...我看到了这个document,这是一个很好的起点,但有点过时了,所以我想知道是否有更好、更广为人知/使用的东西......?顺便说一句,

c - C for Linux 中的公钥实现

我正在尝试使用公钥加密来签名并稍后验证文件。该文件是一个简单的纯文本文件,其中包含用于创作目的的用户信息。我尝试了不同的站点来获取公钥加密算法的C实现,但我没有找到任何东西。许多站点都指向使用证书(x.509等),但这超出了我的需要。我只是在寻找一种方法来生成公钥和私钥,并使用一种相对知名的算法来签署和验证文件。有没有指向纯C实现的指针?重点是我可以重用的代码,而不是外部库。主要问题是我不想为了拥有一个非常基本的公钥系统而链接到一个完整的库及其依赖项。谢谢。 最佳答案 OpenSSL是一个很好的包。您可以只使用提供基本RSA实现的加

c - C for Linux 中的公钥实现

我正在尝试使用公钥加密来签名并稍后验证文件。该文件是一个简单的纯文本文件,其中包含用于创作目的的用户信息。我尝试了不同的站点来获取公钥加密算法的C实现,但我没有找到任何东西。许多站点都指向使用证书(x.509等),但这超出了我的需要。我只是在寻找一种方法来生成公钥和私钥,并使用一种相对知名的算法来签署和验证文件。有没有指向纯C实现的指针?重点是我可以重用的代码,而不是外部库。主要问题是我不想为了拥有一个非常基本的公钥系统而链接到一个完整的库及其依赖项。谢谢。 最佳答案 OpenSSL是一个很好的包。您可以只使用提供基本RSA实现的加

c++ - 还使用 C++ 静态初始化器时的 Linux 共享库初始化和取消初始化

我想要自动调用来初始化和取消初始化我的共享库。在我的共享库中,由于使用了第三方代码(例如UnitTest++),我需要对C++对象进行一些静态初始化。当我的init函数被执行时,我需要得到保证,C++对象(所有链接的翻译单元)的所有静态初始化都已完成(对于deinit反之亦然);因此与C++程序中main()的执行预期的条件相同。我看过很多关于linux共享库init/deinit的信息,例如喜欢:AutomaticallyexecutedfunctionswhenloadingsharedlibrariesHowtoinitializeasharedlibraryonLinuxhtt

c++ - 还使用 C++ 静态初始化器时的 Linux 共享库初始化和取消初始化

我想要自动调用来初始化和取消初始化我的共享库。在我的共享库中,由于使用了第三方代码(例如UnitTest++),我需要对C++对象进行一些静态初始化。当我的init函数被执行时,我需要得到保证,C++对象(所有链接的翻译单元)的所有静态初始化都已完成(对于deinit反之亦然);因此与C++程序中main()的执行预期的条件相同。我看过很多关于linux共享库init/deinit的信息,例如喜欢:AutomaticallyexecutedfunctionswhenloadingsharedlibrariesHowtoinitializeasharedlibraryonLinuxhtt