反编译成c
文件有两种,一种是文本文件,一种是程序二进制文件,不管哪种文件都可以用十六进制编码来显示,称为hex文件。
1、文本Hex文件一般不需要转成C语言,更多的是程序二进制文件,用十六进制显示,可以转换成C语言,一般使用相应的反汇编程序来实现,这方面的工具很多,不同的平台略有不同。Windows平台一般常用的OllyDbg、Windbg、IDA,Linux平台使用最多的是GDB和Linux版的IDA。
OllyDbg,简称OD,一般是软件逆向工程爱好者,最先使用的一个工具,但是因为当下不在更新,所以一般用一般用于学习使用,下图中左上角的区域即为反汇编区域 ,用户可以根据汇编指令,分析程序算法,然后自己编写代码。
通过这个实例 ,相信应该能理解一个大致的流程啦。
B. 如何将keil编译后生成的.BIN .ASM .HEX 反编译成C文件
明确告诉你,不可能。
如果是把.BIN或.HEX反汇编成汇编程序,那是可以的,因为机器码与汇编命令是一一对应的,网上有这样的工具。但如果想把汇编整理成C那就不现实了,每种C编译器的编译方式都是不一样的,哪怕同一种编译器采用不同的优化策略,生成的机器码也不一样,可想而知,这个难度有多大,因此,做逆向工程的都是研究汇编的。
另外,.ASM是汇编程序的扩展名
C. 如何将.exe的可执行程序反编译成为C语言代码程序
没有完全可以的,想要代码就自己写
这种软件多数是假的,要么就是有毒的
.exe的可执行程序都是已经编译过了,很难恢复为代码
D. 可不可以将exe文件反编译成C++代码
不能。
程序:
#include <stdio.h>
void main()
{
int j=1;
}
和程序:
#include <stdio.h>
void main()
{
int i=1;
}
反汇编各得5071行,没有区别。
如果编译时用了/O2, 再反汇编回来,得到行数不同。
要想反编译成原文件,显然不可能。
除非开发一个新编译器,把源程序用注解方式写进去,就能反编译回来。
E. 一个C++的EXE文件,怎么反编译成C++语言
1、有一个叫exe2c的软件,可以把exe文件转成c代码。不过建议不要用,看它生成的代码会让人痛不欲生的。2、计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
F. 请问hex文件可以反汇编为C语言程序呢。谢谢
bin 或 hex文件可以反汇编为汇编语言程序,
bin 或 hex文件不能反汇编为C语言程序。
G. 如何将.exe的可执行程序反编译成为C语言代码程序
只能反汇编,这种软件有很多的,如ollydbg,Win32Dasm等,可以把exe反向转成汇编代码。
也可以使用反向工程的软件,此类软件用起来都非常复杂,可以把一个exe反向转成一个代码工程。
一般情况下除了.net、vb和java写的程序可以反编译成原始代码之外,c、c++、delphi等写的程序是无法反成可读的有效原始代码的。
H. 怎样把.hex文件反编译为c语言
如果hex文件是二进制代码转换得来的话,只能反汇编成汇编语言。直接反编译到C语言不太可能。
I. 怎样将汇编语言转换为C语言
目前的
反编译
软件,只存在将
机器指令码
反汇编
成汇编代码,不存在将汇编代码反编译成C语言的,因为汇编代码是低级语言,最接近于
机器码
(具体可查看不同硬件平台的技术资料),每条
汇编指令
都对应一个固定的机器码,这样进行反汇编是可行的,而C语言属于
高级语言
,
编译器
没有能力将汇编语言翻译成C或更高级的语言。怎样将汇编语言转换为C语言