[Asm] 纯文本查看 复制代码
005DA744 /$ 55 push ebp ; 算法验证部分
005DA745 |. 8BEC mov ebp,esp
005DA747 |. 83C4 F0 add esp,-0x10
005DA74A |. 33C0 xor eax,eax
005DA74C |. 8945 F8 mov dword ptr ss:[ebp-0x8],eax
005DA74F |. C645 FF 00 mov byte ptr ss:[ebp-0x1],0x0
005DA753 |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA758 |. 8945 F4 mov dword ptr ss:[ebp-0xC],eax
005DA75B |. 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] ; kernel32.7C839B48
005DA75E |. 8945 F0 mov dword ptr ss:[ebp-0x10],eax
005DA761 |. 837D F0 00 cmp dword ptr ss:[ebp-0x10],0x0
005DA765 |. 74 0B je short mailer.005DA772
005DA767 |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10]
005DA76A |. 83E8 04 sub eax,0x4
005DA76D |. 8B00 mov eax,dword ptr ds:[eax] ; 长度
005DA76F |. 8945 F0 mov dword ptr ss:[ebp-0x10],eax
005DA772 |> 837D F0 0E cmp dword ptr ss:[ebp-0x10],0xE ; 必须是14位
005DA776 |. 0F85 85000000 jnz mailer.005DA801
005DA77C |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560] ; 假码
005DA781 |. 8038 32 cmp byte ptr ds:[eax],0x32 ; 第一位=0x32
005DA784 |. 0F94C0 sete al
005DA787 |. 83E0 7F and eax,0x7F
005DA78A |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA78D |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA792 |. 8078 02 39 cmp byte ptr ds:[eax+0x2],0x39 ; 第三位 = 0x39
005DA796 |. 0F94C0 sete al
005DA799 |. 83E0 7F and eax,0x7F
005DA79C |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA79F |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA7A4 |. 8078 03 33 cmp byte ptr ds:[eax+0x3],0x33 ; 第四位 = 0x33
005DA7A8 |. 0F94C0 sete al
005DA7AB |. 83E0 7F and eax,0x7F
005DA7AE |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA7B1 |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA7B6 |. 8078 04 35 cmp byte ptr ds:[eax+0x4],0x35 ; 第五位 = 0x35
005DA7BA |. 0F94C0 sete al
005DA7BD |. 83E0 7F and eax,0x7F
005DA7C0 |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA7C3 |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA7C8 |. 8078 07 39 cmp byte ptr ds:[eax+0x7],0x39 ; 第八位 = 0x39
005DA7CC |. 0F94C0 sete al
005DA7CF |. 83E0 7F and eax,0x7F
005DA7D2 |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA7D5 |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA7DA |. 8078 08 34 cmp byte ptr ds:[eax+0x8],0x34 ; 第九位 = 0x34
005DA7DE |. 0F94C0 sete al
005DA7E1 |. 83E0 7F and eax,0x7F
005DA7E4 |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA7E7 |. A1 60055F00 mov eax,dword ptr ds:[0x5F0560]
005DA7EC |. 8078 0A 30 cmp byte ptr ds:[eax+0xA],0x30 ; 第十一位 = 0x30
005DA7F0 |. 0F94C0 sete al
005DA7F3 |. 83E0 7F and eax,0x7F
005DA7F6 |. 0145 F8 add dword ptr ss:[ebp-0x8],eax
005DA7F9 |. 837D F8 07 cmp dword ptr ss:[ebp-0x8],0x7 ; 每相等一位ebp-0x8对应的值+1,七个值都相等正好等于7
005DA7FD |. 0f9445 ff sete byte ptr ss:[ebp-0x1]
005DA801 |> 8A45 FF mov al,byte ptr ss:[ebp-0x1]
005DA804 |. 8BE5 mov esp,ebp
005DA806 |. 5D pop ebp ; kernel32.7C816037
005DA807 \. C3 retn