Programming 版 (精华区)
发信人: Mice (鼠儿), 信区: Programming
标 题: 加密&解密----(24)
发信站: 紫丁香 (Sun Sep 14 16:06:05 1997)
在此先教各位一个偷机的方法:
(记得要随时拿笔把追到哪了记下来)
先执行要进入游戏的主档 等他执行到一半时( 当然要在问密码之前,不要太接近问密码
的时间,再来叫出 S-ICE or GAMETOOLS 向下找到一个( RET )的指令,不要呆呆的一个
一个的追下去!直接在那个[RET] 上下一个HERE 的命令,再来重复同样的方法一直到你找
了六页以上还找不到任何一个[RET] 表示这个 CS 就是主程式所在的地方
再来把游标放在你所找的到的第一个CALL後, 下一个HERE 的指令,若没事发生!
表示不是这个CALL 有问题,所以我们找下一个再来执行看看,例:
1300:1993 CALL 0A1B:1F45
1300:1998 INC SI ----> 在这下一个HERE 的指令 若没事表示
1300:1999 ADD [BP+57],DL 1993 的那个CALL 没问题, 所以我们
1300:19A1 CALL 0CD7:1234 游标放在 --+
1300:19A6 JMP 2A10 <----------------+ 这行看看,若这样就进
1300:19A9 CMP SI,+03 入问密码的画面,就成功一大半啦!赶
1300:19A9 JZ 1000 快进那个call ( 用 T )继续用上面
∶ 的方法来继续追,当你发现执行某个
∶ call 後它画出了某一部份的密码画
∶ 面时,赶快去带你进这附程式的call
∶ 把它砍了试试! 如果幸运的话! 就从
∶ 此不用受密码的困扰了!如果不行的
话就照原始的方法来追吧!
如果你是用GAMETOOLS的话!那还有另一种较易判别那一个跳跃指令是在判断密码正不正
确的方法! 请看下面!
适用时机: 当会问好几次密码(一般是三次) 若都不正确才会跳回DOS
使用方法: 1. 先找出存放错误数值的位址 ( 不要对我说连这个都不会 )
2. 用 [ AUTO ] 的指令来找出哪一个INC 会增加那位址的数字
3. 记住他的 CS:IP
4. 依原始的方法一直追 看看哪一个跳跃指令会把你带到刚抄下来
的CS:IP 那,一般的判断指令群较常见的有两种 我把他列在下面
CMP XX,YY ;比较XX & YY 是否相同
JZ ???? ;若上面的条件成立(即XX=YY) 就跳到???? 这地方
JMP !!!! ---> 若你发现!!!!刚好等於你刚抄下的CS:IP那很幸运
的 这个CMP就是在比较密码是否正确的地方了!
只要把 JZ 改为JMP 就不管输入的是否正确都会判
定你输入正确而可以玩游戏了!
不然就是:
CMP XX,YY 在这种格式下我们应该把JNZ改为 NOP
JNZ !!!! 为啥要这样改呢? 自己稍稍想想就应想的通
JMP ???? ( 在此 !!!! 的值是你刚抄下来的那CS:IP )
--
我是一只好老鼠!
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: 202.118.226.75]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.153毫秒