【发布时间】:2011-10-28 19:23:19
【问题描述】:
如果我有一个包含已编译 C 代码的二进制可执行文件,我是否可以使用十六进制编辑器来编辑该二进制文件并将特定指令更改为另一条指令,例如 nop 或 jmp?如何知道我要更改的指令的偏移量?
是的,这是为了教育目的。
【问题讨论】:
-
是的,您可以为此使用十六进制编辑器。要获得偏移量,您需要一个调试器来跟踪程序流程。只要您的编辑不改变整体代码大小并且用另一个字节替换一个字节,这是一个“微不足道”的操作。一旦你开始添加或删除代码块,你就会进入一个痛苦的世界。
-
@MarcB 我能够使用十六进制编辑器和调试器 (gdb) 将
call指令转换为nop指令。
标签: x86 mach-o machine-code hex-editors