如何检测"浏览器插件"执行前的库依赖

时间:2016-06-13 04:00:37

标签: qt embedded-linux

我们知道,有两种库加载方法。

1)静态库(.a):与应用程序链接并成为应用程序一部分的目标代码库。 2)动态链接共享对象库(.so),它将在执行应用程序时链接,并且可以以两种方式使用。

a) Dynamically linked at run time but statically aware. 
b) Dynamically loaded/unloaded and linked during execution (i.e. browser plug-in) using the dynamic linking loader system functions.

编译完成后,我们可以检查类型' a'的库依赖关系。如下

objdump -x usr / bin / flashcp

.....

动态部分:

需要libgcc_s.so.1

需要libc.so.6

我的问题是如何检查/检测类型' b'库依赖?请建议有没有办法在执行前检测?

提前致谢

瑟尔

1 个答案:

答案 0 :(得分:1)

通常无法检查动态加载的库以及通过函数指针调用其函数。

在某些特殊情况下,作为黑客攻击,您可以尝试各种方法对可执行文件进行逆向工程,例如:静态分析Windows上LoadLibraryGetProcAddress调用的代码。您可以获得一些可用于许多可执行文件的启发式方法,但除了在虚拟机中执行代码并在发生LoadLibrary / dlopen时拦截所有调用时,除了执行代码之外,无法确保其工作。