【破文标题】大头贴制作大师破解分析 By.HackWm.
【破文作者】HackWm[D.S.T]
【作者邮箱】HackWm@126.com
【作者主页】Http://HackWm.Blog.51Cto.Com
【破解工具】PEiD,OD.
【破解平台】Windows XP SP2
【软件名称】大头贴制作大师
【软件大小】自己下载了就知道
【原版下载】http://www.tv808.com/datoutie/index.html
【保护方式】ASPack 2.1 -> Alexey Solodovnikov
【软件简介】《大头贴制作大师》是一款制专业大头贴的制作软件, 本软件支持利用各种摄像头、数码摄像机和采集卡等多种视频输入源来连续拍摄制作专业的大头贴图片。 如果您没有摄像头也没关系, 本软件支持导入各种数码照片(如用数码照相机、手机拍摄的图片, 扫描仪扫描的图片、网上下载的图片等等)来制作精美的大头贴图片。 本软件使用非常简易方便, 只要简单的点一下鼠标, 就可以轻松制作出大头贴照片来, 不需要额外任何学习
【破解声明】只为学习,不便之处还请谅解.
------------------------------------------------------------------------
【破解过程】查壳后发现为 ASPack 2.1 -> Alexey Solodovnikov ESP快速搞定
------------------------------------------------------------------------
通过查找按钮时间来到 如下
005C7080 . 55 push ebp
005C7081 . 8BEC mov ebp, esp
005C7083 . 33C9 xor ecx, ecx
005C7085 . 51 push ecx
005C7086 . 51 push ecx
005C7087 . 51 push ecx
005C7088 . 51 push ecx
005C7089 . 53 push ebx
005C708A . 56 push esi
005C708B . 57 push edi
005C708C . 8BD8 mov ebx, eax
005C708E . 33C0 xor eax, eax
005C7090 . 55 push ebp
005C7091 . 68 70715C00 push 005C7170
005C7096 . 64:FF30 push dword ptr fs:[eax]
005C7099 . 64:8920 mov dword ptr fs:[eax], esp
005C709C . 33D2 xor edx, edx
005C709E . 55 push ebp
005C709F . 68 30715C00 push 005C7130
005C70A4 . 64:FF32 push dword ptr fs:[edx]
005C70A7 . 64:8922 mov dword ptr fs:[edx], esp
005C70AA . 8D55 F8 lea edx, dword ptr [ebp-8]
005C70AD . 8B83 0C030000 mov eax, dword ptr [ebx+30C]
005C70B3 . E8 0031E9FF call 0045A1B8
005C70B8 . 8B45 F8 mov eax, dword ptr [ebp-8] ; 取用户名给EAX
005C70BB . 8D55 FC lea edx, dword ptr [ebp-4]
005C70BE . E8 B51FE4FF call 00409078
005C70C3 . 837D FC 00 cmp dword ptr [ebp-4], 0 ; 用户名长度是否为0 没输入就跳
005C70C7 . 75 0C jnz short 005C70D5
005C70C9 . A1 48626600 mov eax, dword ptr [666248]
005C70CE . E8 D9F7EAFF call 004768AC
005C70D3 . EB 51 jmp short 005C7126
005C70D5 > 8D55 F0 lea edx, dword ptr [ebp-10]
005C70D8 . 8B83 10030000 mov eax, dword ptr [ebx+310]
005C70DE . E8 D530E9FF call 0045A1B8
005C70E3 . 8B45 F0 mov eax, dword ptr [ebp-10] ; 取注册码给EAX
005C70E6 . 8D55 F4 lea edx, dword ptr [ebp-C]
005C70E9 . E8 8A1FE4FF call 00409078
005C70EE . 837D F4 00 cmp dword ptr [ebp-C], 0 ; 注册码长度是否为0 没输入就跳
005C70F2 . 75 0C jnz short 005C7100
005C70F4 . A1 48626600 mov eax, dword ptr [666248]
005C70F9 . E8 AEF7EAFF call 004768AC
005C70FE . EB 26 jmp short 005C7126
005C7100 > 8BC3 mov eax, ebx
005C7102 . E8 A9020000 call 005C73B0 ; 算法CALL
005C7107 . 84C0 test al, al
005C7109 . 74 09 je short 005C7114
005C710B . 8BC3 mov eax, ebx
------------------------------------------------------------------------
算法CALL跟进如下
005C73B0 /$ 55 push ebp
005C73B1 . 8BEC mov ebp, esp
005C73B3 . 83C4 E8 add esp, -18
005C73B6 . 53 push ebx
005C73B7 . 56 push esi
005C73B8 . 33D2 xor edx, edx
005C73BA . 8955 E8 mov dword ptr [ebp-18], edx
005C73BD . 8955 EC mov dword ptr [ebp-14], edx
005C73C0 . 8955 F4 mov dword ptr [ebp-C], edx
005C73C3 . 8945 FC mov dword ptr [ebp-4], eax
005C73C6 . 33C0 xor eax, eax
005C73C8 . 55 push ebp
005C73C9 . 68 AF745C00 push 005C74AF
005C73CE . 64:FF30 push dword ptr fs:[eax]
005C73D1 . 64:8920 mov dword ptr fs:[eax], esp
005C73D4 . 33DB xor ebx, ebx
005C73D6 . 8D55 F4 lea edx, dword ptr [ebp-C]
005C73D9 . 8B45 FC mov eax, dword ptr [ebp-4]
005C73DC . 8B80 0C030000 mov eax, dword ptr [eax+30C]
005C73E2 . E8 D12DE9FF call 0045A1B8
005C73E7 . 8B45 F4 mov eax, dword ptr [ebp-C]
005C73EA . E8 95D6E3FF call 00404A84
005C73EF . 8BF0 mov esi, eax
005C73F1 . 85F6 test esi, esi
005C73F3 . 7E 38 jle short 005C742D
005C73F5 . C745 F0 01000>mov dword ptr [ebp-10], 1
005C73FC > 8D45 EC /lea eax, dword ptr [ebp-14] ; 算法部分1开始
005C73FF . 50 push eax
005C7400 . B9 01000000 mov ecx, 1
005C7405 . 8B55 F0 mov edx, dword ptr [ebp-10]
005C7408 . 8B45 F4 mov eax, dword ptr [ebp-C]
005C740B . E8 D4D8E3FF call 00404CE4
005C7410 . 8B45 EC mov eax, dword ptr [ebp-14]
005C7413 . E8 6CD8E3FF call 00404C84 ; 算法不会分析开始到这里不知道什么意思
005C7418 . 8A00 mov al, byte ptr [eax] ; 逐位取用户名ASCII
005C741A . 25 FF000000 and eax, 0FF ; eax=eax and 0FF
005C741F . 03D8 add ebx, eax ; EBX=EBX+EAX
005C7421 . 81F3 05FA0B00 xor ebx, 0BFA05 ; EBX=EBX xor 0BFA05
005C7427 . FF45 F0 inc dword ptr [ebp-10] ; 位数+1
005C742A . 4E dec esi
005C742B .^ 75 CF \jnz short 005C73FC ; 循环
005C742D > A1 54626600 mov eax, dword ptr [666254]
005C7432 . 8BD0 mov edx, eax ; 算法部分2开始
005C7434 . C1E0 04 shl eax, 4
005C7437 . 03C2 add eax, edx
005C7439 . 03D8 add ebx, eax
005C743B . 81C3 D4A31300 add ebx, 13A3D4
005C7441 . 81F3 8DED5900 xor ebx, 59ED8D
005C7447 . 8D55 E8 lea edx, dword ptr [ebp-18]
005C744A . 8B45 FC mov eax, dword ptr [ebp-4]
005C744D . 8B80 10030000 mov eax, dword ptr [eax+310]
005C7453 . E8 602DE9FF call 0045A1B8
005C7458 . 8B45 E8 mov eax, dword ptr [ebp-18]
005C745B . E8 A01FE4FF call 00409400
005C7460 . 8BF3 mov esi, ebx
005C7462 . 81F6 2473C400 xor esi, 0C47324 ; 算法结束
005C7468 3BC6 cmp eax, esi ; 这里做内存注册机 ESI里面的十进制就是注册码,或者改成cmp eax,eax爆破
005C746A 75 19 jnz short 005C7485
005C746C . C645 FB 01 mov byte ptr [ebp-5], 1
005C7470 . B8 4C626600 mov eax, 0066624C
005C7475 . 8B55 F4 mov edx, dword ptr [ebp-C]
005C7478 . E8 9BD3E3FF call 00404818
005C747D . 8935 50626600 mov dword ptr [666250], esi
005C7483 . EB 04 jmp short 005C7489
005C7485 > C645 FB 00 mov byte ptr [ebp-5], 0
005C7489 > 33C0 xor eax, eax
005C748B . 5A pop edx
005C748C . 59 pop ecx
005C748D . 59 pop ecx
005C748E . 64:8910 mov dword ptr fs:[eax], edx
005C7491 . 68 B6745C00 push 005C74B6
005C7496 > 8D45 E8 lea eax, dword ptr [ebp-18]
005C7499 . E8 26D3E3FF call 004047C4
005C749E . 8D45 EC lea eax, dword ptr [ebp-14]
005C74A1 . E8 1ED3E3FF call 004047C4
005C74A6 . 8D45 F4 lea eax, dword ptr [ebp-C]
005C74A9 . E8 16D3E3FF call 004047C4
005C74AE \. C3 retn
------------------------------------------------------------------------
【破解总结】明码比较容易爆破...谁会算法的话希望做个教程发到我邮箱...
------------------------------------------------------------------------
【版权声明】转载保留出处 [D.S.T]
……