请教有关smp补丁移植的问题

狂风当道

普通会员
2007-06-11
27
0
0
[font=宋体]
近期在做D908i补丁的移植,请问:
找到俄原版D900iXEGF2中对应在D908iZCGE3的cla里的地址后,如何确定该地址内地数据是何类型?

因为有些补丁在对应的地址内的数据是一样,就姑且可以认为修改的数据也一样。但有些对应地址(确定地址不是简单的转换,是通过数据分析,找规律得出的)数据不同,或是从全零或1F00改成某个值。而这些值又不像“提示音45秒”之类的有数字关联。我如何确定这种要改掉值是指令、指针、字符、数值或别的什么?

举个例子吧,比如D900iXEGF2主要补丁提供了其他补丁需要调用的接口,它的第一个地址:
nord offset="0x15A3FE4" from="00000000" to="E1E6B320"
对应D908iZCGE3的地址上原先的内容也是全零,那么应该如何修改?
panhx对此的解释是:
这个"E1E6B320"是D900iXEGF2程序指针,要转化成D908iZCGE3里的指针。转换方法:
“把数字反转-2,20 B3 E6 E1 -20 00 00 00=B3 E6 E1你再使用HEX的跳转到B3 E6 E1是不是到了补丁主程序了~有地址的,有30的都是要找到对应的地址或者函数的”,这是panhx原话。
转换的依据是什么?转换后跳转到哪里了?为什么有30的都表示的是指针?

我看到有人用IDA做逆向工程,反编译后得出代码碎片。但是反编译出来的代码很不好理解。我个人认为,即使有源代码,如果没有详细注释,也很难了解程序思路,只是了解内存大致分配,指针定义有帮助。J9版主有D908的源代码,移植了很多补丁,不知道这方面能否给些经验?
—— 一个初学者对不吝赐教的前辈致以深深的敬意。
skype:michael.feng66
qq:11096008
email:michael_wind@163.com
[/font]