好友
阅读权限10
听众
最后登录1970-1-1
|
写不好分析,等楼下的分析文章了,顺便抓了些代码:
00401550 /. 55 push ebp
00401551 |. 8BEC mov ebp, esp
00401553 |. 83E4 F8 and esp, FFFFFFF8
00401556 |. 81EC 8C000000 sub esp, 8C
0040155C |. A1 20504000 mov eax, dword ptr [405020]
00401561 |. 53 push ebx
00401562 |. 56 push esi
00401563 |. 57 push edi
00401564 |. 898424 940000>mov dword ptr [esp+94], eax
0040156B |. 8BD9 mov ebx, ecx
0040156D |. 33C0 xor eax, eax
0040156F |. C64424 10 FF mov byte ptr [esp+10], 0FF
00401574 |. B9 1F000000 mov ecx, 1F
00401579 |. 8D7C24 11 lea edi, dword ptr [esp+11]
0040157D |. F3:AB rep stos dword ptr es:[edi]
0040157F |. 66:AB stos word ptr es:[edi]
00401581 |. 6A 01 push 1
00401583 |. 8BCB mov ecx, ebx
00401585 |. AA stos byte ptr es:[edi]
00401586 |. E8 CB030000 call <jmp.&MFC71.#CWnd::UpdateData_6236>
0040158B |. 8D4B 74 lea ecx, dword ptr [ebx+74]
0040158E |. FF15 9C314000 call dword ptr [<&MFC71.#ATL::CSimpleString>; 下 GetWinDowTextA 断点
00401594 |. 8D5424 10 lea edx, dword ptr [esp+10] ; 来到这里
00401598 |> 8A08 /mov cl, byte ptr [eax]
0040159A |. 40 |inc eax
0040159B |. 880A |mov byte ptr [edx], cl
0040159D |. 42 |inc edx
0040159E |. 84C9 |test cl, cl
004015A0 |.^ 75 F6 \jnz short 00401598
004015A2 |. 8A4424 16 mov al, byte ptr [esp+16] ; 取注册名第7位的ASCII
004015A6 |. 84C0 test al, al
004015A8 75 50 jnz short 004015FA ; 注册名长度不能超过7位
004015AA |. 8A5424 15 mov dl, byte ptr [esp+15] ; 取注册名第6位的ASCII
004015AE |. 84D2 test dl, dl
004015B0 |. 74 48 je short 004015FA ; 注册名长度需要为6字符
004015B2 |. 8B43 78 mov eax, dword ptr [ebx+78] ; //注册码结果 -> eax
004015B5 |. 3D A0860100 cmp eax, 186A0 ; 与100000比较
004015BA |. 7C 3E jl short 004015FA ; 小于,则失败
004015BC |. 0FBE7424 12 movsx esi, byte ptr [esp+12] ; 注册名第3位 -> esi
004015C1 |. 0FBE4C24 11 movsx ecx, byte ptr [esp+11] ; 注册名第2位 -> ecx
004015C6 |. 0FBE7C24 14 movsx edi, byte ptr [esp+14] ; 注册名第5位 -> edi
004015CB |. 03CE add ecx, esi ; ecx = ecx + esi
004015CD |. 0FBE7424 10 movsx esi, byte ptr [esp+10] ; 注册名第1位 -> esi
004015D2 |. 03CE add ecx, esi ; ecx = ecx + esi
004015D4 |. 0FBE7424 13 movsx esi, byte ptr [esp+13] ; 注册名第4位 -> esi
004015D9 |. 0FBED2 movsx edx, dl ; 注册名第6位 -> edx
004015DC |. 03F7 add esi, edi ; esi = esi + edi
004015DE |. 03F2 add esi, edx ; esi = esi + edx
004015E0 |. 99 cdq
004015E1 |. BF E8030000 mov edi, 3E8 ; edi = 1000
004015E6 |. F7FF idiv edi ; eax = eax/edi
004015E8 |. 3BC8 cmp ecx, eax ; 注册码前面3位的比较
004015EA 75 0E jnz short 004015FA
004015EC |. 3BF2 cmp esi, edx ; 注册码后面3位的比较
004015EE 75 0A jnz short 004015FA
004015F0 |. 8B03 mov eax, dword ptr [ebx]
004015F2 |. 8BCB mov ecx, ebx
004015F4 |. FF90 54010000 call dword ptr [eax+154]
004015FA |> 8B8C24 940000>mov ecx, dword ptr [esp+94]
00401601 |. E8 43040000 call 00401A49
00401606 |. 5F pop edi
00401607 |. 5E pop esi
00401608 |. 5B pop ebx
00401609 |. 8BE5 mov esp, ebp
0040160B |. 5D pop ebp
0040160C \. C3 retn |
|