当前位置: 技术问答>linux和unix
[请教]怎样获得共享库(动态连接库)中函数的原型以便编写专用库来覆盖它?
来源: 互联网 发布时间:2015-03-20
本文导语: 我想要自己编写一个库,然后用设置LD-PRELOAD变量来覆盖掉原库中坏掉的函数,但我有找不到源代码,很头大 另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦? 用nm可以看到函数的名称,但仍然有2个问题: ...
我想要自己编写一个库,然后用设置LD-PRELOAD变量来覆盖掉原库中坏掉的函数,但我有找不到源代码,很头大
另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或者库本身看出来?
2.我所要覆盖的库还需要调用其他的库中的函数,如果我不把这些库也ld进来,就会提示函数未定义,但这些库实在太多呀
恳请高手出马搭救!
另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或者库本身看出来?
2.我所要覆盖的库还需要调用其他的库中的函数,如果我不把这些库也ld进来,就会提示函数未定义,但这些库实在太多呀
恳请高手出马搭救!
|
对于第二个问题 现在很多函数库提供工具生成-l参数 比如libIDL-config libglade-config
什么的 比如
gcc xxx.c -o xxx `libIDL-config --libs` 就可以了
什么的 比如
gcc xxx.c -o xxx `libIDL-config --libs` 就可以了
|
找原型,我只知道去找头文件,找库依赖的话,我只会看ldd的输出。
|
========================
另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或
者库本身看出来?
==============================
你在windows中也是看不到函数的参数的啊,如果非要看的话,恐怕只有反汇编,再分析了
另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或
者库本身看出来?
==============================
你在windows中也是看不到函数的参数的啊,如果非要看的话,恐怕只有反汇编,再分析了
|
nm 或者objdump能看到符号表
|
?!我也只是知道第一个问题,就是用nm
第二个我也想知道,不过,在MS下也不可以看得出其中的参数来吧?!
学习ing
第二个我也想知道,不过,在MS下也不可以看得出其中的参数来吧?!
学习ing
|
另外,请问有没有像Windows中Depends一样强大的工具吗,谢啦?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或
者库本身看出来?
用nm可以看到函数的名称,但仍然有2个问题:
1.怎么知道库中函数的原型,也就是函数的参数是什么?怎么从调用这个库的程序/或
者库本身看出来?