将 EXE 反编译为 ASM
Posted
技术标签:
【中文标题】将 EXE 反编译为 ASM【英文标题】:Decompiling EXE to ASM 【发布时间】:2009-10-22 10:00:41 【问题描述】:我想在空闲时间制作一个基本的防病毒软件。 基本上我了解了EXE(windows)文件的基本结构。 如何从文件和 PE 头中提取 ASM 代码?
【问题讨论】:
你为什么认为,杀毒软件中需要反汇编程序?? 那么我将如何检测病毒部分呢? @zxcat 你会怎么做呢? 【参考方案1】:你可以安装Cygwin并使用objdump将一个exe反编译成asm。确保在安装 cygwin 时选择 binutils。安装 cygwin 后,您可以从 bash shell 运行以下命令:
objdump -Slx yourpgm.exe
【讨论】:
是的,或者在虚拟机上运行 Linux 并在那里使用 objdump。听起来像是黑色幽默;)【参考方案2】:您可以使用一些免费的分布式反汇编程序。例如:ollydbg diassembler。
注意:PE 标头中只有一些 MS-DOS 存根可执行代码。
【讨论】:
"PE 标头中只有一些 MS-DOS 存根可执行代码。"如果没有呢?你永远不知道病毒会选择隐藏在哪里,而且标头也会加载到内存中,对吧?以上是关于将 EXE 反编译为 ASM的主要内容,如果未能解决你的问题,请参考以下文章
为啥将class反编译为java后,java直接编译时有错误
逆向工程:Python反编译工具的一点介绍(如何还原pyc文件)