- UID
- 10898
注册时间2006-4-18
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
发表于 2006-6-9 14:34:23
|
显示全部楼层
谢谢ytsnow兄啦,算法看懂啦,呵呵
004015DB |. 51 |push ecx ; /Arg1
004015DC |. 8D4D EC |lea ecx,dword ptr ss:[ebp-14] ; |
004015DF |. E8 1C030000 |call crackme3.00401900 ; \顺次取name的ascii
004015E4 |. 0FBED0 |movsx edx,al ; n1,n2,...
004015E7 |. 8B45 F0 |mov eax,dword ptr ss:[ebp-10] ; 0x81276345-->eax(第1次循环) ;result-->eax(第2次循环);...
004015EA |. 03C2 |add eax,edx ; temp1=eax+n1;eax+n2;...
004015EC |. 8945 F0 |mov dword ptr ss:[ebp-10],eax ; save temp1
004015EF |. 8B4D E0 |mov ecx,dword ptr ss:[ebp-20] ; i
004015F2 |. C1E1 08 |shl ecx,8 ; i>>8即 * 2^8
004015F5 |. 8B55 F0 |mov edx,dword ptr ss:[ebp-10]
004015F8 |. 33D1 |xor edx,ecx ; temp2=temp1 xor (i>>8)
004015FA |. 8955 F0 |mov dword ptr ss:[ebp-10],edx ; save temp2
004015FD |. 8B45 E0 |mov eax,dword ptr ss:[ebp-20] ; i
00401600 |. 83C0 01 |add eax,1 ; x=i+1
00401603 |. 8B4D E4 |mov ecx,dword ptr ss:[ebp-1C] ; len[name]
00401606 |. 0FAF4D E0 |imul ecx,dword ptr ss:[ebp-20] ; y=len[name]*i
0040160A |. F7D1 |not ecx ; !y
0040160C |. 0FAFC1 |imul eax,ecx ; z=x*y
0040160F |. 8B55 F0 |mov edx,dword ptr ss:[ebp-10] ;
00401612 |. 0FAFD0 |imul edx,eax ; result=temp2*z
00401615 |. 8955 F0 |mov dword ptr ss:[ebp-10],edx ; save result
00401618 |.^ EB AD \jmp short crackme3.004015C7
0040161A |> 8B45 F0 mov eax,dword ptr ss:[ebp-10]
0040161D |. 50 push eax
0040161E |. 68 54404000 push crackme3.00404054 ; ASCII "%lu"
00401623 |. 8D4D DC lea ecx,dword ptr ss:[ebp-24]
00401626 |. 51 push ecx
00401627 |. E8 52070000 call <jmp.&MFC42.#2818_CString::Format> ; 无符号数输出
0040162C |. 83C4 0C add esp,0C
0040162F |. 8D4D DC lea ecx,dword ptr ss:[ebp-24]
00401632 |. E8 79020000 call crackme3.004018B0
00401637 |. 50 push eax ; /真码
00401638 |. 8D4D E8 lea ecx,dword ptr ss:[ebp-18] ; |
0040163B |. E8 80020000 call crackme3.004018C0 ; \比较
00401640 |. 85C0 test eax,eax
00401642 |. 0F85 FF000000 jnz crackme3.00401747 //关键跳
name:moyer@pyg
sn:824009129 |
|