xuhai777 发表于 2013-9-26 20:09:14

51逆向利器

本帖最后由 xuhai777 于 2013-9-27 19:13 编辑

工作上需要对无源码的古董级51程序进行逆向分析,伟福及其他的51逆向工具都不给力啊,
至少逆向出来的文件都重新编译通不过,还需要大量的手工整理,
于是自己做了一个51逆向利器,和大家分享.^_^
主要功能:
1.完全支持51指令集
2.智能识别7个中断程序入口:定时器3个,串口2个,外部2个
3.智能识别花指令,并跳过干扰
4.优化输出文件,便于分析查找
5.逆向出来的文件直接使用伟福重新编译通过,且对照源.BIN文件完全一致
输入.BIN文件,输出.asm文件





skynet 发表于 2013-9-26 20:16:26

能出C语言就逆天了

skynet 发表于 2013-9-26 20:20:19

不能搞HEX文件,不方便啊

tim 发表于 2013-9-26 20:24:45

楼主厉害啊

eedesign 发表于 2013-9-26 20:26:25

牛X      

xuhai777 发表于 2013-9-26 20:26:31

网上大把的HEX转BIN工具啊,最简单是用烧录器加载HEX文件再另存为BIN文件

xuhai777 发表于 2013-9-26 20:35:54

相同的C语言程序,编译器不一样,编译选项不一样,都不能输出同样的结果.
那如果逆向输出了C语言的,怎么验证逆向程序与源程序的正确性呢?
而汇编程序和编译器的关系不大,所以能保证逆向程序与源程序的正确性.

xiongh 发表于 2013-9-26 20:36:59

不用那么麻烦,有现成的。发两个反编译工具。

proteldxp 发表于 2013-9-26 20:38:59

skynet 发表于 2013-9-26 20:20 static/image/common/back.gif
不能搞HEX文件,不方便啊

我有一个可以把51的hex转汇编的软件。这个软件还可以让PIC单片机的hex文件反汇编。

xuhai777 发表于 2013-9-26 20:39:02

这两个反编译工具我也早试过了,你可以试下我做的呢.^_^

AIHHLI 发表于 2013-9-26 20:40:50

楼主牛叉,赞一个!

marshallemon 发表于 2013-9-26 20:43:11

LZ这个看起来格式有些乱,能开源就好了。之前一直使用51智能反汇编很好用啊,没出现不能编译的,撑死就是加个0的问题,但没有避开加花的功能

xuhai777 发表于 2013-9-26 20:45:50

我认为逆向出来的文件保证与源程序的正确性是重要之首.
我也通过从逆向文件中学习到了很多东西.

z7001 发表于 2013-9-26 21:20:54

试了下,楼主这个做得不错,(之前用64K文件试过几种,都不能正确反汇编,)

wxty 发表于 2013-9-26 21:21:21

做这个要掌握51的机器码?

z7001 发表于 2013-9-26 21:25:53

楼主要是在反汇编软件里加上注释就更好了,比方中断入口,16位运算,    等等

xuhai777 发表于 2013-9-26 21:26:47

逆向文件重新编译后使用文件比较工具,例如:BCompare来验证其正确性

xuhai777 发表于 2013-9-26 21:32:51

图片里就有张就是51指令集的机器码表,黑色是单字节指令,红色是双字节指令,蓝色是三字节指令,绿色是华邦增加的指令,再具体的使用就得查书了

金牛AKI 发表于 2013-9-26 21:55:37

都是厉害的哇哇

pipi516 发表于 2013-9-26 22:01:37

强人!!

dong889 发表于 2013-9-26 22:10:50

哈哈,好东西,先MARK留用……谢谢楼主分享!

sync765 发表于 2013-9-26 22:20:32

好厉害
这个要支持下

jz701209李 发表于 2013-9-27 07:02:11

楼主厉害,谢谢提供资料的各位

cc1987 发表于 2013-9-27 07:26:41

赞一个,不错

gallle 发表于 2013-9-27 08:30:04

{:lol:}顶,好久没有弄汇编了

mutoudonggua 发表于 2013-9-27 08:33:57

这个有意思,哈

hailing 发表于 2013-9-27 08:36:58

很牛X的工具,以前用过汇编只编过简单程序,太累了,后来还是使用C便写下简单的测试程序。

