用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c

用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c,第1张

这个确实很困难。如果是DOS程序还好办,如果是Windows程序,其反汇编的工作量相当巨大。而且这仅是反汇编,得到的只是勉强能用的汇编代码,而从汇编代码再反工程到C,真的是件很困难的事。程序简单还好办,复杂的就真是件费力的事了。放弃吧。

如果是自己写的程序,只要整个设计还记得,那就重新写一遍吧。

只能找静态反编译软件,反编译成为汇编代码,想反成C代码基本不可能的了。

个别有能反成C代码的可读性也差的太离谱,基本等于翻译汇编,还不如看汇编呢。

W32Dasm是一个静态反汇编工具,也是破解人常用的工具之一,它也被比作破解人的屠龙刀。

反编译exe文件基本上是不可能的,因为反编译过程由很多因素会干扰,反编译过程:

1、检测程序时候加壳了,如果加壳就必须先去壳。

2、去壳后需要猜测程序员采用的是什么编程语言,编程语言有:java/c/c++/c#/vb/VC++等等。

3、猜测到程序员使用的语言后根据编程语言进行汇编,汇编需要考虑到语言中的语法问题,即使是同种语言,一种命令有多种说法,汇编成功率在20%左右。

4、汇编成功后基本就已经到反编译的顶端了,要从汇编程序翻译成源码可能性为1%。

因为C#开发的程序被编译后并没有成为可运行的二进制文件,而是一种中间状态,是由MSIL语言写成的程序文件。从理论上说,各种NET语言只要完成的功能相似,编译后的MSIL语言文件都是相似的,可见MSIL的代码是对应着较为固定的高级语言结构的。所以,理论上,把MSIL语言进行返推,就可以将其反编译为NET中的任何一款高级语言。

以上就是关于用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c全部的内容,包括:用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c、求C语言反编译软件、如何反编译exe文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9465601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存