woshigeshuai 发表于 2017-11-3 09:13:56

单片机反汇编


今天帮客户反汇编一个单片机,让修改里面的一些功能和显示
其实反汇编后语言看熟悉了还是很有意思的,比如C语言数组里面取数的代码,汇编用了很长一段代码实现。
C语言判断数是大于等于,在汇编里面是用减法来实现的
下面一些代码左边是汇编语言,右边我用C语言实现,方便理解
有问题欢迎讨论QQ95642217 18156572760
                mov        A, R5                        ; {
                mov        B, #3
                mul        AB
                add        A, #9                ;        
                mov        DPL, A
                clr        A
                addc        A, #0
                mov        DPH, A                ;        ′
                movx        A, @DPTR                ;        (0)12:00 (1)13:00 (2)14:00
                mov        R4, A                        ;
                jz        code_322B                ;         if(TotalBuff==0) goto
                mov        A, R5
                mov        B, #3
                mul        AB
                add        A, #7                ;       
                mov        DPL, A
                clr        A
                addc        A, #0               
                mov        DPH, A
                movx        A, @DPTR
                mov        R6, A                        ;         R6=TotalBuff;

zystbbs 发表于 2017-11-3 09:29:22

高手,这样也行,要是加密就没办法了吧

maomaoger 发表于 2017-11-3 11:19:36

小白表示看不懂啊

李雨萌 发表于 2017-11-3 13:05:20

汇编语言我以前最复杂的写过语音报时的led石英钟,各种跳转循环的,没个好习惯的话,过一个月自己的代码都看不懂

风流侠客 发表于 2017-11-3 15:35:32

8051的汇编比较容易学习,以前写过串行移位寄存器程序。

ace919 发表于 2017-11-4 17:08:05

二进制代码反汇编或反编译成c语言这事没少干过,包括x86与几种单片机。
最戏剧性的一次是,某个展览快开始了,才发现一个循环(c语言的for语句结束条件写错了)少了一次,造成结果出错。现场没有源码及编译环境,那时还没有互联网,在家的同事也只能干着急。应急中用debug找到for循环处,并直接改exe文件成功!

yjmwxwx 发表于 2017-11-4 20:10:12

在QQ群里看到有个搞单片机破解修改功能的,看这人的方法是放到IDA里面反汇编然后再放到KEIL里面重新编译,可能是利用软件仿真调试程序,通过修改汇编改功能。 我发现这人好像生意很好,看这人快40岁了可能开发和破解经验很多。 我以前也搞过,不过只会ARM的单片机,我的方法和他不一样,我是IDA反汇编后不需要重新编译直接修改BIN文件,通过硬件仿真调试程序。破解过俩序列号保护的,都是玩性质的一分钱也没挣到。 也有人找过我搞,我懒的上QQ和他们聊。比如本坛那个100K电桥的序列号保护我就能破解,但是根本没有人需要破解,看那些仿制的还要问作者要序列号比较麻烦作者也没时间算。搞开发的很反感搞破解的,搞开发的这些人从系统到开发软件都是破解版,自己搞出个东西就是不愿意分享和被人破解

sw5188 发表于 2017-11-4 20:46:54

二十几年前玩过人肉汇编,那时还没有AT89系列更别说STC了只有80C51,自己做了个烧录器写入EPROM里



职尚 发表于 2017-11-4 22:14:57

使用次数限制,谁能给个破解思路?

xingyw 发表于 2017-11-5 14:55:45

列害呀佩服

夏国特 发表于 2017-11-10 15:52:16

本帖最后由 夏国特 于 2017-11-10 15:53 编辑

yjmwxwx 发表于 2017-11-4 20:10
在QQ群里看到有个搞单片机破解修改功能的,看这人的方法是放到IDA里面反汇编然后再放到KEIL里面重新编译, ...

情况不一样了,公司里不敢用盗版,怕被查,罚起来很厉害的,还会影响公司股价。

其实我们就是买了一堆序列号,大家的系统仍然用Ghost版——方便,这样人家软件公司就不查了。

比如Altium当时来我们公司,40台电脑装了AD,也就买了十来个号,人家也同意,还帮大家全都换成2015版,我嫌弃那个版本颜色丑,用惯了09,就跟人家商量,结果就一直用盗版的09Winter。

至于开发平台,以前还挺神秘的,后来因为竞争的原因,基本都不收费了,比如CodeWarrior、Keil 5、AStudio、...
不过,说实话,我确实不喜欢搞破解的,发自内心,我辛辛苦苦弄出来的东西,花了大量的时间、打样、调试、测试,各种试验
结果,你话都不说,破解了就用,我怎么爽得起来...

我们国家的著作权保护太差了,当年一个产品用的uC/OS,国内销售没关系,结果到了美国就被起诉,人家通过代码特征分析就断定你用了他的系统,最后只好买授权,花钱摆平了。国内要是能这样,逮到破解仿制或抄袭的,满足某种特征或证据,就陪得他倾家荡产,就像淘宝刷单一样一棍子打死,信誉清零,我看谁还敢胡来。

反汇编技术倒是挺好的,调试代码优化程序有它方便不少,特别是关键代码的优化。

yjmwxwx 发表于 2017-11-10 17:58:30

夏国特 发表于 2017-11-10 15:52
情况不一样了,公司里不敢用盗版,怕被查,罚起来很厉害的,还会影响公司股价。

其实我们就是买了一 ...

感觉要是纯软件用盗版也没什么,没钱的学生也能免费用,再说本身有些软件就靠盗版占领市场。
就是那些机电一体化的,直接解密人家的固件并且机械部分也逆向人家的,这样做的就是盗窃。

搞研发门槛太高了,不但要很多钱还要非常高的技术,现在那些小厂子基本全靠仿制别人产品,别人什么赚钱他就偷什么。


现在这个也成个产业链了,解密固件的,反汇编修改的、抄板子的、逆向机械部分的。

前几天有个人加我QQ让我看个固件,这固件里面有原来厂子的名字,这个人说是他以前花钱解密出来的,我一看里面名字和他这个厂子的名称也不一样啊,要是国家抓这样的一抓一个准。

这哥们里面有原来公司的名字他也敢不改就用,这个要是被起诉了也不会赔偿么,一个一千多据说卖了几百个了。

我就想学个电机和液压的控制,主要想自己做东西玩,但是时间都浪费了也没毅力认真学了。反汇编是写程序时候偶然自己瞎搞的,也没看啥书也没老师就自己摸索的搞,所以连偷这个技术也是个菜鸟,没挣到钱 ,只能老老实实种地啦。

你的帖子我以前搜索过哦,一看你就是经验丰富技术高的开发高手。矿坛高手的帖子我都会暗暗搜索,没有毅力不断的学习很难成高手,我就没这个毅力,学个东西一年能坚持半个月就不错了。。

ourgalaxy 发表于 2017-11-13 14:23:48

zystbbs 发表于 2017-11-3 09:29
高手,这样也行,要是加密就没办法了吧

51系列的,好像用到movx指令就可以解密。所以现在51在工业品用得少。

天天爱玛丽 发表于 2017-11-14 09:10:46

以前写过bin到汇编代码的转换程序,研究C编译器用的,后来没兴趣了,我的程序,有人要就给,被人找我写代码,也看东家意思来定是否加密.我宁愿自己从头搞一套更好的,也不喜欢用破解的程序,技术高了,写一套新的,比破解还方便快捷.

changle 发表于 2017-11-14 22:40:08

能读出STM32吗
页: [1] 2
查看完整版本: 单片机反汇编