| |||
新浪首页 > 游戏世界 > 游民论谈 > 文章内容 |
冰魄追魂剑法 之 失落的下半部
游民部落网友骸骨
忘记说说怎么跟踪DrawChar()这个函数了。 当然,需要前半部的基础,可不是你凭着最后一句“白首太玄经”就能成为超一流高手的。 在找到DrawString()这个函数之后,再接着找DrawChar,就是顺藤摸瓜,非常方便的事情。回想一下DrawString()函数中的那个for循环,一直跟进去,就能找到地方了。 再向大家讲述一些精要,关于如何确定地址。 1. 不妨修改程序,把某个函数的第一句话改成ret (或者ret xxx, xxx参数是原来程序的返回参数,表示对esp的修改,照抄就行了,抄错了你就死定了)。看看是否所有的文字都消失了? 2. 不妨修改参数,把那些成对出现的,值域在[0,800]之间的数值修改修改,看看会不会影响字符的位置。 3. 在DrawChar最最内部,不再出现任何的call的地方,如果遇上内存操作指令,而来源/目的指针指向的地方有大量重复,有规则的内容,则非常有可能是位图。不妨向里面fill它一千个字节,看看屏幕变化。 4. 不妨……(由于年代久远,以下字迹比较模糊,看不见了)
|