我想知道,有没有Windows平台的反汇编程序(软件)可以生成汇编源代码,也可以由汇编程序编译?
既然反汇编程序可以基于EXE文件生成汇编代码,那么有没有可能将汇编代码直接用作源代码,然后由像NASM这样的汇编程序编译源代码?
发布于 2010-11-13 22:04:59
IDA可以生成源代码。但在大多数情况下,你不能编辑它。假设代码如下:
loc_401020:
ret
; ...
dd 0FFFFFFFFh, 0, 1, 401020h, 0
; ^^^^^^^ can you find it in big real program?要向中插入任何新的字节,您必须确保任何标签或loc_XXXX将保持在相同的偏移量,或者您必须替换其对标签的所有引用。
如果你不移动任何代码,你不需要重新编译它--只需要打补丁或者扩展代码部分。
发布于 2010-11-13 21:48:51
我认为IDA在这方面做得很好。
无论如何,主要的问题是生成的汇编代码非常难以阅读和管理(没有变量名、函数名和签名),所以尽管从技术上讲它是ASM代码,但使用IDA作为智能编辑器来推断这些信息仍然更好。
发布于 2010-11-13 21:50:07
我会直接在调试器中修补可执行文件,然后保存修改后的可执行文件。
反编译和重新编译是一个脆弱的过程,因为重新汇编的代码的任何位置的变化都会破坏程序。我认为,某些asm指令有多种二进制表示形式,这使问题变得更加复杂。
https://stackoverflow.com/questions/4172782
复制相似问题