打印

PK 使人进步:HotISP V2.80A传说中的disasm51超级反汇编结语

[复制链接]
楼主: hotpower
手机看帖
扫描二维码
随时随地手机跟帖
61
Cortex-M0| | 2011-10-24 07:28 | 只看该作者 回帖奖励 |倒序浏览
支持菜农,期待新算法。

个人认为,新算法一定要加入全程模拟运行,并且对所有变量加以分析。

否则,程序在运行中,从某个特定位置,读取一个数据,并且分时分段解码解密,运行结果分散存储在各个角落,最终将各个角落的有效变量值,迭加后合成一个地址散转,如果不用全程模拟运行加以分析,仅依靠N次扫描很难真正**。

使用特权

评论回复
62
john_light| | 2011-10-24 09:02 | 只看该作者
  我1998年开始学习51汇编,教科书上的例子程序有限且不太实用。某天在旧货市场捡到一个80C31+74HC373+27C128+6264的智能数字电表,回来通电后还能工作。于是便把27C128取下,在编程器上读取了BIN,然后手工逐个字节地反汇编,当时反出来的代码用去我一本小记事本(现在找不着了)。就是这段经历让我对实际的51应用有了大概认识,也记住了绝大部分的51汇编机器码(这么些年过去,差不多都忘光了)。

  后来碰到一个DOS软件叫MBUG,南京万利的作品,支持Disasm。试了一下,没想到我费心费力的若干天努力,在一个软件里只消几秒钟便做到的,而且整齐无误。除了对计算机在重复劳动方面刮目相看之外,我还对MBUG的软件编写者(不知是谁)佩服不已。

  这些年基本上不再用汇编而转用C写程序,也很少使用51内核的器件。不过,对于把人从机械重复劳动中解脱出来的所有努力,不管有多不完善,我觉得都值得赞扬。

  反汇编是一块灰色地带,但作为开发人员必须正视它。正所谓害人之心不可有,防人之心不可无。再多说就偏了。我相信HotPower的作品会让一部分51使用者警惕,进而作出相应努力。

使用特权

评论回复
63
hotpower|  楼主 | 2011-10-24 12:30 | 只看该作者
楼上的问题已全部解决。
而且中断的使用也是自动判别。
可以反汇编任何51的BIN文件,绝对不会再编译出错。
因为disasm51不需要编译器也知道自己的对错。
hotisp与disasm51组合使用可以全自动反汇编。
代码和数据完美的分离,而且给出可能的汇编入口。
所有正规的散转地址都将逃脱不了,例如中断入口就可以认为是散转。

使用特权

评论回复
64
hotpower|  楼主 | 2011-10-24 15:57 | 只看该作者
MBUG俺用过,非常好!估计是万利刘总的作品,他非常利害!
disasm51实际是台不经过任何运算的虚拟机,但它知道那里会引发编译错误。
任何的可疑数据区都将列表,隐藏的程序将会被挖出。

使用特权

评论回复
65
Cortex-M0| | 2011-10-24 16:47 | 只看该作者
万利刘总的工作室俺去参观过,桌上堆的满满的,一看就是一个工作狂。估计一天 25小时工作,精力不输给菜农~~~ :lol

使用特权

评论回复
66
hotpower|  楼主 | 2011-10-25 00:53 | 只看该作者
万利刘总的工作室俺去参观过,桌上堆的满满的,一看就是一个工作狂。估计一天 25小时工作,精力不输给菜农~~~ :lol
Cortex-M0 发表于 2011-10-24 16:47


俺经常聊,算是平手吧~~~

使用特权

评论回复
67
hotpower|  楼主 | 2011-10-25 08:48 | 只看该作者
在做标号的快速检索,双击即可到A51汇编或列表文件对应的语句进行查看。
为hotisp的虚拟控制台文件的快速检索做准备工作。

使用特权

评论回复
68
john_light| | 2011-10-25 09:06 | 只看该作者
题外:万利刘总是个好客之人,新模范马路,哈哈……

使用特权

评论回复
69
Cortex-M0| | 2011-10-25 10:07 | 只看该作者
确实,俺在万利刘总这里骗过一顿饭,确实是个好客之人,哈哈……

使用特权

评论回复
70
hotpower|  楼主 | 2011-10-25 22:37 | 只看该作者
相信楼主提供的是强劲的工具,主要问题在我。

当软件提示“反汇编失败”后,我不知从何处入手。
john_light 发表于 2011-10-18 12:13


一键搞定~~~

