首页
社区
课程
招聘
还是VB的-无忧全国计算机等级考试模拟软件二级JAVA-1[原创]
发表于: 2005-7-8 14:35 3484

还是VB的-无忧全国计算机等级考试模拟软件二级JAVA-1[原创]

2005-7-8 14:35
3484
2005年上半年版  全国计算机等级考试模拟软件 北京无忧电脑技术开发有限责任公司
网址:WWW.WUYOUSCHOOL.COM.CN
本来我想考一下,但是,唉,贪多嚼不烂啊,半途而废了。以后再说吧。出了这个副产品。

二级JAVA,不过从文件内容看,它的考试系列应该都用这个KS.EXE,真那么自信吗?
不过确实,我头都大了,才弄个不完全方案。
文件:KS.EXE 2,714,624bytes 2005-02-24 11:52:00(加参数y可进入练习模式) VB native程序
by zzhzihui@tom.com        学习研究 勿作其他用途
(原来VB也可以编写比较牛的东西,连等考的考试系统都用VB写,我一直以为自己学VB没多大用)
工具:ollydbg,hiew

★最终方法:
最终得到的假激活码:G5060-BBBBB-CCQ2L-23XL6-O2323-3434I
0067956A   .  50            PUSH EAX
0067956B   .  FFD7          CALL EDI
0067956D   >  66:83BD 38FFF>CMP WORD PTR SS:[EBP-C8],0FFFF
00679575   .  0F85 7D020000 JNZ ks.006797F8
0067957B   .  66:8B55 0C    MOV DX,WORD PTR SS:[EBP+C]
0067957F   .  66:3B55 D4    CMP DX,WORD PTR SS:[EBP-2C]
00679583   .  0F85 C2000000 JNZ ks.0067964B        ;  no jmp,跳走会显示无产品项目
;这样可以强制激活成功
00679589   .  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
0067958C   .  50            PUSH EAX
0067958D   .  FF15 74B66800 CALL DWORD PTR DS:[<&MSVBVM50.#610>]     ;  MSVBVM50.rtcGetDateVar
00679593   .  8B7D CC       MOV EDI,DWORD PTR SS:[EBP-34]
00679596   .  3BFB          CMP EDI,EBX
00679598   .  75 12         JNZ SHORT ks.006795AC
0067959A   .  8D4D CC       LEA ECX,DWORD PTR SS:[EBP-34]
0067959D   .  51            PUSH ECX
0067959E   .  68 D0924000   PUSH ks.004092D0
这样会生成c:\WINXP\system32\Microsoft\MSJET1.INI文件,把它复制一份,改名为MSJET6.INI
注意:MSJETx.INI是最后的1是算出来的,会自动保存,但那个6却不能自动生成,怎样知道是6呢?可以在这里:
0066AB3F   .  50            PUSH EAX
0066AB40   .  68 A0874200   PUSH ks.004287A0                         ;  UNICODE ".INI"
0066AB45   .  FF15 20B46800 CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrCa>;  MSVBVM50.__vbaStrCat
;这个操作可以看到6
0066AB4B   .  8BD0          MOV EDX,EAX
0066AB4D   .  8D8D 78FFFFFF LEA ECX,DWORD PTR SS:[EBP-88]

实际上,程序下次启动时只访问那个带6的数据,带1的不访问,因为程序内部校验发现错误,生成了带1的数据,而下次抽题或启动检验时,却要访问带6的,这时没有,所以激活就失败了.

再加下面两个爆破就可以了,但是还有提示激活成功,可用x次..
其实在注册表里还有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MsMCWY\1
把它复制一个命名为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MsMCWY\6
即可去掉提示.
============
0066AED2   . /0F85 B6050000 JNZ ks.0066B48E
0066AED8   . |66:8B55 0C    MOV DX,WORD PTR SS:[EBP+C]
0066AEDC   . |66:3955 D8    CMP WORD PTR SS:[EBP-28],DX
0066AEE0   . |74 0C         JE SHORT ks.0066AEEE                     ;  JMP ZZH(EB0C)
;改为JMP 66aeee即可
0066AEE2   . |C745 B8 EC030>MOV DWORD PTR SS:[EBP-48],3EC
0066AEE9   . |E9 DF050000   JMP ks.0066B4CD
0066AEEE   > |BA 0C894200   MOV EDX,ks.0042890C                      ;  UNICODE "userinfo1"
0066AEF3   . |8D4D 84       LEA ECX,DWORD PTR SS:[EBP-7C]
============
0061D184   > \66:3975 88    CMP WORD PTR SS:[EBP-78],SI
0061D188   .  75 16         JNZ SHORT ks.0061D1A0                    ;  NO Jmp (SYS) EAX<=1 ZZH
;上行不要跳,改为MOV EAX,1,覆盖下行指令即可
0061D18A   .  83C8 FF       OR EAX,FFFFFFFF
0061D18D   .  68 0ED56100   PUSH ks.0061D50E                         ;  EAX<=1
0061D192   .  8945 E4       MOV DWORD PTR SS:[EBP-1C],EAX
0061D195   .  66:A3 DCB0670>MOV WORD PTR DS:[67B0DC],AX
0061D19B   .  E9 4F030000   JMP ks.0061D4EF
0061D1A0   >  66:3935 DCB06>CMP WORD PTR DS:[67B0DC],SI
0061D1A7   .  0F85 07030000 JNZ ks.0061D4B4
0061D1AD   .  8B4D 14       MOV ECX,DWORD PTR SS:[EBP+14]
...
OK,CRACKED! 19:53 2005-4-22
重新注册方法请看 文件:0-FINAL.txt

★通用注册
%SYSTEM%\PCINFO.DLL

导出函数:
GetDriveSerialNumberIn9X
GetDriveSerialNumberInNT
都是取硬盘序列号的,而软件是根据硬盘序列号来生成ID和激活码的,所以可以改造这个DLL,让它返回固定的序列 号.这样就可以做通用的CRK.

那么,我们可以补丁主程序ks.exe:
0066DF7F   .  0F84 98010000 JE ks.0066E11D;取得SMART版本失败,跳走,改为JMP让他永远调用DLL

然后修改PCINFO.DLL
把文件偏移 1000EFE0处修改为字符串"4JV10H8M"

PCINFO.GetDriveSerialNumberInNT函数:
1000152E  |> \C74424 04 E0EF0010  MOV DWORD PTR SS:[ESP+4],pcinfo.1000EFE0;ASCII "4JV10H8M"
;永远返回固定序列号
10001536  \.  C2 0400             RETN 4

PCINFO.GetDriveSerialNumberIn9X函数:
100012BE  |.  64:890D 00000000          MOV DWORD PTR FS:[0],ECX
100012C5  |.  81C4 88000000             ADD ESP,88
100012CB  \.  C2 0400                   RETN 4
100012CE      8BFF                      MOV EDI,EDI ;这个被覆盖不知道有没有影响
修改为:
100012CB     /E9 5E020000               JMP PCINFOHK.1000152E

这样就可以保证在9X和NT下都会返回唯一的硬盘序列号.^_^

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//