怎么样把hex转化成C语言形式?

作者&投稿:阚璧 (若有异议请与网页底部的电邮联系)
怎么样把hex转化成C语言形式?~

回答可能让你失望,就是没有可能。不给个原因你是不会罢休的:
一般hex都是二进制文件用十六进制显示,也就是说是编译后的代码。编译后的代码是不可能做逆向工程的,否则源代码就不重要了。

不知道所云,什么叫C语言格式?

.c文件是文本文件。

.hex是二进制文件,是编译出来的。

有两种方法:
1、用相应的IDE(例如:keil)创建一个工程,然后将该C语言文件中的代码复制到工程中的目录下。然后使用keil 对该工程进行编译。这样就可以得到hex文件。
2、使用相应的编译器,一步一步的编译。
不推荐第二种方法因为,单独使用编译器编译需要很多麻烦的步骤,还有可能会出错。直接使用IDE会更加方便省去很多麻烦的步骤。

基本上不可能,因为HEX必定是单片机的程序格式,
从C语言编译完成出来的程序格式和编译器,MCU都有关系,
7 ,8年前见过一个最厉害的C反编译器,但是也只能在 dos 下,反编译 TC
而且还需要反编译器自己的库。也就是反编译之后,没法在TC下编译,
如果你想做逆向功能,建议你还是多精通 汇编。然后用 IDA5.5 或者 SOFT-ICE
呵呵,目前这个是最可行的方案。

回答可能让你失望,就是没有可能。不给个原因你是不会罢休的:
一般hex都是二进制文件用十六进制显示,也就是说是编译后的代码。编译后的代码是不可能做逆向工程的,否则源代码就不重要了。

本人从事把HEX文件反编译成C语言很多年,成功完成把机器执行代码变成C语言的项目20余个,涉及的处理器有:8085和Z80(古老的处理器,比现在大部分程序员的年龄还大了),51系列,STM32,PIC,AVR,8086等等。大的项目原来的二进制代码达到100多KB。
把HEX文件变成C语言,HEX文件原来最初应是用C语言写了以后编译的,如果原来就是用汇编语言写的,就比较难变成C语言,因为这相当于理解汇编程序以后用C语言改写。
当然,目前为止,没有一个软件工具能自动把执行代码准确反编译成C语言,这些处理都是人工进行处理的,反编译的工作量是很大的。
反编译是逆向设计工程,一般用于研究别人的产品,作为学习和参考。实施反编译应注意涉及知识产权的问题。
在反编译方面有兴趣的朋友欢迎讨论。

不太可能


怎么样将HEX文件转化为.c文件
至今还没有软件可以将hex文件直接转化成.c文件,即使使用反汇编软件,反过来的汇编语言也不一定是原来的意思,并且汇编的可移植性很差。

懂VB的进来
hex将数字转换为16进制 clng("&h"&十六进制文本)eg:--- Dim aa="ff"MsgBox clng("&h"&a)eg:--- Dim aa=255MsgBox hex(a)

2、+数据段定义如下,请设计程序,把HEX内的二位十六进制数的转换成...
1. 根据数据段定义,把HEX的地址加载到SI中,把STR的地址加载到DI中。2. 把循环计数器CX初始化为5,表示要转换5个十六进制数。3. 进入循环,先使用LODSB指令从SI中读取一个字节到AL中,同时把SI+1,然后把AL的ASCII码转换成数字,如果大于9,则把它减去7,把它转换成字母,最后把转换后的值存储...

有没有什么软件可以使hex文件转化成word
不必转化,可以用word直接打开,或用“文本编辑器”打开,复制粘贴到word里。

MPLAB如何将hex文件转换成c文件
hex已经是编译后的机器码了,再想转.c不太可能。你可以用debug工具进行反汇编,然后根据出来的结果,自己写c

