如何用自己实现的malloc替换二进制文件中的函数调用?

How to replace function calls in binary files with self implemented malloc?

提问人:Frontier_Setter 提问时间:11/3/2023 更新时间:11/3/2023 访问量:55

问:

我的代码是用 C/C++ 编写的。我想用我自己实现的函数替换原始调用,而无需修改代码或重新编译。看似可以做这个事情,但只能用于动态链接的情况。据我所知,我需要修改的二进制文件所用的库都是静态链接的,所以可能没有任何效果。mallocLD_PRELOAD

有一种方法可以通过内核中的 ftrace 进行热修补。用户模式下有类似的功能吗?

C++ C malloc 钩子

评论

1赞 Joshua 11/3/2023
等?您是否静态链接到 glibc?有一个警告不要这样做。
0赞 HolyBlackCat 11/3/2023
为了以防万一,我会先尝试。LD_PRELOAD
0赞 Craig Estey 11/3/2023
查看可执行文件的符号表:您可以在编辑器中使用或滚动输出。如果 (e.g.) 的字段是 ,则不是静态链接的readelf -s ./myprogramgrepNdxmallocUNDlibc
0赞 Frontier_Setter 11/14/2023
@CraigEstey我得到了.所以它似乎是静态链接的。14malloclibc
0赞 Frontier_Setter 11/14/2023
但是和两者都是.既然它们用于支持 malloc,我可以尝试钩接这两个函数吗?sbrk@GLIBC_2.2.5 (3)mmap@GLIBC_2.2.5 (3)UND

答: 暂无答案