我面临着一个很大的问题。我需要修补可执行文件以修改其行为。该程序是用C语言编写的,直到现在我一直在使用IDA来编辑它,但是这样我就无法取代整个函数等。对我来说,最简单的方法就是创建一种加载程序并在运行之前对其进行修补的加载程序。这将节省我很多时间,所有编辑都会容易得多。
问题是我找不到任何关于如何做的文章。你们有没有人解释我应该如何处理这个过程?加载器将用C / C ++编写。
答案 0 :(得分:1)
尝试这个过程完全是一种常规。
LD_PRELOAD
来实现目标吗?由于UNIX的“源是可用的”哲学,没有很多工具可以帮助修补二进制文件 - 通常,选择的工具是一个名为adb
的程序 - 一个调试器(第7版) UNIX版手册说'adb - debugger')。它允许您编辑二进制文件。
然而,人们很少做出重大改变,因为它听起来像你想做的,主要是因为它是非常辛苦的工作,通过重新编译原始来源更简单,更可靠。