hjp3011 发表于 2005-8-15 00:00:00

请教关于IDA反汇编的问题!!!!!!!

我用ida反汇编5508版本的flash文件得到的结构是
ROM:0000
..............
ROM:FFFF
seg001:0000
.................
seg159:FFFF
ROM:A00000
...............
ROM:FFFFFF
不知道这个汇编的结果是不是正确的!
还有看了狼大他们的教材,有提到有seg215的,即大于seg159的结构不知道是怎么回事????
检查得到数据是在A00000~FFFFFF里面的,应该也就是我们要修改的程序是不是啊??
谢谢~~~

coollang 发表于 2005-8-15 00:01:00

因为C166的寻址空间是16M,而Flash部分被映射到0xA00000(其实是两块,一个2M的被映射到0xA00000,一个4M的被映射到0xC00000)。那么,如果要正确地汇编的话一是在前面填充10M的内容,比较好的办法是把RAM部分读出填充进去,另一种是指定加载的开始地址。你可以从老马的服务器上下载我的版本。是一个16M的完整Dump反汇编的结果。至于Seg,C166每64K为一个Segment,每16K为一个Page,主要是区分程序存取和数据存取。正常的话应该共有0xFF个seg,0x400个Page。你的情况好像是后面是直接偏移了,seg160就是seg0A0。你可以设置选项-反汇编里设定-Use Segment names试一下。

hjp3011 发表于 2005-8-15 00:02:00

谢谢答复先~~~
我刚才查看了一下,选项-反汇编里设定-Use Segment names的钩上的,如果取消的话就变成了
0000:0000
.....................
9F000:FFFF
0000:A00000
...................
0000:FFFFFF
是不是我的反汇编出现问题了,我的设置是按照MrJewes的【专题文章】西门子6688Flash修改入门的入门
设置的,在前面填充了10m的空白地址!!!????????
而且我寻找到你的例子里面的地址,程序也是不一样的~~~~~~~~~~~

而且我反编译出来的idb只有65.6m,跟你们编译出来的100多m好象不一样~~~~

coollang 发表于 2005-8-15 00:03:00

首先,不应该设定RAM部分的。其次,如果你是手工在Flash文件前面填充了10M空白,拼成16M的文件,那么就不需要设定任何其他东西,直接反汇编就可以。如果是只有6M的文件,那么需要设定开始地址是0x00A00000,而不是0x00000000。我的Flash文件因为是16M的完整Dump,所以反汇编的结果要大一些。如果仅汇编6M的Flash,可能会小。

coollang 发表于 2005-8-15 00:04:00

建议你使用16M的完整Dump来反汇编,如果想体验一下反汇编的过程的话,可以先下载我的反汇编文件。然后用IDA打开,执行File->Produce->Create EXE File。得到的就是我的完整的16M的Dump。然后用它来直接反汇编,这个过程只需正确的选择CPU,不需要更改其他参数即可。这个16M的Dump是我用干净的V55Flash拼接了Konca的前10MDump做出来的,因为Konca的Flash部分不是很干净。

hjp3011 发表于 2005-8-15 00:05:00

正在下载16M的完整Dump,晚上来汇报结果~~
还有一个建议,我没有c166的汇编指令的中文说明,暂时手上也没有相关的资料,希望狼大把常用的几个指令注释一下 (Mov ,call ,ret,rets,jb,jnb,extp,jmp)!
按照狼大的方法反汇编成功16m大小的文件!
结构为:
ROM:0000
................
ROM:FFFF
seg001:0000
..................
seg255:FFFF
但是这个汇编出来的表示方法跟MrJewes或者你的图形菜单的例子
27D500 : DC 4F             EXTP   R15,#1      
27D502 : D4 4E 02 00       MOV      R4, ->取得键码,如为0则返回
27D506 : 2D 32             JMPR   CC_Z,006CH      
.........................
.............
的地址表示都不一样,这个问题怎么解释啊?我想左右的flash文件反汇编出来的应该都是有一样的地址的啊?

[此贴子已经被作者于2005-4-22 16:42:44编辑过]

coollang 发表于 2005-8-15 00:06:00

这里面使用的都是文件地址,转换到IDA中应该是C166寻址空间上的地址,对于6688来说,就是加上A0。比如27D500,就是C7D500。段地址是0xC7,段内偏移是0xD500。在你的结果中,显示的10进制的段地址(我感觉应该是16进制的才对)。0xC7转换成seg199才对。

hjp3011 发表于 2005-8-15 00:07:00

谢谢狼大的解答,我再花多点时间来看相关的资料~~~希望对这些理解的更深刻一些~现在正在学习arm汇编,都有很多相似的东西!

