= 01、用 Soft-ICE 破 BOOKMM.ZIP ========================================= 请各位用ARCHIE找 BOOKMM.ZIP 是一个 NETSCAPE 的 BOOKMARK 和IE 的我的最爱转换的程式 不注策只能用十次 解开後 BOOKMM.EXE 217,600 BYTE 这是小弟的一篇拙文...但也花满多心思. ERROR FREE 大哥说过 要破解软体就要 花时间 有耐心 不怕烦 还要会一点组合语言...没学过赶快买本书来学吧! 小弟才学会玩 SOFTICE 一个多月 ,要学的仍然很多 或许有人会问...我POST 此篇目的?? 我只是想和大家分享经验... TW.CRACK.CRACK 又关了 ERROR FREE 大哥 大概太忙...好久没看到他的破解文件了 此软体很好破...对高手根本不算什么... 但对像我这种 HACKER 新生...就要花时间了 我只是抛砖引玉... 希望各位高手破了什么软体...也POST 出来...造福世人 但现在越来越多的 CRACKER HACKER 站都关了...不知我有无犯法.... 没意外...我大概一个礼拜 POST 一篇我的破解心得...但春假 ...考试就不行了 请大家包涵 用ERROR FREE大哥的 " 78787878大法 " 记住喔! (1) 用 winice 载入 Win95 (2) 执行 BOOKMM.EXE 先选择注册 (3) 先填 NAME : 随意 CODE : 78787878(习惯) (4) 按 Ctrl_D 进入 winice (5) 下指令 S 30:0 L FFFFFFFF '78787878' WINICE 会搜出一个位址 ss:ssssssss (6) BPM ss:ssssssss <- 设断点的方法 ( 用法: BPM [ADDRESS], 此法很好用 ) (7) 按 F5 把控制权还给 BOOKMM (8) 在 BOOKMM 下按 OK ! 被 WINICE 拦截, 如下 (9) 用 BD * 暂停以前的断点 (10) 用 BPM ES:EDI-8 设另外一个. ; <- 因为你打 8 个字, 所以减 8 (11) 按 F5 返回 BOOKMM 一下子又被拦了下来 ( 以後此点简称" 二拦 " 因为拦两次嘛) (12) 二拦 後按四次 F12 到了 (F12 是 跳离这个 CALL ) (按五次就跑出失败视窗了 就从四次开始 TRACE ) 0137:00401643 CALL ..... 0137:00401649 TEST EAX , EAX <-- 从此开始 请在此设断点 知到如何设了吧! 0137:0040164B JNZ 0040167D ^^^^ ^^^^^^^^ ∧ ∧ |___ offset 应该和我一样   SEGMENT 可能和我不一样 (13) 按F10 (单步执行)...一直按 走到了 0137:004016a5 call ... 用 F10 带过此call必完蛋 看有无方法可避开此 call 按 F6 让游标上去 按page up 或上下观察 ( 若游标 在上面...按F9 可设断点... 断点 的那行颜色不太一样,看到了吧! BPM [ADDRESS] 也可设断点 看各位喜欢那一种 ) (14) xxxx:0040167b jmp 004016aa 可跳开 xxxx:004016a5 但刚才没走到 why?? 因为 xxxx:00401649 TEST EAX , EAX xxxx:0040164b jnz 0040167d 那行 有跳跃 (15) xxxx:0040164b jnz 0040167d 上面两行 xxxx:00401643 call 必有问题 刚刚有设断点吧 !再注册一次 到 此call 按f8进入观察 目标 让eax = 0 (16) xxxx:bff772ec push ebx <-- 从此开始 按f10 ..... 走到了 xxxx:bff71310 call bff71247 用f10带过此call必完蛋 , 设断,再注册一次,用f8进入 (17) xxxx:bff71247 push ebx <-- 从此开始 按f10 ..... 走到了 xxxx:bff71277 call bff71215 xxxx:bff7127c leave xxxx:bff7127d ret <-- 出来了 eax 当然不是 0 (18) 相信大家都知道如何做了吧 xxxx:bff71277 call bff71215 设断,再注册一次,用f8进入 (19) xxxx:bff71215 push ebp <-- 从此开始 按f10 ..... 走到了 xxxx:bff7121a mov esi,[ebp+8] xxxx:bff7121d mov edi,[ebp+c] xxxx:bff71220 xor eax,eax xxxx:bff71222 mov ah,[esi] xxxx:bff71224 mov al,[edi] xxxx:bff71226 cmp ah,alM xxxx:bff71228 jb bff71235 xxxx:bff7122a ja bff71235 xxxx:bff7122c or ax,ax xxxx:bff7122f jz bff71241 xxxx:bff71231 inc esi xxxx:bff71232 inc edi xxxx:bff71233 jmp bff71222 ( 比较下一个字元) 这就是比较的核心 当程式走到了 xxxx:bff71226 cmp ah,al 下指令 d esi 可查看记忆体 看到刚才输入的字了吧 下指令 d edi 可查看记忆体 看到 五个数字吧 那五个数字就是注册码了 就这样 破解了 ...