求vc读HEX文件并转换成二进制bin文件的代码
const int N=1024; \/\/我每次从文件中读1024个字节进行转换,你可以根据需要适当调节。\/\/ strHexPathName是你要转换的Hex文件路径字符串(包括路径,文件名和扩展名)\/\/ strBinPathName是转换后的Bin文件路径字符串(包括路径,文件名和扩展名)void Convert(LPCTSTR strHexPathName,LPCTSTR strBinPathN...

VB中16进制与10进制相互转化,该怎么处理
' 用途:将十六进制转化为十进制 ' 输入:Hex(十六进制数)' 输入数据类型:String ' 输出:HEX_to_DEC(十进制数)' 输出数据类型:Long ' 输入的最大数为7FFFFFFF,输出的最大数为2147483647 Public Function HEX_to_DEC(ByVal Hex As String) As Long Dim i As Long Dim B As Long Hex =...

winhex怎么将16进制代码转换成汉字
您好。汉字有两种形式,一种是GB码,一种是unicode码。装个ultra edit软件,将汉字写个文件,点击编辑-》十六进制函数-》十六进制编辑,就会转换成GB码了。如果保存的时候,将“格式”选择unicode方式,再打开就是unicode代码了。如果还有问题,可以继续追问,感谢。

十进制,二进制还有八进制,十六进制中的D,B,O,H分别指什么?
这四个字母分别代表不同进制的后缀 区别如下:D(decimal)表示这个数是十进制 B(binary)表示这个数是二进制 O(octor)表示这个数是八进制 H(hex)表示这个数是十六进制

十六进制数3AH转化成二进制是多少
十六进制数3AH转化成二进制是111010,十六进制数每一位对应四位二进制数,知道这个原理,即可轻松转换。具体计算过程:十六进制数3AH中有两位十六进制数,分别是3和A,其中H只代表十六进制,没有其它含义。那么3对应四位二进制数为0011,A就是10,对应四位二进制数为1010,。将两个数合并后,得到...

北宁市13933746831: 怎么样把hex转化成C语言形式? -
隐胁新达: 有两种方法: 1、用相应的IDE(例如:keil)创建一个工程,然后将该C语言文件中的代码复制到工程中的目录下.然后使用keil 对该工程进行编译.这样就可以得到hex文件. 2、使用相应的编译器,一步一步的编译. 不推荐第二种方法因为,单独使用编译器编译需要很多麻烦的步骤,还有可能会出错.直接使用IDE会更加方便省去很多麻烦的步骤.

北宁市13933746831: Keil编译的hex 如何转成C语言 -
隐胁新达: HEX代码文件,只能用反汇编软件,生成汇编程序.但这个汇编程序是很难看懂的,需要有丰富的汇编语言编程经验,超强的编程能力和水平,才能看懂,在此基础上,再人工写成C语言程序.这要求C语言和汇编语言都精通. 这不是破解能实现的,也没有软件来转换,只能靠人工.很难.

北宁市13933746831: 如何将单片机HEX文件转换成C语言或汇编 -
隐胁新达: 只能反汇编成汇编语言,而且可读性较差.

北宁市13933746831: 怎么把hex文件转换成c格式 -
隐胁新达: hex是十六进制文件,是一些代码.不可以转成C.即使能转成汇编也不一定是原来程序的原意.

北宁市13933746831: 在单片机中怎么是hex文件转换为.c文件 -
隐胁新达: 重命名~~把后缀.hex改为.c~~ hex是c经编译器编译成汇编再编译成的可写入CODE的16进制文件~~本来是2进制的机器码~~MS不能转换成C~~

北宁市13933746831: hex文件怎样变成c程序吗??用什么软件可以实现呢???? -
隐胁新达: 这个不容易,编译器编译后都是机器码,怎么说呢, Hex文件其实是机器指令码,其中包括操作码,操作数,以及地址等等内容,而我们的汇编语言指令代表的就是这些机器码,汇编就是将汇编语言编译成机器码的过程,反汇编就是将机器码变成指令的过程.C语言的编译先译成汇编再译成机器码,反汇编则反之,

北宁市13933746831: 有那位高手,能不能把HEX文件转换成C语言 -
隐胁新达: 目前世界上并没有办法把C和C++生成的可执行文件反编译成C和C++.

北宁市13933746831: hex文件转换成C语言 -
隐胁新达: 你应该是嵌入式开发中已经编译成.hex的文件吧, 这个hex文件基本上可以理解为windows中的.exe, 你要是反编译汇编,还能看出点门道,返回C,我在微软的操作系统下从来没比较满意的做成功过,何况你还是在单片机中.

北宁市13933746831: 请问hex怎么反汇编为c语言程序呢,谢谢 -
隐胁新达: HEX文件,只能反汇编成汇编言程序,且需要反汇编软件.而且生成的汇编程序,很难读得懂.特别是原HEX代码是由C语言程序生成的,基本上是看不懂了.

北宁市13933746831: 单片机的HEX文件怎么转成汇编或者C -
隐胁新达: 利用反汇编软件可以转换为汇编,但转换为C难度较大,一般需要手动完成.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网