2014-02-18 28 views
0

一些库被害人研究过程中,我发现这种代码剂量dladdr能够从静态成员获取信息?

Dl_info info = { 
    NULL, 
    NULL, 
    NULL, 
    NULL 
}; 

if (!dladdr((void*) dirSep, &info)) { 
    return libPath.c_str(); 
} 

其中dirSepstatic const char*成员在培训班里存在此代码(进来的成员函数),所以我的问题是:是否有记录,任何地方dladdr功能能得到一个信息形式static const member字段?

回答

1

不,dladdr不能承诺或保证。它只能查看模块中的符号表。如果符号表包含该符号,则它可以将其提供给您。如果没有,不是。符号表中的符号取决于模块的编译方式,链接方式以及如何和是否将其剥离。

一般来说,如果代码可以链接到它,那么dladdr应该找到它。