2010-08-31 52 views
3

我有一个ELF共享对象,我想对其进行修改,以便系统函数memcpy的调用实际上路由到memcpy的自定义版本。如何重新映射一个符号来调用不同的函数

我一直研究和我看了一下PLT重定向和ELF感染,但即时通讯仍然不知道如何,我可以完成我的目标

任何人都可以给我一些暗示和提示,或详细阐述PLT重定向和ELF感染

问候

保罗

+1

注意的memcpy()可以是本征(内联)在这个.so因此不能被替换。 – blaze 2010-08-31 12:38:45

回答

1

你有没有尝试过的-wrap选项,当你链接您的可执行文件到LD?它应该重定向该符号,以便对原始函数的所有调用(包括库中的那些函数)将进入替换。

参见this example

[编辑:以上评论者是指出,如果内联调用库memcpy的,你有没有追索短重建库的正确]