51逆向利器
本帖最后由 xuhai777 于 2013-9-27 19:13 编辑工作上需要对无源码的古董级51程序进行逆向分析,伟福及其他的51逆向工具都不给力啊,
至少逆向出来的文件都重新编译通不过,还需要大量的手工整理,
于是自己做了一个51逆向利器,和大家分享.^_^
主要功能:
1.完全支持51指令集
2.智能识别7个中断程序入口:定时器3个,串口2个,外部2个
3.智能识别花指令,并跳过干扰
4.优化输出文件,便于分析查找
5.逆向出来的文件直接使用伟福重新编译通过,且对照源.BIN文件完全一致
输入.BIN文件,输出.asm文件
能出C语言就逆天了 不能搞HEX文件,不方便啊 楼主厉害啊 牛X 网上大把的HEX转BIN工具啊,最简单是用烧录器加载HEX文件再另存为BIN文件 相同的C语言程序,编译器不一样,编译选项不一样,都不能输出同样的结果.
那如果逆向输出了C语言的,怎么验证逆向程序与源程序的正确性呢?
而汇编程序和编译器的关系不大,所以能保证逆向程序与源程序的正确性. 不用那么麻烦,有现成的。发两个反编译工具。
skynet 发表于 2013-9-26 20:20 static/image/common/back.gif
不能搞HEX文件,不方便啊
我有一个可以把51的hex转汇编的软件。这个软件还可以让PIC单片机的hex文件反汇编。
这两个反编译工具我也早试过了,你可以试下我做的呢.^_^ 楼主牛叉,赞一个! LZ这个看起来格式有些乱,能开源就好了。之前一直使用51智能反汇编很好用啊,没出现不能编译的,撑死就是加个0的问题,但没有避开加花的功能 我认为逆向出来的文件保证与源程序的正确性是重要之首.
我也通过从逆向文件中学习到了很多东西. 试了下,楼主这个做得不错,(之前用64K文件试过几种,都不能正确反汇编,) 做这个要掌握51的机器码? 楼主要是在反汇编软件里加上注释就更好了,比方中断入口,16位运算, 等等 逆向文件重新编译后使用文件比较工具,例如:BCompare来验证其正确性 图片里就有张就是51指令集的机器码表,黑色是单字节指令,红色是双字节指令,蓝色是三字节指令,绿色是华邦增加的指令,再具体的使用就得查书了 都是厉害的哇哇 强人!! 哈哈,好东西,先MARK留用……谢谢楼主分享! 好厉害
这个要支持下 楼主厉害,谢谢提供资料的各位 赞一个,不错 {:lol:}顶,好久没有弄汇编了 这个有意思,哈 很牛X的工具,以前用过汇编只编过简单程序,太累了,后来还是使用C便写下简单的测试程序。 mark pic的 现在单纯的51程序少了. 好,以前用过智能的那个,有时间试用这个 反出来差不多全是DB mark 一下用的时候再来 不错很好的反汇编工具,但是现在搞汇编的人少了,除非用来破解,要不然觉得意义不大 太牛了{:lol:} 现在看汇编犹如天书了,特别是程序量大的话更是费劲 不得不佩服楼主的功力 ... {:smile:} 本帖最后由 xjavr 于 2013-9-27 10:25 编辑
楼主你的只能识别一条指令。 世界上再也没有秘密了吗 楼主大牛啊!!~~
不知道在这个软件的基础上,能够扩展到其他芯片?比如AVR、PIC、STM8等 很牛很牛 测试了一下 断句不行 有待提高呵
以前无聊的时候也搞了个半吊子 区分代码和数据难做一处错了往后的都错了 向楼主致敬 xjavr 发表于 2013-9-27 10:23 static/image/common/back.gif
楼主你的只能识别一条指令。
谢谢你的关注和支持。如果方便的话,把你的HEX或者BIN文件发给我,让我分析下原因。 develop 发表于 2013-9-27 10:51 static/image/common/back.gif
测试了一下 断句不行 有待提高呵
以前无聊的时候也搞了个半吊子 区分代码和数据难做一处错了往后的都错 ...
感谢你的关注和支持。
断句是什么意思,不明白。 本帖最后由 xjavr 于 2013-9-27 12:22 编辑
这个确实很牛。 xjavr 发表于 2013-9-27 12:20 static/image/common/back.gif
使用PUSH和RET组合跳转方式,静态逆向是无能为力的了,需要动态完全模拟MCU运行和跟踪状态,这和具体的MCU型号又扯上关系了。
你这程序是跑某个OS的吧。 我把PUSH和RET指令操作也跟踪进去,可以解决这个问题的,敬请期待.^_^ LZ niu{:smile:} 这个真的很N呀! xuhai777 发表于 2013-9-27 12:55 static/image/common/back.gif
我把PUSH和RET指令操作也跟踪进去,可以解决这个问题的,敬请期待.^_^
没有跑OS,不过初始化文件是我自己写了一个压栈的操作。 好东西make一下。 楼主辛苦了,要花费很多精力哟。 加密的也可以? 觉得IDA很好用。楼主可以考虑研究一下stm8或stm32反汇编软件,因为这俩单片机很火,以后反汇编需求定大。而且这软件目前还没,要么不能用。 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逆向,敬请期待吧
xuhai777 发表于 2013-9-27 19:01 static/image/common/back.gif
PUSH DPL
PUSH DPH
RETI
要智能还是要进一步分析程序的意图,才能更好的区别是指令还是数据还是花指令。 关注发展 都是厉害的哇哇 可是03的中断向量也没识别嘛 楼主厉害,感谢 做个记号留观 厉害。
曾经修改过其他人的bin文件,改过串口波特率。如果早有这个利器就好了 近期研究加密,有一定幫助,lz有破解加密嗎?
聽說有hex,stc51有id的,有人千多元可破解,真平宜 楼主牛啊,支持下 楼主,牛人啊~~~~ 正在学习逆向51单片机,谢谢楼主啊! 标记一下 ,留这以后用 看有些反汇编的论文,分析全局变量,局部变量的工具是存在的,基本就是反向出高级语言 都是牛人啊,关注发展 不错,以前反汇编用过伟福的也不错,可以实现反汇编后再次编译{:smile:} 用IDA不是更好?
真不错,顶一个,支持一下{:biggrin:} 卧虎藏龙。 xuhai777 发表于 2013-9-27 19:01
PUSH DPL
PUSH DPH
RETI
楼主,51更高级的逆向升级了吗?如果升级了发给我一个喔。先谢了!{:smile:} 本帖最后由 风雨无阻88 于 2015-10-17 23:28 编辑
风雨无阻88 发表于 2015-10-17 23:22
楼主,51更高级的逆向升级了吗?如果升级了发给我一个喔。先谢了!...
我是你的粉丝喔!{:lol:} 试了下,你的比那个智能的好用喔!{:smile:} LS牛逼哦! 这个的确很吊
页:
[1]