找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 725|回复: 8
打印 上一主题 下一主题
收起左侧

HEX文件能转成C语言吗

[复制链接]
跳转到指定楼层
楼主
HEX文件如何能转成C语言,能行的话,用什么软件?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88256 发表于 2024-6-17 09:40 | 只看该作者
可以转成汇编但转不了C
回复

使用道具 举报

板凳
ID:1121801 发表于 2024-6-17 09:41 | 只看该作者
软件有GHIDRA或者IDA PRO,还有一个是HEX2C,不过反编译过来的C程序不一定正确,需要人为再次较定程序。而且有一些C语言定义的头文件不一样,可能导致反编译出来的语句出现与原C程序完全不一样的情况。其它反编译正确率比较高的是反编译到汇编语言
回复

使用道具 举报

地板
ID:57657 发表于 2024-6-17 09:45 | 只看该作者
可以的,先将hex转换成bin格式,再将bin转换成C语言的char数组代码即可。
回复

使用道具 举报

5#
ID:401564 发表于 2024-6-17 12:58 | 只看该作者
反编译C语言的前提是: 你的C和汇编玩得非常的6,就像抄板一样,你得很能画板,才能抄得好板
反编译的特点:
1,逆向编译出来的代码不一定是正确的,它是有成功率的,也就是说,你还得去调试和验证代码的正确性
2,它是机器式的,像你在C语言中大量的宏定义是不会体现出来的,框架越大的程序,用的宏就越多,像什么MAX,MIN之类的,有的时候,没有宏定义的C代码,就是算是原本的代码,看起来都累,更不用说是反编译过来的C代码了
回复

使用道具 举报

6#
ID:1118092 发表于 2024-6-17 13:59 | 只看该作者
将HEX转C是很困难的事,只有C的超级高手才有可能还原,也只是“可能”,他必须充分了解C的编译规律与特点,才能进行反编译。 由于单片机是最底层的控制器,它与硬件是直接连接的,如果不了解硬件需求是无法理解程序意图的,这对反编译是不利的。
回复

使用道具 举报

7#
ID:910662 发表于 2024-6-17 17:26 | 只看该作者
估计将来人工智能可以实现。
回复

使用道具 举报

8#
ID:466250 发表于 2024-6-17 17:33 | 只看该作者
有米可行
回复

使用道具 举报

9#
ID:57657 发表于 2024-6-17 22:36 | 只看该作者
楼主没有说清楚使用什么算法转换,以下是一种简单的转换方法:
使用STC-ISP打开.hex程序文件,然后保存数据为.bin格式
使用WinHEX打开.bin格式,然后点击->复制所有->C源码 即可。
转换后的代码是以下图样子的:



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表