=79、HyperSnap-DX v3.00 破解法 ==========================================
以下称此软体为HS...
1.执行HS...出现延迟画面...
2.Ctrl-D 切入S-ICE...
3.下bpx lockmytask指令...
4.按F5切回HS...按OK...
5.S-ICE拦下後...BD * 把拦中断的功能关掉
按几次F12...跳回HS领空(HSDX主程式模组)...
6.然後一直按F10....直到下面:
XXXX:0040F6FE PUSH 0046CC44
XXXX:0040F703 PUSH ECX
XXXX:0040F704 PUSH EAX
XXXX:0040F705 CALL [00490D54] ;用F10带过此行...
XXXX:0040F70B TEST EDI,EDI 延迟画面就跑出来啦...
XXXX:0040F70D JZ 0040F745
所以往上看...看哪里可以避开此CALL...
如下:
7.
XXXX:0040F685 CALL 00426C10
XXXX:0040F68A CMP DWORD PTR [0048547C],00 ;比对旗标值
XXXX:0040F691 PUSH EBX
XXXX:0040F692 PUSH ESI
XXXX:0040F693 PUSH EDI
XXXX:0040F694 JNZ 0040F745 ;若[0048547C]之值等於00...
那就死定罗!!!
8.所以在0040F685那行设断...再重新执行一次...
拦下後...追进去...
但是...发觉...好像没有更动[0048547C]的指令出现...
不信邪...
下BPM XXXX:YYYYYYYY (即[0048547C]的位址)...
按下G...结果还是在XXXX:0040F691 PUSH EBX拦下...
表示此行的上一行XXXX:0040F68A CMP DWORD PTR [0048547C],00
有读写此位址...当然嘛...要比较...当然要去读咩...
除此之外就没读写那锅位址的指令...
我偏不信邪...BPM XXXX:YYYYYYYY仍然开著...
重新载入执行...哇勒...还是在老地方拦下...
但是重头载入执行...你会发觉
XXXX:0040F68A CMP DWORD PTR [0048547C],00被栏两次(检查两次)
可见没有其他的指令读写那锅位址...
算了...那就不管啦...
执行到XXXX:0040F694 JNZ 0040F745
下CODE ON...记下机械码...
然後下A...
改成JMP 0040F745
嗯...强迫跳过啦...:p
9.这一套破的蛮丑的...
还有Unregistered version的标记...
不管啦...用UltraEdit改掉就好啦...
刚试了一下(2000年)...功能都没问题...
应该ok啦...收工!!!
10.重新整理一次:
软体名: HyperSnap-DX v3.00
改 HSDX.EXE
FIND: 83 3D 7C 54 48 00 00 75 2A 8D 45 0C 50
EDIT: -- -- -- -- -- -- -- EB -- -- -- -- --
--: 表不用修改之处。