powermeter 发表于 2013-9-27 08:37:50

mark pic的

phone 发表于 2013-9-27 08:41:03

现在单纯的51程序少了.

lee345 发表于 2013-9-27 08:45:56

好,以前用过智能的那个,有时间试用这个

s99060 发表于 2013-9-27 09:29:57

反出来差不多全是DB

protection 发表于 2013-9-27 09:45:41

mark 一下用的时候再来

amxx 发表于 2013-9-27 09:55:02

不错很好的反汇编工具,但是现在搞汇编的人少了,除非用来破解,要不然觉得意义不大

zhanglei1986145 发表于 2013-9-27 09:56:04

太牛了{:lol:}

yy8047 发表于 2013-9-27 10:04:34

现在看汇编犹如天书了,特别是程序量大的话更是费劲

xyz543 发表于 2013-9-27 10:15:06

不得不佩服楼主的功力 ... {:smile:}

xjavr 发表于 2013-9-27 10:23:29

本帖最后由 xjavr 于 2013-9-27 10:25 编辑

楼主你的只能识别一条指令。

dongfo 发表于 2013-9-27 10:23:31

世界上再也没有秘密了吗

STM32_Study 发表于 2013-9-27 10:26:50

楼主大牛啊!!~~

不知道在这个软件的基础上,能够扩展到其他芯片?比如AVR、PIC、STM8等

richards 发表于 2013-9-27 10:35:28

很牛很牛

develop 发表于 2013-9-27 10:51:19

测试了一下 断句不行 有待提高呵

以前无聊的时候也搞了个半吊子 区分代码和数据难做一处错了往后的都错了

zishan 发表于 2013-9-27 11:05:49

向楼主致敬

xuhai777 发表于 2013-9-27 12:16:50

xjavr 发表于 2013-9-27 10:23 static/image/common/back.gif
楼主你的只能识别一条指令。

谢谢你的关注和支持。如果方便的话,把你的HEX或者BIN文件发给我,让我分析下原因。

xuhai777 发表于 2013-9-27 12:18:09

develop 发表于 2013-9-27 10:51 static/image/common/back.gif
测试了一下 断句不行 有待提高呵

以前无聊的时候也搞了个半吊子 区分代码和数据难做一处错了往后的都错 ...

感谢你的关注和支持。
断句是什么意思,不明白。

xjavr 发表于 2013-9-27 12:20:37

本帖最后由 xjavr 于 2013-9-27 12:22 编辑




ztflmm 发表于 2013-9-27 12:50:33

这个确实很牛。

xuhai777 发表于 2013-9-27 12:53:27

xjavr 发表于 2013-9-27 12:20 static/image/common/back.gif



使用PUSH和RET组合跳转方式,静态逆向是无能为力的了,需要动态完全模拟MCU运行和跟踪状态,这和具体的MCU型号又扯上关系了。
你这程序是跑某个OS的吧。

xuhai777 发表于 2013-9-27 12:55:58

我把PUSH和RET指令操作也跟踪进去,可以解决这个问题的,敬请期待.^_^

OOXX110 发表于 2013-9-27 13:06:45

LZ niu{:smile:}

yh8637 发表于 2013-9-27 13:40:53

这个真的很N呀!

xjavr 发表于 2013-9-27 15:53:11

xuhai777 发表于 2013-9-27 12:55 static/image/common/back.gif
我把PUSH和RET指令操作也跟踪进去,可以解决这个问题的,敬请期待.^_^

没有跑OS,不过初始化文件是我自己写了一个压栈的操作。

marx 发表于 2013-9-27 15:54:33

好东西make一下。

fxhfxh 发表于 2013-9-27 17:35:51

楼主辛苦了,要花费很多精力哟。

二进制 发表于 2013-9-27 17:59:52

加密的也可以?      

woshigeshuai 发表于 2013-9-27 18:55:47

觉得IDA很好用。楼主可以考虑研究一下stm8或stm32反汇编软件,因为这俩单片机很火,以后反汇编需求定大。而且这软件目前还没,要么不能用。

xuhai777 发表于 2013-9-27 19:01:20

xjavr 发表于 2013-9-27 15:53 static/image/common/back.gif
没有跑OS,不过初始化文件是我自己写了一个压栈的操作。

