手上有一个软件,加的是彩虹天地TDSD GS-MH系列加密狗狗壳。无狗在狗壳试用期内正常运行。(探测结果如下:找到了北京彩虹天地TDSD GS-MH系列加密狗狗壳! 说明 此种狗壳是北京彩虹天地加密狗生成的外壳花指令是他的特点!狗壳还原段时密码只有一组!保护强度一般!)
因为我水平有限,脱壳恐怕无法做到,于是就想将狗壳的试用时间限制给去掉。可是我在咱们论坛查询了很多相关帖子,特别是有位前辈提供了下面这个链接http://www.pediy.com/crackme/crackme02.htm,可是此狗依旧岿然不动,下面是.gtide段开头的部分代码,我怀疑读狗部分就在此处,不知道哪位前辈肯指点后辈一二? 不需要脱壳,只想把时间限制给去掉。如能提供点思路给俺,俺感激不尽!
005C6041 50 push eax
005C6042 E8 D64C0000 call 005CAD1D
005C6047 83C4 04 add esp, 4
005C604A 8945 F0 mov [ebp-10], eax
005C604D FF75 20 push dword ptr [ebp+20]
005C6050 FF75 1C push dword ptr [ebp+1C]
005C6053 FF75 18 push dword ptr [ebp+18]
005C6056 FF75 14 push dword ptr [ebp+14]
005C6059 FF75 10 push dword ptr [ebp+10]
005C605C FF75 0C push dword ptr [ebp+C]
005C605F FF75 08 push dword ptr [ebp+8]
005C6062 FF15 74225E00 call [<&kernel32.CreateFileA>] ; kernel32.CreateFileA
005C6068 8945 EC mov [ebp-14], eax
005C606B 837D F0 01 cmp dword ptr [ebp-10], 1
005C606F 0F8C 8B010000 jl 005C6200
005C6075 837D EC FF cmp dword ptr [ebp-14], -1
005C6079 0F84 81010000 je 005C6200
005C607F C745 E8 0000000>mov dword ptr [ebp-18], 0
005C6086 EB 03 jmp short 005C608B
005C6088 FF45 E8 inc dword ptr [ebp-18]
005C608B 837D E8 1E cmp dword ptr [ebp-18], 1E
005C608F 0F8D 6B010000 jge 005C6200
下了系统时间断点,其实我已经找到了判断狗的时间部分,修改跳转后虽然程序运行路径正确,但程序一运行就退出。最关键的代码如下,可能有部分花指令。
005C9A00 90 nop
005C9A01 75 03 jnz short 005C9A06
005C9A03 74 01 je short 005C9A06
005C9A05 B0 83 mov al, 83
005C9A06 833D DE055E00 0>cmp dword ptr [5E05DE], 0
005C9A07 3D DE055E00 cmp eax, 005E05DE
005C9A0C 000F add [edi], cl
005C9A0E 841B test [ebx], bl
005C9A10 0200 add al, [eax]
005C9A12 0079 03 add [ecx+3], bh
005C9A15 78 01 js short 005C9A18
005C9A17 C0E8 D3 shr al, 0D3
005C9A18 E8 D30B0000 call 005CA5F0 ---------------调用读狗判断程序
005C9A1A 0B00 or eax, [eax]
005C9A1C 0089 8568FBFF add [ecx+FFFB6885], cl
005C9A1D 8985 68FBFFFF mov [ebp-498], eax
005C9A23 79 03 jns short 005C9A28
005C9A24 0378 01 add edi, [eax+1]
005C9A25 78 01 js short 005C9A28
005C9A27 D183 BD68FBFF rol dword ptr [ebx+FFFB68BD], 1
005C9A2D FF00 inc dword ptr [eax]
005C9A2F 74 1F je short 005C9A50--------跳到005C9A50正常运行
005C9A31 E8 061B0000 call 005CB53C-------------调用弹出对话框,显示“找不到硬件狗”
005C9A36 79 03 jns short 005C9A3B
005C9A38 78 01 js short 005C9A3B
005C9A3A 03C7 add eax, edi
005C9A3C 05 C0065E00 add eax, 005E06C0
005C9A41 0100 add [eax], eax
005C9A43 0000 add [eax], al
005C9A45 68 FFFF0000 push 0FFFF
005C9A4A FF15 44225E00 call [<&kernel32.ExitProcess>] ; kernel32.ExitProcess
005C9A50 FF15 34225E00 call [<&kernel32.GetCommandLineA>] ; kernel32.GetCommandLineA
下面是进入call 005CA5F0 之后的代码,对于下面这段代码,正常运行和超期之后运行两者走的路径不同,修改跳转之后,虽然路径相同了,但程序既不提示没狗,也不正常运行,这一点最让我头疼:
005CA5F0 55 push ebp
005CA5F1 8BEC mov ebp, esp
005CA5F3 83EC 3C sub esp, 3C
005CA5F6 53 push ebx
005CA5F7 56 push esi
005CA5F8 57 push edi
005CA5F9 C745 CC 0000000>mov dword ptr [ebp-34], 0
005CA600 833D 84005E00 0>cmp dword ptr [5E0084], 0
005CA607 0F84 27010000 je 005CA734
005CA60D C745 D4 724102C>mov dword ptr [ebp-2C], CF024172
005CA614 8175 D4 3524768>xor dword ptr [ebp-2C], 83762435
005CA61B C745 D8 5A4717E>mov dword ptr [ebp-28], EF17475A
005CA622 8175 D8 3524768>xor dword ptr [ebp-28], 83762435
005CA629 C745 DC 614D1BE>mov dword ptr [ebp-24], E61B4D61
005CA630 8175 DC 3524768>xor dword ptr [ebp-24], 83762435
005CA637 C745 E0 0000000>mov dword ptr [ebp-20], 0
005CA63E 68 C8065E00 push 005E06C8 ; ASCII "KERNEL32.DLL"
005CA643 FF15 BC225E00 call [<&kernel32.LoadLibraryA>] ; kernel32.LoadLibraryA
005CA649 8945 F8 mov [ebp-8], eax
005CA64C 8D45 D4 lea eax, [ebp-2C]
005CA64F 50 push eax----------------ASCII"kernel32.GetLocalTime"
005CA650 8B45 F8 mov eax, [ebp-8]
005CA653 50 push eax
005CA654 FF15 1C225E00 call [<&kernel32.GetProcAddress>] ; kernel32.GetProcAddress
005CA65A 8945 C4 mov [ebp-3C], eax
005CA65D 837D C4 00 cmp dword ptr [ebp-3C], 0
005CA661 75 0A jnz short 005CA66D
005CA663 B8 01000000 mov eax, 1
005CA668 E9 46010000 jmp 005CA7B3
005CA66D 8D45 E8 lea eax, [ebp-18]
005CA670 50 push eax
005CA671 FF55 C4 call [ebp-3C]
005CA674 83C4 04 add esp, 4
005CA677 8B45 F8 mov eax, [ebp-8]
005CA67A 50 push eax
005CA67B FF15 38225E00 call [<&kernel32.FreeLibrary>] ; kernel32.FreeLibrary
005CA681 A1 24005E00 mov eax, [5E0024]
005CA686 3305 36005E00 xor eax, [5E0036]
005CA68C 8945 D0 mov [ebp-30], eax
005CA68F 8B45 E8 mov eax, [ebp-18]
005CA692 25 FFFF0000 and eax, 0FFFF
005CA697 8B4D D0 mov ecx, [ebp-30]
005CA69A C1E9 10 shr ecx, 10
005CA69D 3BC1 cmp eax, ecx
005CA69F 75 54 jnz short 005CA6F5
005CA6A1 33C0 xor eax, eax
005CA6A3 66:8B45 EA mov ax, [ebp-16]
005CA6A7 8B4D D0 mov ecx, [ebp-30]
005CA6AA C1E9 08 shr ecx, 8
005CA6AD 83E1 0F and ecx, 0F
005CA6B0 3BC1 cmp eax, ecx
005CA6B2 75 1C jnz short 005CA6D0
005CA6B4 33C0 xor eax, eax
005CA6B6 66:8B45 EE mov ax, [ebp-12]
005CA6BA 8B4D D0 mov ecx, [ebp-30]
005CA6BD 81E1 FF000000 and ecx, 0FF
005CA6C3 3BC1 cmp eax, ecx
005CA6C5 77 09 ja short 005CA6D0
005CA6C7 C745 CC 0100000>mov dword ptr [ebp-34], 1
005CA6CE EB 23 jmp short 005CA6F3
005CA6D0 33C0 xor eax, eax
005CA6D2 66:8B45 EA mov ax, [ebp-16]
005CA6D6 8B4D D0 mov ecx, [ebp-30]
005CA6D9 C1E9 08 shr ecx, 8
005CA6DC 83E1 0F and ecx, 0F
005CA6DF 3BC1 cmp eax, ecx
005CA6E1 73 09 jnb short 005CA6EC
005CA6E3 C745 CC 0100000>mov dword ptr [ebp-34], 1
005CA6EA EB 07 jmp short 005CA6F3
005CA6EC C745 CC 0000000>mov dword ptr [ebp-34], 0
005CA6F3 EB 19 jmp short 005CA70E
005CA6F5 8B45 E8 mov eax, [ebp-18]
005CA6F8 25 FFFF0000 and eax, 0FFFF
005CA6FD 8B4D D0 mov ecx, [ebp-30]
005CA700 C1E9 10 shr ecx, 10
005CA703 3BC1 cmp eax, ecx
005CA705 73 07 jnb short 005CA70E
005CA707 C745 CC 0100000>mov dword ptr [ebp-34], 1
005CA70E 837D CC 00 cmp dword ptr [ebp-34], 0
005CA712 74 20 je short 005CA734
005CA714 8B45 F4 mov eax, [ebp-C]
005CA717 50 push eax
005CA718 8B45 F0 mov eax, [ebp-10]
005CA71B 50 push eax
005CA71C 8B45 EC mov eax, [ebp-14]
005CA71F 50 push eax
005CA720 8B45 E8 mov eax, [ebp-18]
005CA723 50 push eax
005CA724 E8 BDD9FFFF call 005C80E6
005CA729 83C4 10 add esp, 10
005CA72C 85C0 test eax, eax
005CA72E 74 04 je short 005CA734
005CA730 33C0 xor eax, eax
005CA732 EB 7F jmp short 005CA7B3
005CA734 833D 84005E00 0>cmp dword ptr [5E0084], 0
005CA73B 74 16 je short 005CA753
005CA73D A1 24005E00 mov eax, [5E0024]
005CA742 3305 36005E00 xor eax, [5E0036]
005CA748 3305 CA025E00 xor eax, [5E02CA]
005CA74E 8945 FC mov [ebp-4], eax
005CA751 EB 0D jmp short 005CA760
005CA753 A1 CA025E00 mov eax, [5E02CA]
005CA758 35 B67583ED xor eax, ED8375B6
005CA75D 8945 FC mov [ebp-4], eax
005CA760 8B45 FC mov eax, [ebp-4]
005CA763 F7D0 not eax
005CA765 A3 00005E00 mov [5E0000], eax
005CA76A C705 08005E00 0>mov dword ptr [5E0008], 005E0004
005CA774 6A 00 push 0
005CA776 A1 00005E00 mov eax, [5E0000]
005CA77B 50 push eax
005CA77C 6A 00 push 0
005CA77E 6A 00 push 0
005CA780 6A 00 push 0
005CA782 6A 00 push 0
005CA784 A1 08005E00 mov eax, [5E0008]
005CA789 50 push eax
005CA78A 6A 01 push 1
005CA78C 66:A1 E2055E00 mov ax, [5E05E2]
005CA792 50 push eax
005CA793 E8 551F0000 call 005CC6ED
005CA798 83C4 24 add esp, 24
005CA79B 8945 C8 mov [ebp-38], eax
005CA79E 837D C8 00 cmp dword ptr [ebp-38], 0
005CA7A2 75 0A jnz short 005CA7AE
005CA7A4 C705 900B5E00 0>mov dword ptr [5E0B90], 1
005CA7AE 8B45 C8 mov eax, [ebp-38]
005CA7B1 EB 00 jmp short 005CA7B3
005CA7B3 5F pop edi
005CA7B4 5E pop esi
005CA7B5 5B pop ebx
005CA7B6 C9 leave
005CA7B7 C3 retn
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)