= 25、roboword.exe is 249,360 bytes ======================================== roboword.exe is 249,360 bytes Error Free wrote: > > ROBOWORD .... my roboword.exe is 249,360 bytes > > 有很多东西摆在你眼前时, 因为还不是很需要, 所以总是会把 > 它给忽略掉; 当某天需要时, 翻天地覆却又偏偏找不到; 最後 > 你以为它丢了, 只好自己做一个, 此时在房间角落内, 你才看 > 见蹦出好多个. > > "ROBOWORD 与我" 的故事, 刚好满足了以上的情节, 当我追到 > 手後的一两天, 才又看见版上, 挤出了一堆的破解档. 是有一 > 点不平衡! 目前对此软体还不是很需要的人, 注意了罗! 可不 > 要再重蹈覆辙了哦! > > 好进入正题.... > > 首先我们要先谈一谈如何拦截本程式--其实只要 wice 在手, > 你是可以随时中断进去 trace 的. 你就像一个潜水夫, 潜水 > 配备亦是一级棒, 若海底内没有任何指标, 你要如何找出海中 > 的一支银针呢? 很难吧! 除非踩到狗屎, 好运当头才找的到. > > 像一般的注册号码拦截, 你在画面上会看到注册的窗子, 那个 > 窗子或你打的 78787878 , 就是在海中的 "显眼指标" , 只要 > 拼命的往 78787878 游过去, 若银针没有伪装的话, 通常是容 > 易找到银针的. > > 像以前我讲的 bpx lockmytask 的收窗拦截, 也是把 "打x窗 > 子" 当成一个的指标, 然後再找进去. 故破解软体的第一指标 > , 若能够预设的够适当, 那么以後的路子就会很好走. > > 这之的目标主角 "ROBOWORD" , 既没有注册窗子、又不能让你 > 打 78787878 、亦没 "打x窗子" , 那你如何预设断点? > > 说了一堆纸上谈兵的东西, 有一个很重要的 "前戏" , 我们却 > 还没做. 因为破了要有用才行, 我们要先检查一下, 破了到底 > 有没有用? 因为这是测试版, 依经验, 测试版是有很多东西不 > 存在的. > > 重要资料不存在, 就算你破了比对核心, 依然没什么鸟用, 除 > 非你改写程式的功力一级 若要改写一大串的东西, 不如重 > 写还来得比较快, 写出来了, 你还可以光明正大的卖钱. > > 前戏不是要你对女朋友怎样, 而是要你用 Ultraedit 把字典 > 档载进来观察. 一看! 这个测试版居然有 G-Z 的资料, 这下 > 子你女朋友完了, 不! 是金点完了... > > 教了你们这么多堂课, 眼看著一学期又要过, 我想再看看你们 > 的樵夫触机 (hacker sense) 提升到那里, 看看你们有没有资 > 格脱离 hacker 断奶期. > > Ok! 我问你们, 在 ROBOWORD 的执行期间, 在画面上有什么东 > 西, 可以让你当成设断的参考指标? 想一想..... 有没有想到 > ? 想到的举手..... 好! 你举手, 请说... 对! 画面有 "A to > F...demo version" 等字. > > 这个 "demo version" 就是我们要攻进去的第一据点. 不过千 > 万不可以为这类的指标, 都很容易的就会被你找到. 也不可先 > 入为主以为就是找不到, hacker 就是一想到方法, 就先 trace > 再讲; trace 不到, 再想其它的... > > 1.执行 roboword . > 2.切入 wice . > 3.用 s 30:0 L FFFFFFFF 'demo version' > > 有一点爽了..因为搜到了一个位置 30:xxxxxxxx > > 4.用 bpm 30:xxxxxxxx 设断. > 5.按 F5 返回. > > 好! 第一个猜试断点设好了, 接下怎么办? 当然就是想办法让 > 我们可爱的 "金点罗伯兄" 走到你预设的断点罗! 你就随便指 > 一个字看看, 要是条件成立就会被 wice 拦下来. > > 什么? 拦不下来? 我看看..... 哎呀! 你这个死小子, 没事老 > 让字典程式查 "fuck" ! 不要查 "fuck" 啦! "fuck" 它的字 > 头是在 A-F 之内! 旁边有个 "shit" 字你试试看.. > > 什么? 还是拦不下来? 我再看看... 哎哟! 你怎么用破解档在 > 练习破解呢? 快去找 "纯" 试用版的回来, 再 install 一次 > 试之. > > 6.经过了一番努力, 你们总算给拦下来了. 如下: > > xxxx:AA8D REPNZ SCASB ; <- 被拦下的地方 > LDS SI,[BP+06] > LES DI,[BP+0A] > MOV AX,DI > : : > --- KERNEL(01) --- > > 这下是更爽了, 因为预测的条件是成立的. 不过要爽太早, 因 > 为程式不是你写的, 好不好追, 还是个未知数. > > 7.你先按一下 F12, 到 roboword 的领空观查看看. 如下 > > yyyy:06DE CALL KERNEL!LSYRCPY > MOV AX,0001 ; <- 返回至此... > POP SI > : : > --- ROBOWORD(03) --- > > 每到一个新地方时, 你就大略的分析一下附近的程式, 我们先 > 往上看, 因为这里是出现 'A TO F ..' 的地方, 我要了解一 > 下, 有那些条件会使 CPU 走到这里. > > 8.你把游标往上移, 你会看到...如下: > > yyyy:0D0C CMP AX,0064 ; 和 64 比较? > JZ 0D74 > : : > 0D2E CMP AX,0065 ; 65? > JZ 0D74 > : : > 0D50 CMP AX,0066 ; 66? > JZ 0D74 > INC WORD PTR[...] > : : > 0D69 CALL KERNEL!... > MOV AX,0001 ; <- 刚刚返回的地方. > > --- ROBOWORD(03) --- > > 以上有 64,65,66 你们想一想, 比较这些数字有什么特殊的意 > 义? 你们再往上看时, 亦有 61,62,63 , 那倒底有什么意义? > 若是常常玩电脑的人, 应该一看就知道那是小写的 a,b,c...f > 的 ASCII 码. 这下子你们可爽翻了a! > > 以上是给新生的第一个习题... 若搜到很多个 'demo version' > , 请从断电重开机. 或是用最後一个 30:8xxxxxxx . > > 等一等! 等一下再收拾书包, 因为还没下课. 假如你不喜欢它 > 的抬头的话... 怎样? 还想听下去吧! > > 9.离开 roboword , 用 ldr 载入 roboword . 如下: > > xxxx:3F3A XOR BP,BP ; 用 F10 开始走 > PUSH BP > : : > 3FCF CALL yyyy:3FE4 ; 用 F8 进入 > > 10.进入 yyyy:3FE4 的地方如下, 用 F10 开始走. > > yyyy:3FE4 MOV AX,DS > NOP > : : > 4002 CALL zzzz:0000 ; 用 F8 再深入 > > 11.进入 zzzz:0000 你会看如下, 亦是用 F10 继续走. > > zzzz:0000 ENTER ... > CMP WORD PTR[BP+0C... > : : > 0197 CALL KERNEL!GETPRI... > $$ PUSH WORD PTR[2200] > PUSH 7D > PUSH 00 > PUSH 2C9F > PUSH 0330 > ## CALL USER!DIALOGBOX ; <- 跑出抬头的 call . > @@ CALL wwww:098E > > 我们已经知道 ## 那个 call 是显示抬头的, 但你不可以进去 > user! 的地盘改东西. 因为 user! 是系统的范围, 改它的程 > 式码, 你的系统会完蛋. > > 当然你可以插 jmp 的指令, 使程式飞过 call user! 的上空 > , 也就是直到达 @@ . 但是 jmp 不可以乱插. 因为那些 push > 是一些引数, 是要给 dialogbox 用的, 但是 dialogbox 会 > 自动补回 sp 值, 所以 jmp 不可乱插. > > 当执行光棒走到 @@ 时, 你就把 sp 值记下来; 你再重新执行 > roboword 一次, 当到了走 0197 时就开始注意 sp 值哦! 慢 > 慢的一步一步走, 当 sp 和刚刚一样时, 光棒所停留的那一行 > push , 也就是你要改成 jmp @@ 的地方. > > 其它的就自行练习吧! 好! 下课..... > -- > 喜欢破解注册资料者, 请接如下 Group, 保证让你一路爽到底 > alt.crackers alt.cracks alt.binaries.warez.ibm-pc