-
您的位置:首页 → 精文荟萃 → 破解文章 → VRV2000 9.E版破解全攻略.
VRV2000 9.E版破解全攻略.
时间:2004/10/15 0:59:00来源:本站整理作者:蓝点我要评论(0)
-
嗨,大家好,我是飞刀浪子。“什么飞刀浪子,听都没听说过。”我~!@#$#$#$#$$%&^&**&^$倒,(一个小时后)从桌下爬起。
好,听好了,我乃中原人士,今年该21了,进的时男卫生间。好,废话少说,切入正题!今天我讲的是VRV2000 9.E(2000.11.22)版破解全攻略.
作案工具:TR ,HIEW 先用TR 载VRV2000 BPINT 13 AH=2 . .
2779:30F7 80E1C0 AND CL,C0
2779:30FA 024E0E ADD CL,[BP+000E]
2779:30FD 8A6E0C MOV CH,[BP+000C]
2779:3100 8A760A MOV DH,[BP+000A]
2779:3103 8A5608 MOV DL,[BP+0008]
2779:3106 CD13 INT 13 ;在此处拦下 CX=5011,DX=0100
2779:3108 807E0608 CMP [BYTE BP+0006],08
2779:310C 750A JNE 3118
2779:310E C45E12 LES BX,[BP+0012]
2779:3111 26890F MOV [ES:BX],CX
2779:3114 26895702 MOV [ES:BX+0002],DX
2779:3118 8AC4 MOV AL,AH ;!注
2779:311A B400 MOV AH,00 ;!意
2779:311C 5D POP BP
2779:311D CB RETF ;返回
3616:1612 6A02 PUSH 02
3616:1614 9AE4307927 CALL FAR 2779:30E4 ;读盘过程,读1面50H道11H扇区
3616:1619 83C410 ADD SP,10 ;返回到此
3616:161C 0BC0 OR AX,AX ;必须为0,因它为额外的正常扇区
3616:161E 7520 JNE 1640
3616:1620 1E PUSH DS
3616:1621 6818B8 PUSH B818
3616:1624 6A01 PUSH 01
3616:1626 6A12 PUSH 12
3616:1628 6A50 PUSH 50
3616:162A 6A01 PUSH 01
3616:162C 6A00 PUSH 00
3616:162E 6A02 PUSH 02
3616:1630 9AE4307927 CALL FAR 2779:30E4 ;读盘过程,读1面50H道12H扇区
3616:1635 83C410 ADD SP,10
3616:1638 0BC0 OR AX,AX ;此扇区为坏区或没有,所以应该不为0
3616:163A 7404 JE 1640
3616:163C B001 MOV AL,01 ;此处将AL=1 就OK了
3616:163E EB08 JMP 1648
3616:1640 46 INC SI
3616:1641 83FE02 CMP SI,02
3616:1644 7CBE JL 1604
3616:1646 B000 MOV AL,00
3616:1648 5E POP SI
3616:1649 CB RETF .
.避开此两处判断点,就OK 了。不过,VRV会说内存不够,这一次它说的是真的。好,我们搜索代码,咦,找不到,看来被压过了。
UNP 试试看,还是不行。那就手脱吧。 TR载入VRV2000 EXE1 RELOAD BPREG G G
;此时出现 MOV DX,XXXX
; MOV [CS:0291],DX
; MOV AH,30 ; INT 21
WEXE1 EXE2 RELOAD G ;直到刚才哪个地方 WEXE2 Q MAKEXE
好了,当前目录下就有了一个MEM.EXE的程序,找到刚才的判断点改掉,就OK了。不行,不行,怎么用了第一次就不能用第二次,原来它还回写了自己。
再次TR 设BPINT 21 AH=3D 通过堆栈 STACK 看它是什么地方 CALL 此处,有好几个耶,一个一个 U 看看,
分析一下前后代码,可疑就把这个 CALL 干掉试试看(最好是用JMP 飞过去,但注意平衡堆栈)。
(通过STACK 看堆栈有时是很有用的,早期的VRV 追到后面的INT 13 会死机,我就是通过堆栈来解的)
另外,若用PKLITE将解压过后的程序压一偏也可以不用改。下面我们讲一下用DEBUG脱壳,虽然有些烦,但可以增加功力啦。DEBUG VRV2000.EXE-U
3D96:001C FC CLD
3D96:001D 2E806C1310 SUB [BYTE CS:SI+0013],10
3D96:0022 73E8 JAE 000C
3D96:0024 6619ED SBB EBP,EBP
3D96:0027 AF SCASW
3D96:0028 AD LODSW
3D96:0029 0E PUSH CS
3D96:002A 0E PUSH CS
3D96:002B 0E PUSH CS
3D96:002C 06 PUSH ES
3D96:002D 1F POP DS
3D96:002E 07 POP ES
3D96:002F 16 PUSH SS
3D96:0030 680500 PUSH 0005
3D96:0033 6631DB XOR EBX,EBX
3D96:0036 CB RETF-G36-T-P912E:0004 A4 MOVSB
912E:0005 E86D00 CALL 0075 ;解码过程
912E:0008 72FA JB 0004 ;循环
912E:000A 6631C0 XOR EAX,EAX
912E:000D 40 INC AX
912E:000E E86400 CALL 0075
912E:0011 6611C0 ADC EAX,EAX
912E:0014 E85E00 CALL 0075
912E:0017 73F5 JAE 000E
912E:0019 6683E803 SUB EAX,03
912E:001D 720D JB 002C
912E:001F 66C1E008 SHL EAX,08
912E:0023 AC LODSB
912E:0024 6683F0FF XOR EAX,-01
912E:0028 7469 JE 0093
912E:002A 6695 XCHG EAX,EBP
912E:002C E84100 CALL 0070
912E:002F 11C9 ADC CX,CX
912E:0031 7508 JNE 003B
912E:0033 41 INC CX
912E:0034 E83900 CALL 0070
912E:0037 73FB JAE 0034
912E:0039 41 INC CX
912E:003A 41 INC CX
912E:003B 6681FD00F3FFFF CMP EBP,FFFFF300
912E:0042 81D10100 ADC CX,0001
912E:0046 89FA MOV DX,DI
912E:0048 8CC0 MOV AX,ES
912E:004A C1EA04 SHR DX,04
912E:004D 83E70F AND DI,0F
912E:0050 01D0 ADD AX,DX
912E:0052 1E PUSH DS
912E:0053 8EC0 MOV ES,AX
912E:0055 56 PUSH SI
912E:0056 66C1E004 SHL EAX,04
912E:005A 01F8 ADD AX,DI
912E:005C 6601E8 ADD EAX,EBP
912E:005F 89C6 MOV SI,AX
912E:0061 66C1E804 SHR EAX,04
912E:0065 83E60F AND SI,0F
912E:0068 8ED8 MOV DS,AX
912E:006A F3 REPZ
912E:006B A4 MOVSB
912E:006C 5E POP SI
912E:006D 1F POP DS
912E:006E EB95 JMP 0005 ;继续循环
912E:0070 E80200 CALL 0075
912E:0073 11C9 ADC CX,CX
912E:0075 6601DB ADD EBX,EBX
912E:0078 7518 JNE 0092
912E:007A B7B0 MOV BH,B0
912E:007C 39DE CMP SI,BX
912E:007E 7609 JBE 0089
912E:0080 29DE SUB SI,BX
912E:0082 8CDB MOV BX,DS
912E:0084 80C70B ADD BH,0B
912E:0087 8EDB MOV DS,BX
912E:0089 668B1C MOV EBX,[SI]
912E:008C 83EEFC SUB SI,-04
912E:008F 6611DB ADC EBX,EBX
912E:0092 C3 RET
912E:0093 59 POP CX
912E:0094 8CC0 MOV AX,ES ;!!!!(ES-CX) SHL 4 + DI=文件长 设为X
912E:0096 80EC04 SUB AH,04
912E:0099 8ED8 MOV DS,AX
912E:009B 2BBDFE3F SUB DI,[DI+3FFE]
912E:009F 8DB50040 LEA SI,[DI+4000]
912E:00A3 5D POP BP ;!!!BP值指向了程序的起始段
912E:00A4 31DB XOR BX,BX
912E:00A6 8EC1 MOV ES,CX
912E:00A8 AC LODSB ; !!!重定位开始
912E:00A9 25FF00 AND AX,00FF
912E:00AC 7405 JE 00B3
912E:00AE 3CEF CMP AL,EF
912E:00B0 7710 JA 00C2
912E:00B2 A8AD TEST AL,AD
912E:00B4 01C3 ADD BX,AX
912E:00B6 7305 JAE 00BD
912E:00B8 80C510 ADD CH,10
912E:00BB 8EC1 MOV ES,CX ;!!!
912E:00BD 26012F ADD [ES:BX],BP ;!!重定位
912E:00C0 EBE6 JMP 00A8
912E:00C2 88C4 MOV AH,AL
912E:00C4 AC LODSB
912E:00C5 25FF0F AND AX,0FFF
912E:00C8 75EA JNE 00B4
912E:00CA AD LODSW
912E:00CB 01C1 ADD CX,AX
912E:00CD 73D5 JAE 00A4
912E:00CF 07 POP ES
912E:00D0 AD LODSW ;取原SP ,记下AX等一下会用到。
912E:00D1 012C ADD [SI],BP ;定位SS,记下SI的值
912E:00D3 8E14 MOV SS,[SI]
912E:00D5 94 XCHG AX,SP
912E:00D6 06 PUSH ES
912E:00D7 1F POP DS
912E:00D8 EA0000963D JMP FAR 3D96:0000 ;解码完毕,进入程序-gd8-t-nvrv.dat-RBX
X 的高位 ---->X 看前面RCXX 的低位WCS:0 ;回写程序的执行代码Q;下面写重定位数据DEBUG VRV2000.EXE-G36-T
-GA8-R DI ;将DI指向一个不影响我们工作的任意地址500-FES:500 L 1000 FF ;为了方便找最后一个重定位
;将BB处的两字节NOP掉,将BD处的三字节改为CALL 200 然后在200处写我们的指令。-A200 MOV AX,BX STOSW
MOV AX,CX SUB AX,BP ;BP值指向了程序的起始段 STOSW RET-G D8
;搜索ES:500后什么地方出现连续的FF,找到的第一个FF的地址-500 假设结果为 Y
;将 Y/4 的结果记下,等一下要用。-NRELOCAL.DAT-RCXY ;若Y不是16的整倍数,将它补为16的整倍数。-RBX0
-WES:500 ;写RELOCAL.DAT-N HEADER.DAT-FDS:100 L 20 0-RCX -20
-WDS:100 ;写HEADER.DAT-QCOPY /B HEADER.DAT+RELOCAL.DAT+VRV.DAT VRV.EXE
此时,我们已经得到了一个程序,但他还不能执行,下面修补档头,用HIEW打开
4D 5A XX XX XX XX XX XX XX XX 00 00 FF FF XX XX XX XX
---- ---- ---- ---- ---- ----
|_____|_____|_____|_________________|_____|___________VRV.EXE 的长度除以200H的余数
|_____|_____|_________________|_____|___________商,若余数不为0,还应再加1
|_____|_________________|_____|___________刚才Y/4的结果
|_________________|_____|___________(HEADER.DAT+RELOCAL.DAT)长度/10H
|_____|___________刚才记的SS值
|___________刚才记的SP值
00 00 XX XX 00 00 20 00 00 00 00 00 00 00 -----
|________HEADER.DAT+RELOCAL.DAT 的长度注:上面都是十六进制,且是字方式,所以请注意存储的反向问题。
好了,大功告成,亲个嘴儿。注:若我们将任意盘格式化一个正常的1面50H道11H扇区,就可以做它的加密盘。
若有原版加密盘,可将其所读资料写入我们自做的加密盘中,这样更好。 不过,我解的加密盘都没有原盘,所以只有这样啦。
|
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>