论坛风格切换切换到宽版
  • 3301阅读
  • 4回复

请问大家是如何分析反编译后的程序的? [复制链接]

上一主题 下一主题
离线BG4ABM
 
发帖
1139
只看楼主 倒序阅读 0楼 发表于: 2006-04-07
最近用反编译软件获得了一种产品的汇编程序,程序很长,全都是连在一起的,没有伪指令,也没有注释。我打算把程序输入keil,再连上仿真器,利用keil的单步运行,进行硬件仿真,以此来分析程序。第一次搞这种分析,心理一点底都没有,不知道这样做对不对,大家还有什么更好的方法吗?
离线BG7IGJ
发帖
1998
只看该作者 1楼 发表于: 2006-04-07
不如参照他的功能自己重新写一条,这样省事多了
离线BD8NCF
发帖
2079
只看该作者 2楼 发表于: 2006-04-08
最好的方法就是硬读
在心里面执行

当然,单步执行有助理解

呵呵。。。。
离线BG7JUN
发帖
889
只看该作者 3楼 发表于: 2006-04-08
如果写的人有点点反跟踪意识,反汇编的人就会累个半死。
总的来说,根据功能重新设计,再适当结合原机从cpu外部观察的一些功能和过程的细节,自己写一个可能更简单一点。
要不,干脆设计一个兼容的硬件,原样程序照搬——某著名非it企业设计产品时就这样搞过,所以几年后还没有源码,产品功能不能升级。
51不就是几十k代码吗,功能分析清楚了,几万行代码个把星期就写完了。跟踪的话,未必那么容易搞清楚——随便插几个废字节在执行不到的代码中,后面反汇编出来的程序就是乱的;随便用一个定时器作为标志,单步执行就会跑乱掉……
离线BG7JUN
发帖
889
只看该作者 4楼 发表于: 2006-04-08
反汇编需要的不仅是耐心,还需要灵感和运气。
很难的,除非是只有几k的小段程序。
建议试一个星期,有进展就继续,否则就放弃。