- UID
- 14190
注册时间2006-5-26
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
标题:驾驶人无纸化考试模拟系统的破解过程
这个软件反Dede,File Monitor,Registry Monitor,RegSpy,RegSnap,Spy,RegShot,而且程序多处检查这些间谍有没有运行。
还有一处检查父进程,但是只有一处,所以简单的改下跳转就可以了:
EFC2AE3C8905F
004F02FD |. /74 0B je short 004F030A //改这里为jmp
其他的我就不改了,因为用的是oLLYdBG!
下面是分析过程:
004F090C |> \8D55 F4 lea edx, dword ptr [ebp-C]
004F090F |. 8B83 FC020000 mov eax, dword ptr [ebx+2FC]
004F0915 |. E8 DA3CF6FF call 004545F4 ; 取我们输入的注册码
004F091A |. 8B45 F4 mov eax, dword ptr [ebp-C] ; 注册码到EAX
004F091D |. 8D55 F8 lea edx, dword ptr [ebp-8]
004F0920 |. E8 C788F1FF call 004091EC
004F0925 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004F0928 |. 8D55 FC lea edx, dword ptr [ebp-4]
004F092B |. E8 2C86F1FF call 00408F5C
004F0930 |. 8B45 FC mov eax, dword ptr [ebp-4]
004F0933 |. E8 2C41F1FF call 00404A64
004F0938 |. 83F8 0C cmp eax, 0C ; 注册码要等于12位
004F093B |. 74 0F je short 004F094C
004F093D |. 68 D0070000 push 7D0 ; /Timeout = 2000. ms
004F0942 |. E8 81E3F1FF call <jmp.&kernel32.Sleep> ; \Sleep
004F0947 |. E9 09020000 jmp 004F0B55
004F094C |> 8D45 F0 lea eax, dword ptr [ebp-10]
004F094F |. 50 push eax
004F0950 |. B9 07000000 mov ecx, 7
004F0955 |. BA 01000000 mov edx, 1
004F095A |. 8B45 FC mov eax, dword ptr [ebp-4]
004F095D |. E8 6243F1FF call 00404CC4 ; 取注册码前7位
004F0962 |. 8B45 F0 mov eax, dword ptr [ebp-10]
004F0965 |. 50 push eax
004F0966 |. 8D45 EC lea eax, dword ptr [ebp-14]
004F0969 |. 50 push eax
004F096A |. 8D45 E8 lea eax, dword ptr [ebp-18]
004F096D |. 50 push eax
004F096E |. 8D55 E4 lea edx, dword ptr [ebp-1C]
004F0971 |. 8B83 24030000 mov eax, dword ptr [ebx+324]
004F0977 |. E8 783CF6FF call 004545F4
004F097C |. 8B55 E4 mov edx, dword ptr [ebp-1C] ; 246BF287757371D6,也就是我的机器码
004F097F |. 8B8B 30030000 mov ecx, dword ptr [ebx+330] ; 142436,一个固定数字
004F0985 |. 8BC3 mov eax, ebx
004F0987 |. E8 F80B0000 call 004F1584 ; 跟近有传说中很厉害的加密算法在里面,我等菜鸟就不跟进去了
004F098C |. 8B45 E8 mov eax, dword ptr [ebp-18] ; EFC2AE3C,计算好的结果到EAX
004F098F |. B9 07000000 mov ecx, 7 ;取前7位而已
004F0994 |. BA 01000000 mov edx, 1
004F0999 |. E8 2643F1FF call 00404CC4
004F099E |. 8B55 EC mov edx, dword ptr [ebp-14] ; EFC2AE3,正确的注册码前一半,看这个结果就可以了
004F09A1 |. 58 pop eax
004F09A2 E8 0942F1FF call 00404BB0
004F09A7 0F85 9E010000 jnz 004F0B4B ; 不能跳
004F09AD |. 8D45 E0 lea eax, dword ptr [ebp-20]
004F09B0 |. 50 push eax
004F09B1 |. B9 05000000 mov ecx, 5
004F09B6 |. BA 08000000 mov edx, 8
004F09BB |. 8B45 FC mov eax, dword ptr [ebp-4] ; 我们输入的注册码到EAX
004F09BE |. E8 0143F1FF call 00404CC4
004F09C3 |. 8B55 E0 mov edx, dword ptr [ebp-20] ; 后面的5位
004F09C6 |. 8BC3 mov eax, ebx
004F09C8 |. E8 5B1A0000 call 004F2428 ;跟进
004F09CD |. 84C0 test al, al
004F09CF 75 0F jnz short 004F09E0 ; 不能跳
跟进:
004F2469 |. E8 BA72F1FF call 00409728
004F246E |. 8BF0 mov esi, eax ; 第1位到ESI
004F2470 |. 8D45 EC lea eax, dword ptr [ebp-14]
004F2473 |. 50 push eax
004F2474 |. B9 02000000 mov ecx, 2
004F2479 |. BA 02000000 mov edx, 2
004F247E |. 8B45 FC mov eax, dword ptr [ebp-4]
004F2481 |. E8 3E28F1FF call 00404CC4
004F2486 |. 8B45 EC mov eax, dword ptr [ebp-14] ; 23-->EAX
004F2489 |. E8 9A72F1FF call 00409728 ; 转化为16进制17
004F248E |. 8BF8 mov edi, eax ; 结果到EDI
004F2490 |. 6A 04 push 4
004F2492 |. 8D45 F4 lea eax, dword ptr [ebp-C]
004F2495 |. B9 01000000 mov ecx, 1
004F249A |. 8B15 08244F00 mov edx, dword ptr [4F2408] ; ExamClie.004F240C
004F24A0 |. E8 C738F1FF call 00405D6C
004F24A5 |. 83C4 04 add esp, 4
004F24A8 |. 8BD6 mov edx, esi ; ESI---》EDX
004F24AA |. 8B45 F4 mov eax, dword ptr [ebp-C]
004F24AD |. 8810 mov byte ptr [eax], dl ; --》[EAX]
004F24AF |. 8BC7 mov eax, edi ; EDI--》EAX
004F24B1 |. 8B4D F4 mov ecx, dword ptr [ebp-C]
004F24B4 |. 8841 01 mov byte ptr [ecx+1], al ; --》[ECX+1]
004F24B7 |. 02D0 add dl, al ; 相加
004F24B9 |. 8B4D F4 mov ecx, dword ptr [ebp-C]
004F24BC |. 8851 02 mov byte ptr [ecx+2], dl ; 保存结果
004F24BF |. 8BD6 mov edx, esi ; ESI--》EDX
004F24C1 |. 8BCF mov ecx, edi ; EDI——》ECX
004F24C3 |. 02D1 add dl, cl ; 加
004F24C5 |. 66:0FAFD0 imul dx, ax ; 乘,结果保存到EDX
004F24C9 |. 8B45 F4 mov eax, dword ptr [ebp-C]
004F24CC |. 8850 03 mov byte ptr [eax+3], dl
004F24CF |. 8D45 F8 lea eax, dword ptr [ebp-8]
004F24D2 |. 50 push eax
004F24D3 |. 8B45 F4 mov eax, dword ptr [ebp-C]
004F24D6 |. E8 DD36F1FF call 00405BB8
004F24DB |. 8BD0 mov edx, eax ; |
004F24DD |. 66:B9 0400 mov cx, 4 ; |
004F24E1 |. 8B45 F4 mov eax, dword ptr [ebp-C] ; |
004F24E4 |. E8 FBBFFFFF call 004EE4E4 ; \CRC算法,我等菜鸟就不进去了
004F24E9 |. 8D4D E8 lea ecx, dword ptr [ebp-18]
004F24EC |. BA 02000000 mov edx, 2
004F24F1 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004F24F4 |. E8 D771F1FF call 004096D0
004F24F9 |. 8B45 E8 mov eax, dword ptr [ebp-18] ; 结果到EAX,看这个结果就可以了
004F24FC |. 50 push eax
004F24FD |. 8D45 E4 lea eax, dword ptr [ebp-1C]
004F2500 |. 50 push eax
004F2501 |. B9 02000000 mov ecx, 2
004F2506 |. BA 04000000 mov edx, 4
004F250B |. 8B45 FC mov eax, dword ptr [ebp-4]
004F250E |. E8 B127F1FF call 00404CC4
004F2513 |. 8B55 E4 mov edx, dword ptr [ebp-1C] ; 最后两位到EDX
004F2516 |. 58 pop eax
004F2517 |. E8 9426F1FF call 00404BB0 ; EAX,EDX比教
004F251C |. 0F94C3 sete bl ; BL置0,注意这里
总结:
软件用了很厉害的加密算法,侦察出的就有MD5,DES,CRC,BLOWFISH,我水平菜,不会这种算法,但是软件出现了明码比较
我的机器码:246BF287757371D6
我的注册码:EFC2AE3C8905F
[ 本帖最后由 crack1946 于 2007-2-9 09:19 编辑 ] |
|