赞助论坛
  • 42939阅读
  • 0回复

海尔/国芯反汇编程序2.0版(支持源文件格式) [复制链接]

楼层直达
byzx  

发帖
445
精华
12
金币
658
威望
178
贡献
331
好评
134
注册
2010-03-02
楼主    byzx 发表于: 2010-03-22 03:47:03 
[color=red]——————————————————
重要说明:AJMP/LJMP 还有待完善,目前发现尚存在问题!如果有人发现编码规律,请发消息给我。

虽然知道存在问题,但目前还出不了修正版,希望高人研究一下问题如何解决,谢谢!

为了方便大家研究,附上一个51指令表,我就是依据此表进行反汇编工作的。
——————————————————[/color]

这个可是支持大海尔哟。

兼容标准8051指令集,可反汇编所有指令。

不多说了,得睡觉去。

上一个图,懂行的一看自然明白。
——————————————————
V1.1版
今天起来一看,错误还真不少,首先改正了一个AJMP和ACALL分不清的问题,然后又改正了一个长转移和超长转移自适应的问题,最后对性能进行了提升,使速度成倍加快。

为了方便大屏幕的大侠们查看程序,程序窗口可以拉长,信息框会自动跟着增长。

另外,对输出格式进行了调整,返回指令后加分隔线,长转移指令后加空行。

还有,程序去掉了对00(NOP)和FF(MOV R7,A)反汇编结果的输出,看起来更清爽一些。
——————————————————
V1.5测试版
目前增加了指定数据段不产生汇编代码的功能,只定义成字节数据
另外增加了结束地址和长度双重设定,且自动计算。
还有,改进了算法,速度又比原来快了一倍,估计已经达VB的极限。

不得不遗憾的指出,本版本也一样不能正确判断转移和调用指令。
作者一直在分析中,希望有分析能力的会员共同努力,让程序早日发挥作用。

一旦有什么新发现,请PM我。

新版的用法见样图。
——————————————————
V1.5版
增加跟踪功能,用法是在下面的代码窗口中双击选定一个地址,点右上的钮就可以从该地址开始反汇编。用于在分析快速查找目标位置。这时可以把长度设定的小一些,例如1000字节之内。

恢复NOP指令的输出。因为仅供分析用,去掉了16进制常数的H后缀。
修正了开始地址大于FFFF时不进行处理的BUG。
——————————————————
V1.5增强版
增加返回功能,可以在跟踪跳转后,快速返回原来的位置。
修正了改变长度时,结束地址不变化的一个BUG。
[b]——————————————————
V2.0
[color=crimson]特别感谢quicktime大侠所做的工作,是他冒着机器成砖的风险用真机进行跳转和转移指令测试,才有了这个版本的诞生![/color]详情见置顶帖"关于boot的小秘密..."。

正确解析扩展指令,支持源格式(不带指令码,数据后加H)。
可以随时切换模式(包括扩展与否),并点跟踪钮重新以新格式处理(不重新读文件)
跟踪方式只取选中地址的后4位!可以直接双击地址栏选取,那怕选上了L和:

为了方便对比分析,各版本均可下载。当然后面的版本在某些方面要好一些。
[/b]
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
另外发现,还能把国芯的反汇编出来呢,改一下标题。
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
本帖最近评分记录: 15 条评分