找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机HEX文件如何反汇编?

  [复制链接]
跳转到指定楼层
楼主
ID:450037 发表于 2021-11-3 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁有反汇编的软件的,想把HEX文件反汇编,你们谁用过?有什么方法吗?

SY3_C4_CHN_ENG_V1.21X.zip

30.08 KB, 阅读权限: 10, 下载次数: 39

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-11-3 14:56 | 只看该作者
单片机的, 反汇编软件, 一般有的不会用, 会用的懒得用。

但凡,有点“亮点”程序,都会做点手脚, 用反汇编打开, 反而看的云里雾里,熟悉汇编码表的自己跟着跳转慢慢“译”,远比反汇编软件效果好。
但凡,没做任何手脚的,反汇编能直接打开的,分分钟还不如自己写的好,或者说直接找原作者要都会给你源代码。
回复

使用道具 举报

板凳
ID:401564 发表于 2021-11-3 15:09 | 只看该作者
我在这论坛逛了几年,学到不少东西
当然也总结出一些东西:
总有一些刚刚入门或者还没有入门的初学者,程序还不怎么会写,就开始想知道怎么保密程序,怎么解密单片机,反汇编,却不知道,这些技术不是一般人玩的,那是真正的高手才玩得动的
反正我对这些是不感兴趣的,因为我没那个能力
回复

使用道具 举报

地板
ID:57657 发表于 2021-11-3 15:24 | 只看该作者
188610329 发表于 2021-11-3 14:56
单片机的, 反汇编软件, 一般有的不会用, 会用的懒得用。

但凡,有点“亮点”程序,都会做点手脚, 用反 ...

那东西最好不要用,程序里有一堆code数组,反汇编不认识,出来的指令都是乱七八糟的,即使智能算法也不保证100%准确识别出。
回复

使用道具 举报

5#
ID:450037 发表于 2021-11-3 15:42 | 只看该作者
188610329 发表于 2021-11-3 14:56
单片机的, 反汇编软件, 一般有的不会用, 会用的懒得用。

但凡,有点“亮点”程序,都会做点手脚, 用反 ...

可惜我不会啊,这可怎么办啊?好不容易把最原始一版的程序看懂了,现在其他升级版只有HEX文件,现在程序也修改不了
回复

使用道具 举报

6#
ID:624769 发表于 2021-11-3 16:20 | 只看该作者
zhangzhao2423 发表于 2021-11-3 15:42
可惜我不会啊,这可怎么办啊?好不容易把最原始一版的程序看懂了,现在其他升级版只有HEX文件,现在程序 ...

最原始的一版,你看懂的如果是 C 的,那么就算成功反汇编出来,你也看不懂。因为汇编逻辑,和C逻辑相差很大,如果最原始的一版是汇编的,如果只是升级,你根据改进的功能,做出相关修改不会很难,自己改写绝对比研究反汇编简单。
回复

使用道具 举报

7#
ID:970605 发表于 2021-11-3 16:46 | 只看该作者
加过密的,不好搞啊有难度。

1.rar

64.07 KB, 阅读权限: 50, 下载次数: 7

回复

使用道具 举报

8#
ID:970605 发表于 2021-11-3 17:03 | 只看该作者
刚刚帮你看了下你发的hex文件,加密的,里面加了大量的垃圾,有软件也没有用。需要手工解决
回复

使用道具 举报

9#
ID:319585 发表于 2021-11-3 19:30 来自手机 | 只看该作者
没有用的,c语言可以到汇编语言,汇编不能到c语言。
回复

使用道具 举报

10#
ID:450037 发表于 2021-11-4 09:00 | 只看该作者
ddd9527 发表于 2021-11-3 17:03
刚刚帮你看了下你发的hex文件,加密的,里面加了大量的垃圾,有软件也没有用。需要手工解决

大量的垃圾可能是注释部分,我猜
回复

使用道具 举报