coollang 发表于 2005-8-15 00:08:00

这个段名是可以用IDC脚本指定的,我的那个IDB是使用了一个IDC处理过的,比如一些数据区,因为是基于Page寻址的,都作了特殊处理。在这一点上X618就做的很好,那里面数据和程序是严格分离的,所以看程序也非常方便。而6688则是混杂的,在相当长一段时间,因为这个我甚至对6688的反汇编产生了抵触,很长时间只看x618的!

hjp3011 发表于 2005-8-15 00:09:00

那对于我这个新手来说,我应该先做那些工作比较好呢?6688的flash代码很大,我也不可能都去看它,只能是在得到入口地址的情况下,对程序进行添加或者修改~还有,其实我是很想做56版本的汉化工作的,希望狼大给我一些建议~~

coollang 发表于 2005-8-15 00:10:00

56版本的汉化工作,基本上是不可能的!因为所谓的汉化工作包括相当多的内容,首先要系统在底层支持汉字。这涉及了很多部分,比如汉字的处理,汉字显示等。而这些底层部分在V5601中都是不具备的。一直以来,西门子的大中华区版本08都是和其他系统分别开发的。这也是很令人苦恼的,因为失去了直接交流的机会。如果想学习这些的话,因为继续深入也没有太大的意义了,6688的发展几近于极限了,可以关注一些比较通用的东西,这些在西门子的后继版本中都是通用的。比如看一下某些修改,来理解一些基本东西的运作,比如通用菜单的处理,这些在后继版本中都是有效的,并不因为处理器的改变而改变。

hjp3011 发表于 2005-8-15 00:11:00

狼大说的是啊~~从我做了一年的单片机到现在的arm7和arm9,觉得自己实在是跟不上硬件推出的速度和系统软件衍生出来的版本速度,而且越来越多的新指令和各个厂家自己规定的指令,会使人不知所措!但是我的体会就是基本上所有的处理器的思想都是一样的,现在已经不会向一年前那样看到程序就迷茫!在自己做的开发板上也做了一些应用,对于即将毕业的我是很有帮助的,7月份之后我走上了工作岗位,还是会继续做我喜欢做的研发工作!还会继续关注这里一片开阔的天空!!从6688开始是我最早接触嵌入式系统的,也慢慢的培养了我对这个领域的兴趣,希望以后在这些方面能够得到你的指点~~~~ 

coollang 发表于 2005-8-15 00:12:00

指点是谈不上了,大家交流一下很好的。我做这些东西也是因为自己的兴趣,或者说是开始的好奇心!6688是我工作后买的第一款手机,幸好是6688!而或不幸是6688。对于嵌入式系统来说,如果你做过ARM的开发的话,那真是很不错的基础了。我最早的时候是不想动编程的!那时还是很早的,其实只是为了刷软件而找一些资料,但恰好那时候Riza和SL456688i开始玩补丁。自己因为在学校里破解过三五个小软件,有很强的好奇心,想看看这些东西到底是怎么回事,就一点点地进去了,结果好长时间出不来!现在已经工作了快三年了,玩这些补丁也有两年了,记得是那年的3.15前一周买的。再看这些东西是有利也有弊吧,起码我对处理器方面解深了很多。虽然自己在工作中从来没做过这些东西。以后有机会可以考虑一下西门子的后继机型,比如x65系列,内核换成了ARM926的,而程序架构并没有大的改变。这一点真是很佩服siemens这样的公司,四五年前(X35就是这种架构了,6688其实属于X35,可能更早)设计的软件架构,能一直适应到现在。再加上你有ARM的基础,如果想学习的话还是很快的。能够对自己日常接触的东西作一些自己喜欢的修改,还是蛮有成就感的。我想我会一直保留我的6688和3618的!

hjp3011 发表于 2005-8-15 00:13:00

6688创造了一个时期的经典,它的地位或许在我们这些人中无法取代~~当然我们也相信以后将有更多更好的经典出来,需要靠大家来制造更多的经典!本来我还想着考虑下次买p910s的,不过还是觉得这里有太多的东西让我割舍不下,所以我还是决定选择西门子的后续机型作为我的兴趣来研究,不管是sx1还是x65系列还是其他的型号~~如日中天的嵌入式的市场已经爆发着,我相信在这个行业里会有越来越多的朋友加入进来,不管是站在一个中国人的角度,还是站在西门子机油的角度来说,我们大家的共同努力,互相团结都是必须的~~~
页: [1]
查看完整版本: 请教关于IDA反汇编的问题!!!!!!!