Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将exe或dll反编译到程序集_Dll_Assembly_Exe_Decompiling - Fatal编程技术网

如何将exe或dll反编译到程序集

如何将exe或dll反编译到程序集,dll,assembly,exe,decompiling,Dll,Assembly,Exe,Decompiling,我对汇编语言很感兴趣,我想了解exe文件是如何工作的,DLL是如何运行的等等。。。我有一个想法,写一个应用程序,将一个exe反编译成汇编代码,因为我不是一个很好的汇编程序员,而且由于缺乏exe内部工作的知识,我无法做到这一点。因为我可以读取十六进制的exe,我认为这不是不可能的,但我不知道如何编写自己的程序。任何资源或任何帮助都将不胜感激。我认为您正在寻找的是反汇编程序,而不是反编译程序。IDA pro似乎很受欢迎,你可以在免费下载一个旧版本。看看这个,我怀疑它会回答你的大部分问题。已经有很多为

我对汇编语言很感兴趣,我想了解exe文件是如何工作的,DLL是如何运行的等等。。。我有一个想法,写一个应用程序,将一个exe反编译成汇编代码,因为我不是一个很好的汇编程序员,而且由于缺乏exe内部工作的知识,我无法做到这一点。因为我可以读取十六进制的exe,我认为这不是不可能的,但我不知道如何编写自己的程序。任何资源或任何帮助都将不胜感激。

我认为您正在寻找的是反汇编程序,而不是反编译程序。IDA pro似乎很受欢迎,你可以在

免费下载一个旧版本。看看这个,我怀疑它会回答你的大部分问题。

已经有很多为你编写的分解器(见上文),但我不认为阅读反汇编代码会帮助你成为一个更好的汇编程序编写者。主要原因是编译器在生成程序集之前进行了大量优化。通常,这会导致读取非常棘手的代码,但分析效率很高。

如果您对编译程序在汇编程序级别的外观感兴趣,则更有意义的方法是编译并查看生成的程序集。例如,对于gcc/g++来说,这只需要
gcc-c-S filename.c
,并将留下一个明文汇编文件供查看。

我假设您要接受普通教育,顺便说一句+1它对您有帮助(汇编语言初学者)我否决了这个回答,因为这不是一个答案,只是试图阻止OP尝试反汇编。再想一想,既然这是一个有点道理的评论,我想撤销否决票,但我不想这么做。有没有反编译64位应用程序的方法?当然有。最新版本的IDA可以(如其他许多)那样,它不是免费的。这假设你有程序的源代码,并且使用的程序可以由GCC编译,比如C、C++、Objul-C、Objul-C++、FORTRAN、艾达、D、GO和BRIG。@ Alxand EngayBayGutt:你也可以分解对象文件,例如,对于linux,您可以使用
objdump
。但是编译自己的代码并查看它的外观更简单,并且允许进行实验。今天,这仍然是相当困难的,特别是如果您正在使用优化进行编译;但我记得8086的Turbo Pascal生成的代码非常容易理解。