首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有能生成可编译汇编源代码的反汇编器?

有没有能生成可编译汇编源代码的反汇编器?
EN

Stack Overflow用户
提问于 2010-11-13 21:41:14
回答 4查看 700关注 0票数 0

我想知道,有没有Windows平台的反汇编程序(软件)可以生成汇编源代码,也可以由汇编程序编译?

既然反汇编程序可以基于EXE文件生成汇编代码,那么有没有可能将汇编代码直接用作源代码,然后由像NASM这样的汇编程序编译源代码?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-13 22:04:59

IDA可以生成源代码。但在大多数情况下,你不能编辑它。假设代码如下:

代码语言:javascript
运行
复制
 loc_401020:
    ret

 ; ...

 dd 0FFFFFFFFh, 0, 1, 401020h, 0
 ;                    ^^^^^^^ can you find it in big real program?

要向中插入任何新的字节,您必须确保任何标签或loc_XXXX将保持在相同的偏移量,或者您必须替换其对标签的所有引用。

如果你不移动任何代码,你不需要重新编译它--只需要打补丁或者扩展代码部分。

票数 1
EN

Stack Overflow用户

发布于 2010-11-13 21:48:51

我认为IDA在这方面做得很好。

无论如何,主要的问题是生成的汇编代码非常难以阅读和管理(没有变量名、函数名和签名),所以尽管从技术上讲它是ASM代码,但使用IDA作为智能编辑器来推断这些信息仍然更好。

票数 1
EN

Stack Overflow用户

发布于 2010-11-13 21:50:07

我会直接在调试器中修补可执行文件,然后保存修改后的可执行文件。

反编译和重新编译是一个脆弱的过程,因为重新汇编的代码的任何位置的变化都会破坏程序。我认为,某些asm指令有多种二进制表示形式,这使问题变得更加复杂。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4172782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档