11#
ID:450037 发表于 2021-11-4 09:04 | 只看该作者
188610329 发表于 2021-11-3 16:20
最原始的一版,你看懂的如果是 C 的,那么就算成功反汇编出来,你也看不懂。因为汇编逻辑,和C逻辑相差很 ...

最原始的我看得懂,它是用C写的
回复

使用道具 举报

12#
ID:57657 发表于 2021-11-4 09:36 | 只看该作者
ddd9527 发表于 2021-11-3 16:46
加过密的,不好搞啊有难度。

你的程序没有加密,看了下指令顺序、寄存器配置都没有问题,只是汇编很难读懂。
回复

使用道具 举报

13#
ID:731155 发表于 2021-11-4 09:39 | 只看该作者
zhangzhao2423 发表于 2021-11-4 09:00
大量的垃圾可能是注释部分,我猜

注释不参与编译吧
回复

使用道具 举报

14#
ID:88256 发表于 2021-11-4 10:50 | 只看该作者
zhangzhao2423 发表于 2021-11-4 09:00
大量的垃圾可能是注释部分,我猜

没下载附件,不知道里面是什么内容,如果是bin或者hex文件,然后坛友反汇编出来有大量的垃圾,那么绝对不可能是注释,因为注释是不可能写进单片机的。
回复

使用道具 举报

15#
ID:450037 发表于 2021-11-4 14:08 | 只看该作者
hhdsdy 发表于 2021-11-4 10:50
没下载附件,不知道里面是什么内容,如果是bin或者hex文件,然后坛友反汇编出来有大量的垃圾,那么绝对不 ...

哦,好像是的。
回复

使用道具 举报

16#
ID:450037 发表于 2021-11-4 14:11 | 只看该作者
npn 发表于 2021-11-4 09:36
你的程序没有加密,看了下指令顺序、寄存器配置都没有问题,只是汇编很难读懂。

厉害,论坛里真是藏龙卧虎,我等入门者还不知怎么看。你们都已经看指令,寄存器了。单片机这条路还很长啊。
回复

使用道具 举报

17#
ID:57657 发表于 2021-11-4 16:20 | 只看该作者
zhangzhao2423 发表于 2021-11-4 14:11
厉害,论坛里真是藏龙卧虎,我等入门者还不知怎么看。你们都已经看指令,寄存器了。单片机这条路还很长啊 ...

你可以看PUSH和POP指令,永远都是对称的。

回复

使用道具 举报

18#
ID:970605 发表于 2021-11-4 22:28 | 只看该作者
npn 发表于 2021-11-4 09:36
你的程序没有加密,看了下指令顺序、寄存器配置都没有问题,只是汇编很难读懂。

你仔细看看下面这个代码,把程序放在数据里,是不是加密啊
Q6D2E:
MOV   DPTR,#6D3CH
MOV   B,#03H     
MUL   AB         
XCH   A,DPH
ADD   A,B   
XCH   A,DPH  
JMP   @A+DPTR  
LJMP  Q6DB0   
回复

使用道具 举报

19#
ID:624769 发表于 2021-11-4 22:47 | 只看该作者
如果是51的程序。
程序有没有加密,主要看HEX文件 第一个字节是不是 02, 如果不是02 基本就是加密了。

如果前3个字节 是 02 01 00 那么,恭喜你,这个HEX文件,没加密,还是用汇编编写的。如果是 02 00 xx 那么,这个程序没有加密,并且是C写的,然后开始看, 03,0B, 13, 1B 23 2B  以此类推的位置,找到是02的,说明有开中断,然后看他前一个字节,以及这个02往后数3个字节,是不是FF,如果不是FF极大的概率被塞了大量的垃圾信息。你只能慢慢跟着跳转来手工反汇编了。
回复

使用道具 举报

20#
ID:970605 发表于 2021-11-4 23:06 | 只看该作者
188610329 发表于 2021-11-4 22:47
如果是51的程序。
程序有没有加密,主要看HEX文件 第一个字节是不是 02, 如果不是02 基本就是加密了。

