• 标 题:KV3XXX解密过程 By: CHINA 2000.10.28 (3千字)
  • 作 者:1212
  • 时 间:2000-10-29 16:46:44
  • 链 接:http://bbs.pediy.com

KV3XXX解密过程
            CHINA 2000.10.28
(转载请保持完整!不要将我的名字替换成你的!!!)

    在WIND兄放上KV3XXXX的光盘文件后,发现我不能再用它了。
虽然我是一个KV300+的正版用户,但我没用过几次(我怕,每次
运行时软盘在沙沙的响,万一坏了怎么办,花钱去更新?要20元
钱!还要时间... :-< )而这次KV3XXXX更是将我们这些老用户都
抛弃了!怎么办,有了KV3XXXX的光盘文件就好办了。
(由于众所周知的原因,在此不提供下载地址请自行查找。)
    首先,运行setup.exe,点[KVW3000],软驱灯亮了一下,弹出
一个对话框。提示“请在 A 驱动器中插入 KV3000 加密盘”
有门!就下了一个MESSAGEBOXA,点[继续],程序中断。我们来看
一下:0167:004018D6 83F804  //程序返回
我们完整地来看看:
0167:004018B4 56              PUSH    ESI
0167:004018B5 E866FFFFFF      CALL    00401820  //进行判断软驱中有无盘,各位将它用9090909090代替会如何?Ha,Ha,Ha...
0167:004018BA 83C414          ADD      ESP,BYTE +14
0167:004018BD 85C0            TEST    EAX,EAX
0167:004018BF 7528            JNZ      004018E9  //有盘就跳,无盘就...
0167:004018C1 8B3D90534100    MOV      EDI,[00415390]
0167:004018C7 6A25            PUSH    BYTE +25
0167:004018C9 8D442418        LEA      EAX,[ESP+18]
0167:004018CD 6844A14100      PUSH    DWORD 0041A144
0167:004018D2 50              PUSH    EAX
0167:004018D3 56              PUSH    ESI
0167:004018D4 FFD7            CALL    EDI  //弹出那个对话框
0167:004018D6 83F804          CMP      EAX,BYTE +04
0167:004018D9 751F            JNZ      004018FA  //是否退出
0167:004018DB 55              PUSH    EBP
0167:004018DC 56              PUSH    ESI
0167:004018DD E83EFFFFFF      CALL    00401820  //进行判断软驱中有无盘
0167:004018E2 83C408          ADD      ESP,BYTE +08
0167:004018E5 85C0            TEST    EAX,EAX
0167:004018E7 74DE            JZ      004018C7 //无盘就返回继续比较,有盘就OK了!
0167:004018E9 5F              POP      EDI
通过这关后,程序又开始读软驱,这回可没有提示框了。我们就来
看看KVW3000.Exe这个安装程序吧。
程序自动结束,就下BPX ExitProcess吧,中断是中断了,可程序也
完成了。没什么戏,这个程序是安装的,可能会...
对了用BPX GetTempPathA,这回运气不错,没有读盘就中断了。
0167:0040208D 6800010000      PUSH    DWORD 0100
0167:00402092 FF1514814100    CALL    `KERNEL32!GetTempPathA`
0167:00402098 8D4C2410        LEA      ECX,[ESP+10] //来到这里
0167:0040209C 8D942420010000  LEA      EDX,[ESP+0120]
0167:004020A3 51              PUSH    ECX
0167:004020A4 6A00            PUSH    BYTE +00
0167:004020A6 68D8A34100      PUSH    DWORD 0041A3D8
0167:004020AB 52              PUSH    EDX
0167:004020AC FF15C4804100    CALL    `KERNEL32!GetTempFileNameA`
0167:004020B2 8D442410        LEA      EAX,[ESP+10]
0167:004020B6 686CA44100      PUSH    DWORD 0041A46C
......
0167:004020E9 7412            JZ      004020FD
0167:004020EB E8901F0000      CALL    00404080
0167:004020F0 85C0            TEST    EAX,EAX
0167:004020F2 751A            JNZ      0040210E
0167:004020F4 A168C34100      MOV      EAX,[0041C368]
0167:004020F9 85C0            TEST    EAX,EAX
0167:004020FB 757C            JNZ      00402179
0167:004020FD 8D442410        LEA      EAX,[ESP+10]
0167:00402101 50              PUSH    EAX
0167:00402102 E8A9FAFFFF      CALL    00401BB0  //这是这个CALL要读盘,各位将它用9090909090代替会如何?Ha,Ha,Ha...
0167:00402107 83C404          ADD      ESP,BYTE +04
0167:0040210A 85C0            TEST    EAX,EAX
0167:0040210C 746B            JZ      00402179
0167:0040210E 8D4C2410        LEA      ECX,[ESP+10]
0167:00402112 686CA44100      PUSH    DWORD 0041A46C
以上完成后,就可以自己偷着乐了。不好,忘了一件事,就是这两个程序
都是用UPX 1.01压缩过的,要用UPX -d XXXX.exe来解压才能进行除BIG。

[本文献给支持我的朋友以及中国的CRACK们.2000]