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毫秒