...

部分核心程序加密,不是全部程序加密。
看下代码数据指针,又是乘,又是交换,又是加,最后跳转到真实地址上,当做程序用
Q6D2E:
MOV   DPTR,#6D3CH
MOV   B,#03H     
MUL   AB         
XCH   A,DPH
ADD   A,B   
XCH   A,DPH  
JMP   @A+DPTR  
LJMP  Q6DB0
回复

使用道具 举报

21#
ID:420836 发表于 2021-11-5 07:57 | 只看该作者
使用反汇编语言软件。
回复

使用道具 举报

22#
ID:450037 发表于 2021-11-5 10:05 | 只看该作者
ddd9527 发表于 2021-11-4 23:06
部分核心程序加密,不是全部程序加密。
看下代码数据指针,又是乘,又是交换,又是加,最后跳转到真实地 ...

如果加密的话,那原来的程序是不是覆盖不掉了啊,好像是必须要擦除FLASH,然后才能下载程序。加密的话应该不能擦除的吧
回复

使用道具 举报

23#
ID:88256 发表于 2021-11-5 10:17 | 只看该作者
zhangzhao2423 发表于 2021-11-5 10:05
如果加密的话,那原来的程序是不是覆盖不掉了啊,好像是必须要擦除FLASH,然后才能下载程序。加密的话应该 ...

这种加密是指单片机的程序进行软件加密,不是单片机加锁烧熔丝之类的,还是可以覆盖下载的。
回复

使用道具 举报

24#
ID:491577 发表于 2021-11-5 10:27 | 只看该作者
简单的程序自己写更方便,复杂的程序反汇编之后根本看不懂,几千个语句,没有注释,变量名都是没有意义的符号,就算是自己写的程序如果把注释都去掉,所有变量名全部都按顺序改成n0到n100,如果有几千条语句的话,自己都很难看懂更不用说别人写的了。
回复

使用道具 举报

25#
ID:450037 发表于 2021-11-5 11:10 | 只看该作者
hhdsdy 发表于 2021-11-5 10:17
这种加密是指单片机的程序进行软件加密,不是单片机加锁烧熔丝之类的,还是可以覆盖下载的。

哦哦,了解
回复

使用道具 举报

26#
ID:955673 发表于 2021-11-5 17:40 | 只看该作者
最原始的如果是用C写的,这个就不是了,这是汇编写的,里面用的“防盗手法”是人工的
回复

使用道具 举报

27#
ID:57657 发表于 2021-11-5 19:02 | 只看该作者
hhh402 发表于 2021-11-5 10:27
简单的程序自己写更方便,复杂的程序反汇编之后根本看不懂,几千个语句,没有注释,变量名都是没有意义的符 ...

C51没有浮点处理指令,模拟一次浮点小数计算,需要几百上千条汇编指令才可以完成。
用 与门、或门、非门 就可以组成任意芯片,但这连接结构谁能看得懂?
回复

使用道具 举报

28#
ID:450037 发表于 2021-11-6 10:37 | 只看该作者
冰火风轮 发表于 2021-11-5 17:40
最原始的如果是用C写的,这个就不是了,这是汇编写的,里面用的“防盗手法”是人工的

最原始的厂家给我的是C程序编写的,但是后面修改程序后厂家给我的全部是HEX文件,不想让我看到他修改的程序。主要修改就是原来是三个通道作业的,后来加了一个通道。现在是四个通道,原来是纯中文界面,现在有的菜单是中英文。就这个
回复

使用道具 举报

29#
ID:955673 发表于 2021-11-6 16:30 | 只看该作者
zhangzhao2423 发表于 2021-11-6 10:37
最原始的厂家给我的是C程序编写的,但是后面修改程序后厂家给我的全部是HEX文件,不想让我看到他修改的程 ...

没准厂家都只有伪装后的汇编代码,伪装是保住程序员底裤的最后手段了
伪装后作者自己都不想看了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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