PUSH DPL
PUSH DPH
RETI
这个组合跳转在V1.1中能识别了,但要求这三条指令连续,不够完美

其中的JMP @A+DPTR识别是静态逆向无能为力的了
例如1:
_07beh: MOV   R0   ,DPL            ;a8 82
      MOV   B      ,DPH            ;85 83 f0
      POP   DPH                  ;d0 83
      POP   DPL                  ;d0 82
      LCALL _07d5h               ;12 07 d5
      LCALL _07d5h               ;12 07 d5
      LCALL _07d5h               ;12 07 d5
      LCALL _07d5h               ;12 07 d5
      CLR   A                      ;e4
      JMP   @A+DPTR                ;73
例如2:
_082bh: MOVCA      ,@A+DPTR      ;93
      MOV   R0   ,A            ;f8
      MOV   A      ,#001h          ;74 01
      MOVCA      ,@A+DPTR      ;93
      MOV   DPL    ,A            ;f5 82
      MOV   DPH    ,R0             ;88 83
      CLR   A                      ;e4
      JMP   @A+DPTR                ;73
还是打算做个完全模拟51运行的逆向器,完美的51逆向,敬请期待吧

xjavr 发表于 2013-9-27 19:20:59

xuhai777 发表于 2013-9-27 19:01 static/image/common/back.gif
PUSH DPL
PUSH DPH
RETI


要智能还是要进一步分析程序的意图,才能更好的区别是指令还是数据还是花指令。

BXAK 发表于 2013-9-27 19:50:58

关注发展

bai2471 发表于 2013-9-27 21:14:04

都是厉害的哇哇

s99060 发表于 2013-9-28 08:16:55

可是03的中断向量也没识别嘛

toptrying 发表于 2013-9-28 08:33:26

楼主厉害,感谢

weijun590 发表于 2013-9-28 10:20:18

做个记号留观

sgweilong 发表于 2013-9-28 12:15:49

厉害。
曾经修改过其他人的bin文件,改过串口波特率。如果早有这个利器就好了

mbass51 发表于 2013-9-28 12:32:03

近期研究加密,有一定幫助,lz有破解加密嗎?
聽說有hex,stc51有id的,有人千多元可破解,真平宜

weiwei4 发表于 2013-9-28 12:42:06

楼主牛啊,支持下

zy0818 发表于 2013-9-29 16:47:39

楼主,牛人啊~~~~

hkk603 发表于 2013-9-29 21:55:38

正在学习逆向51单片机,谢谢楼主啊!

943941946 发表于 2013-9-29 21:59:02

标记一下 ,留这以后用

3DA502 发表于 2013-9-29 22:37:20

看有些反汇编的论文,分析全局变量,局部变量的工具是存在的,基本就是反向出高级语言

tonyone 发表于 2013-10-1 17:49:01

都是牛人啊,关注发展

OurWay 发表于 2013-10-1 19:49:57

不错,以前反汇编用过伟福的也不错,可以实现反汇编后再次编译{:smile:}

sonyericsson 发表于 2013-10-1 21:52:13

用IDA不是更好?

tschennan 发表于 2013-10-1 22:55:43

真不错,顶一个,支持一下{:biggrin:}

jamesdeep 发表于 2015-10-2 22:09:30

卧虎藏龙。

风雨无阻88 发表于 2015-10-17 23:22:36

xuhai777 发表于 2013-9-27 19:01
PUSH DPL
PUSH DPH
RETI


楼主,51更高级的逆向升级了吗?如果升级了发给我一个喔。先谢了!{:smile:}

风雨无阻88 发表于 2015-10-17 23:26:12

本帖最后由 风雨无阻88 于 2015-10-17 23:28 编辑

风雨无阻88 发表于 2015-10-17 23:22
楼主,51更高级的逆向升级了吗?如果升级了发给我一个喔。先谢了!...

我是你的粉丝喔!{:lol:} 试了下,你的比那个智能的好用喔!{:smile:}

MC-26 发表于 2015-10-18 01:12:53

LS牛逼哦!   

chunyu 发表于 2015-10-18 09:01:43

这个的确很吊
页: [1]
查看完整版本: 51逆向利器