;Disasm51 Version 5.09 Copyright (c) 2011,2018 HotPower@126.com
;Binfile_name:[E:\hotisp\disasm51\bin2a51\trap.bin]
;Binfile_size:[0...004CH]
;Compile_size:[0...004CH]
$NOMOD51
$INCLUDE(d:\Keil\C51\ASM\REG52.INC)

ORG   0000H
RESET: MOV   DPTR,#0000H
LCALL S0010
LJMP  0202H;?*Error Address
D0009: DB    002H,002H,002H,002H,002H,080H,0FEH
S0010: MOV   R0,DPL
MOV   B,DPH
POP   DPH
POP   DPL
LCALL S0033
LCALL S0033
LCALL S0033
LCALL S0033
LCALL S0033
LCALL S0033
LCALL S0033
LCALL S0033
CLR   A
JMP   @A+DPTR;?
S0033: CLR   A
MOVC  A,@A+DPTR
INC   DPTR
XCH   A,DPH
XCH   A,B
XCH   A,DPH
XCH   A,R0
XCH   A,DPL
XCH   A,R0
MOVX  @DPTR,A
INC   DPTR
XCH   A,DPH
XCH   A,B
XCH   A,DPH
XCH   A,R0
XCH   A,DPL
XCH   A,R0
RET   
END

使用特权

评论回复
71
Cortex-M0| | 2011-10-26 07:43 | 只看该作者
恭喜菜农,贺喜菜农,功德圆满~~~ :victory:

使用特权

评论回复
72
john_light| | 2011-10-26 08:05 | 只看该作者
有大进展,祝贺HotPower。

我的陷阱我清楚,还差一点。最后一JMP时DPTR指向080H,0FEH(SJMP $),这个在上一次你提供的截图中能够实现,这次漏过?;P

使用特权

评论回复
73
hotpower|  楼主 | 2011-10-26 08:36 | 只看该作者
为了通用,提供了参考入口,需要人工干预此入口。
否则代码和数据将不能分离。
@表示为可能是数据区。
$表示为可能是代码区。
当两者相同时代码的可能是九成。
批量操作就是以此实现的。
实际还要看DPTR与@相等否,若相等可能是数据区。

全自动是不可能的,但是disasm51的算法是首先要通过keil的编译不出错。

家里机子有问题,QQ不了。
hotisp升级了,效果不错,基本上可以找出所有的散转即函数指针。
尤其是C编写的最容易反汇编。
昨晚有两个网友提供了BIN文件。
其中一个32次批量扫描一键完成,是C需要编写的,经过人工分析确认是四个数据区。

使用特权

评论回复
74
john_light| | 2011-10-26 08:41 | 只看该作者
经过HotPower的解释,明白了。

不过,在对另一个样本进行测试时,Disasm过程好象进入了死循环,整个HotISP停止响应。

原因查找中……

使用特权

评论回复
75
缥缈九哥| | 2011-10-26 08:56 | 只看该作者
比IDA强很多,仅仅 是指反出来的A51而言。不过IDA有图形化的显示。IDA支持更多系统。

使用特权

评论回复
76
缥缈九哥| | 2011-10-26 09:00 | 只看该作者
MBUG,谁有新的稳定版本?或者覃远高的新版本也好。能否帮助传一个给我也玩玩。看看与菜农的比较一下。我邮箱是:yuanxihua@21cn.com.谢谢。

使用特权

评论回复
77
john_light| | 2011-10-26 09:16 | 只看该作者
MBUG是较早年间由Manley推出的DOS仿真环境,主要面向仿真。

Disasm只是附带的一项功能,不是自动的反汇编。

使用特权

评论回复
78
hotpower|  楼主 | 2011-10-26 11:11 | 只看该作者
回75楼:把样本给俺,还有俺找到disasm51死机的bug。
注意左面的多选框,自动是必须选择的,它是每次汇编的用户定义的保存。
分析就是双击数据分析的地址到汇编语句,否则人工干预。

文档没时间写,不过很暴力了。
但是disasm51毕竟是20多年的程序,节约的原则降低了扫描速度。

这个框架以后有时间推翻。

使用特权

评论回复
79
john_light| | 2011-10-26 11:17 | 只看该作者
本帖最后由 john_light 于 2011-10-26 12:17 编辑

回HotPower,是我的操作问题。

批量反汇编果然强大,把我设置的几种陷阱都冲过去了。

使用特权

评论回复
80
hotpower|  楼主 | 2011-10-26 18:04 | 只看该作者
批量最后每次固定2或3字节的地址搜索,绝对是散转即指针

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则