右侧
当前位置:网站首页 > 资讯 > 正文

反汇编转换为c语言,c 反汇编

作者:admin 发布时间:2024-04-01 12:11 分类:资讯 浏览:13


导读:怎样将汇编语言转换为C语言首先在keil里,设置选项时,在列表选项中的汇编代码一项打勾。见下图然后编译,编译后,在工程的同一个文件夹下有一个.LST文件,打开就看到了汇编代码,...

怎样将汇编语言转换为C语言

首先在keil里,设置选项时,在列表选项中的汇编代码一项打勾。见下图 然后编译,编译后,在工程的同一个文件夹下有一个.LST文件,打开就看到了汇编代码,不过,需要自己进行整理,否则,是不能直接作为汇编程序的。

打开IAR FOR STM8工程。编一段C语言的延时程序,作为例子。如何在目前实例上,添加我们的汇编。编译一下是否可以编译通过,编译提示OK。进入仿真界面,是否可以运行。

如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码。如果参数是 /FAs 则会同时将源码和汇编代码。

汇编是低级语言,c语言是中级语言。语言越低级越靠近机器思维,比如01010101二进制是最低级的编码方式。反之越高级就越靠近人的思维。

将汇编语言转换成c语言,只能是手工写c语言了。如果是反过来,C语言程序编译后可以生成汇编程序。但汇编程序却不能生成C语言程序。别发图片,发源程序,也许会有人复制下来,帮你写。

方法很多 比如 你看懂C语言 然后用汇编重新实现 或者用编译器自带的命令,比如gcc,可以gcc a.c -o a.S -S 就可以生成汇编 也可以先生成bin,然后反编译。

如何将汇编代码转换成c语言?

1、打开IAR FOR STM8工程。编一段C语言的延时程序,作为例子。如何在目前实例上,添加我们的汇编。编译一下是否可以编译通过,编译提示OK。进入仿真界面,是否可以运行。

2、首先在keil里,设置选项时,在列表选项中的汇编代码一项打勾。见下图 然后编译,编译后,在工程的同一个文件夹下有一个.LST文件,打开就看到了汇编代码,不过,需要自己进行整理,否则,是不能直接作为汇编程序的。

3、方法很多 比如 你看懂C语言 然后用汇编重新实现 或者用编译器自带的命令,比如gcc,可以gcc a.c -o a.S -S 就可以生成汇编 也可以先生成bin,然后反编译。

反汇编就是将程序再转换成C语言吗?

1、编译的过程一般是高级语言(如C语言)——》中间语言(只出现在编译过程中)——》汇编语言——》可执行的二进制代码 反编译就是从可执行的二进制代码开始,反着来。

2、而汇编语言又是和机器码一一对应的 所以直接把可执行程序反编译成汇编代码是很有效的一种调试和分析方法。

3、文本Hex文件一般不需要转成C语言,更多的是程序二进制文件,用十六进制显示,可以转换成C语言,一般使用相应的反汇编程序来实现,这方面的工具很多,不同的平台略有不同。

4、asm不能转C的。C可以转asm。否则任何软件的源代码你都可以看到了。

5、建议:如果你有实力,则可以自己写一下,或者直接把一些代码__asm关键字,内联到C代码中。这比较适合算法分析的。可以使用IDA5及以上的版本来反汇编,发现汇编代码,可以直接F5 键,生成C语言的伪代码。

6、只能反汇编,这种软件有很多的,如ollydbg,Win32Dasm等,可以把exe反向转成汇编代码。也可以使用反向工程的软件,此类软件用起来都非常复杂,可以把一个exe反向转成一个代码工程。

请问hex文件可以反汇编为C语言程序呢。谢谢

1、HEX文件,只能反汇编成汇编言程序,且需要反汇编软件。而且生成的汇编程序,很难读得懂。特别是原HEX代码是由C语言程序生成的,基本上是看不懂了。

2、文本Hex文件一般不需要转成C语言,更多的是程序二进制文件,用十六进制显示,可以转换成C语言,一般使用相应的反汇编程序来实现,这方面的工具很多,不同的平台略有不同。

3、如果hex文件是二进制代码转换得来的话,只能反汇编成汇编语言。直接反编译到C语言不太可能。

4、.hex是二进文件。.asm是汇编文件。是C编译器产生的。如果谁把汇编语言还原成C,几乎不太可能,如有这时间功夫,C程序自已都可早早重新编好了。

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

6、不大可行,对于不同的单片机,指令集是不同的,比如指令0x03,在51里可能是传送指令,在pic又可能是加法指令,要这种软件,得找对各种单片机都了解的人。

标签:


关灯