阅读本文需要一定的汇编基础知识和OD使用经验.另外,对VB也要有一定的了解.
前几天论坛的一个朋友给我发短信,说"高手教教我",呵呵,我不是高手,我也是从一无所知过来的.我只不过是早学了一段时间.如果你能拿出时间来学习的话,你一定会更棒的!好了.言归正传.
下面我们以英雄无敌3 3.1 中文版来说明.
工具:OD,VB6.0 SP6,GM8,SPY++
首先,开始游戏,进入游戏后,发现英雄名字是"克里斯丁",好了切换到GM8,搜索该英雄的名字.
搜索出5个地址
经过试验,第二个地址是英雄名字存放的地方.
看,改了以后,英雄的名字变了.成了"舅里斯丁"了.汗.
然后,记下刚才我们修改的地址打开OD,选"文件"-"附加",附加英雄无敌3的程序
[

附加完成后,在数据栏中,点右键,选"转到",输入刚才我们记下的那个地址,输入正确的话,应该能看到下面的图画.
然后,用鼠标选中这一段数据,点右键,选内存断点-内存访问断点.然后,回到游戏中,双击英雄头像.程序被断下了.在如图的位置.
这只是一个模块.我们要知道是哪里调用他,地址是哪来的.OD中,按Ctrl+F9,执行到返回.我们看到如图.
程序停在我用红线标的地方.我们往上找,到了我用鼠标选中的那一行里,我们知道了,在地址8261D8中存放的数据+23就是英雄名字的地址.一试,果然如此.
汗,上班到点了,先写到这.晚上下班后,接着写第二节...欢迎大家继续收看.