= 07、破解经验: ACDsee 32 v2.0 =============================================

这个软体, 对於版上的先进只是小儿科, 我在此野人献曝, 希望各位先进
以及同好们给予指导, 也能和像我一样的新手一起交流.

因为此软体对姓名以及注册码均编码之後, 再行比对, 无法直接找出注册
码, 而对於组语肉肉的我, 要去找出编码的方法是个大难题. 最後只好采
用改档案的方式. 这是我第一次尝试以改档案的方式破解程式.

1. 输入注册资料(如果己经注册, 可以用regedit, 将注册资料改掉)
   Name: <你所想用的名字> 不过还是得6个字母以上, 中文不行
   Reg#: <随便>
   切换至SoftICE(ctrl+D), 设定中断点
   bpx hmemcpy
   再交回控制权(x)
   
2. 按OK 之後触发中断将控制权交到SoftICE上,
   将中断disable, bd *
   一直p ret至acdsee的模组, 然後p(或F10)至
   ..
   004036B0 call 00402FC0
   ..
   t追踪进去(F8), 再P到
   ..
   00402FE1 call 00421750
   ..
   t追踪进去
   
3. 当P 到
   ..
   004217BE  LEA EAX,[ESP+48]
   004217C2  LEA ECX,[ESP+74]
   004217C6  ADD ESP,10
   此时DS:[EAX]是以名字编碥的结果, DS:[ECX]是以注册码编码的结果
   到此可以下code on, 往下
   004217C9 8A10    MOV DL,[EAX]
   004217CB 3A11    CMP DL,[ECX]
   004217CD 751A    JNZ 004217E9
   为了使比对成功, 我想可以将004217C9 改为MOV DL,[ECX]
   下A 004217C9, 然後填入MOV DL,[ECX]会看到
   004217C9 8A11    MOV DL,[ECX]
   
   还不急著交还控制权, 因为下面还有一段比对的码, 再P至
   ..
   004217D3 8A5001  MOV DL,[EAX+01]
   004217D6 3A5101  CMP DL,[ECX+01]
   004217D9 750E    JNZ 004217E9
   如法泡制, 可以看到
   004217D3 8A5101  MOV DL,[ECX+01]
   
   可以交回控权了, 应该可以看到注册成功的画面
   
4. 由上述可以准备改档案了, 先复制一份备份, 以备不时之需
   我是用UltraEdit开启档案
   Find: 8A103A11 只有找到一个, 就很用力的改掉(也可以不用力啦..:p)
            ^
   Rep :    1
   
   Find: 8A50013A5101 也只找到一个, 再用力的改掉
            ^
   Rep :    1
   
   如此修改後, 注册码就可以隋意输入了..

修改後到目前还没遇到什么问题

请不吝赐教..
--
风尘情事怎能挥尽, 观世不笑岂是痴人

Hank Wang
mailto:hank@ip.csie.ncu.edu.tw