首页
社区
课程
招聘
[求助]我是菜菜,刚学算法分析,高手帮我分析下这2个算法.
发表于: 2006-2-9 17:37 4406

[求助]我是菜菜,刚学算法分析,高手帮我分析下这2个算法.

2006-2-9 17:37
4406
我刚刚学分析算法,汇编只晓得一点点,找了个例子本想自己分析一下,可是实在是功力不够,请高手帮助.
算法1:

0048916C   /$  55          push ebp
0048916D   |.  8BEC        mov ebp,esp
0048916F   |.  51          push ecx
00489170   |.  53          push ebx
00489171   |.  56          push esi
00489172   |.  57          push edi
00489173   |.  8BF9        mov edi,ecx
00489175   |.  8BDA        mov ebx,edx
00489177   |.  8945 FC     mov dword ptr ss:[ebp-4],eax
0048917A   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
0048917D   |.  E8 16AEF7FF call CrackMe.00403F98
00489182   |.  33C0        xor eax,eax
00489184   |.  55          push ebp
00489185   |.  68 F9914800 push CrackMe.004891F9
0048918A   |.  64:FF30     push dword ptr fs:[eax]
0048918D   |.  64:8920     mov dword ptr fs:[eax],esp
00489190   |.  A1 008F4900 mov eax,dword ptr ds:[498F00]
00489195   |.  8918        mov dword ptr ds:[eax],ebx
00489197   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
0048919A   |.  E8 45ACF7FF call CrackMe.00403DE4
0048919F   |.  85C0        test eax,eax
004891A1   |.  7E 36       jle short CrackMe.004891D9
004891A3   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
004891A6   |.  E8 39ACF7FF call CrackMe.00403DE4
004891AB   |.  8BF0        mov esi,eax
004891AD   |.  4E          dec esi
004891AE   |.  85F6        test esi,esi
004891B0   |.  72 27       jb short CrackMe.004891D9
004891B2   |.  46          inc esi
004891B3   |.  33DB        xor ebx,ebx
004891B5   |>  B8 00010000 /mov eax,100
004891BA   |.  E8 F999F7FF |call CrackMe.00402BB8
004891BF   |.  8B55 FC     |mov edx,dword ptr ss:[ebp-4]
004891C2   |.  0FB6141A    |movzx edx,byte ptr ds:[edx+ebx]
004891C6   |.  33C2        |xor eax,edx
004891C8   |.  50          |push eax
004891C9   |.  8D45 FC     |lea eax,dword ptr ss:[ebp-4]
004891CC   |.  E8 E3ADF7FF |call CrackMe.00403FB4
004891D1   |.  5A          |pop edx
004891D2   |.  881418      |mov byte ptr ds:[eax+ebx],dl
004891D5   |.  43          |inc ebx
004891D6   |.  4E          |dec esi
004891D7   |.^ 75 DC       \jnz short CrackMe.004891B5
004891D9   |>  8BC7        mov eax,edi
004891DB   |.  8B55 FC     mov edx,dword ptr ss:[ebp-4]
004891DE   |.  E8 D5A9F7FF call CrackMe.00403BB8
004891E3   |.  33C0        xor eax,eax
004891E5   |.  5A          pop edx
004891E6   |.  59          pop ecx
004891E7   |.  59          pop ecx
004891E8   |.  64:8910     mov dword ptr fs:[eax],edx
004891EB   |.  68 00924800 push CrackMe.00489200
004891F0   |>  8D45 FC     lea eax,dword ptr ss:[ebp-4]
004891F3   |.  E8 6CA9F7FF call CrackMe.00403B64
004891F8   \.  C3          retn
004891F9    .- E9 FEA3F7FF jmp CrackMe.004035FC
004891FE    .^ EB F0       jmp short CrackMe.004891F0
00489200    .  5F          pop edi
00489201    .  5E          pop esi
00489202    .  5B          pop ebx
00489203    .  59          pop ecx
00489204    .  5D          pop ebp
00489205    .  C3          retn

算法2:

004528F4   /$  55          push ebp
004528F5   |.  8BEC        mov ebp,esp
004528F7   |.  83C4 CC     add esp,-34
004528FA   |.  53          push ebx
004528FB   |.  56          push esi
004528FC   |.  33DB        xor ebx,ebx
004528FE   |.  895D CC     mov dword ptr ss:[ebp-34],ebx
00452901   |.  895D D0     mov dword ptr ss:[ebp-30],ebx
00452904   |.  895D D4     mov dword ptr ss:[ebp-2C],ebx
00452907   |.  895D E0     mov dword ptr ss:[ebp-20],ebx
0045290A   |.  894D F0     mov dword ptr ss:[ebp-10],ecx
0045290D   |.  8BF2        mov esi,edx
0045290F   |.  8BD8        mov ebx,eax
00452911   |.  8B45 F0     mov eax,dword ptr ss:[ebp-10]
00452914   |.  E8 E715FBFF call CrackMe.00403F00
00452919   |.  8B45 08     mov eax,dword ptr ss:[ebp+8]
0045291C   |.  E8 DF15FBFF call CrackMe.00403F00
00452921   |.  33C0        xor eax,eax
00452923   |.  55          push ebp
00452924   |.  68 312A4500 push CrackMe.00452A31
00452929   |.  64:FF30     push dword ptr fs:[eax]
0045292C   |.  64:8920     mov dword ptr fs:[eax],esp
0045292F   |.  8975 F4     mov dword ptr ss:[ebp-C],esi
00452932   |.  895D FC     mov dword ptr ss:[ebp-4],ebx
00452935   |.  8D45 E6     lea eax,dword ptr ss:[ebp-1A]
00452938   |.  E8 07010000 call CrackMe.00452A44
0045293D   |.  8D55 D4     lea edx,dword ptr ss:[ebp-2C]
00452940   |.  8B45 F0     mov eax,dword ptr ss:[ebp-10]
00452943   |.  E8 3CFEFFFF call CrackMe.00452784
00452948   |.  8B55 D4     mov edx,dword ptr ss:[ebp-2C]
0045294B   |.  8D45 F0     lea eax,dword ptr ss:[ebp-10]
0045294E   |.  E8 1112FBFF call CrackMe.00403B64
00452953   |.  8B45 F0     mov eax,dword ptr ss:[ebp-10]
00452956   |.  E8 F113FBFF call CrackMe.00403D4C
0045295B   |.  48          dec eax
0045295C   |.  85C0        test eax,eax
0045295E   |.  7C 3A       jl short CrackMe.0045299A
00452960   |.  40          inc eax
00452961   |.  8945 D8     mov dword ptr ss:[ebp-28],eax
00452964   |.  C745 DC 000>mov dword ptr ss:[ebp-24],0
0045296B   |>  8B45 F0     /mov eax,dword ptr ss:[ebp-10]
0045296E   |.  8B55 DC     |mov edx,dword ptr ss:[ebp-24]
00452971   |.  8A0C10      |mov cl,byte ptr ds:[eax+edx]
00452974   |.  BE 0A000000 |mov esi,0A
00452979   |.  B8 C47B4500 |mov eax,CrackMe.00457BC4
0045297E   |.  8D55 E6     |lea edx,dword ptr ss:[ebp-1A]
00452981   |>  33DB        |/xor ebx,ebx
00452983   |.  8AD9        ||mov bl,cl
00452985   |.  8D1C9B      ||lea ebx,dword ptr ds:[ebx+ebx*4]
00452988   |.  8A1C58      ||mov bl,byte ptr ds:[eax+ebx*2]
0045298B   |.  301A        ||xor byte ptr ds:[edx],bl
0045298D   |.  42          ||inc edx
0045298E   |.  40          ||inc eax
0045298F   |.  4E          ||dec esi
00452990   |.^ 75 EF       |\jnz short CrackMe.00452981
00452992   |.  FF45 DC     |inc dword ptr ss:[ebp-24]
00452995   |.  FF4D D8     |dec dword ptr ss:[ebp-28]
00452998   |.^ 75 D1       \jnz short CrackMe.0045296B
0045299A   |>  8D55 D0     lea edx,dword ptr ss:[ebp-30]
0045299D   |.  8B45 08     mov eax,dword ptr ss:[ebp+8]
004529A0   |.  E8 DFFDFFFF call CrackMe.00452784
004529A5   |.  8B55 D0     mov edx,dword ptr ss:[ebp-30]
004529A8   |.  8D45 08     lea eax,dword ptr ss:[ebp+8]
004529AB   |.  E8 B411FBFF call CrackMe.00403B64
004529B0   |.  55          push ebp
004529B1   |.  8D55 CC     lea edx,dword ptr ss:[ebp-34]
004529B4   |.  8B45 08     mov eax,dword ptr ss:[ebp+8]
004529B7   |.  E8 1CFCFFFF call CrackMe.004525D8
004529BC   |.  59          pop ecx
004529BD   |.  8B55 CC     mov edx,dword ptr ss:[ebp-34]
004529C0   |.  8D45 E0     lea eax,dword ptr ss:[ebp-20]
004529C3   |.  E8 9C11FBFF call CrackMe.00403B64
004529C8   |.  8B45 E0     mov eax,dword ptr ss:[ebp-20]
004529CB   |.  E8 7C13FBFF call CrackMe.00403D4C
004529D0   |.  83F8 0A     cmp eax,0A
004529D3   |.  74 04       je short CrackMe.004529D9
004529D5   |.  33DB        xor ebx,ebx
004529D7   |.  EB 25       jmp short CrackMe.004529FE
004529D9   |>  33C0        xor eax,eax
004529DB   |.  8945 DC     mov dword ptr ss:[ebp-24],eax
004529DE   |.  8D45 E6     lea eax,dword ptr ss:[ebp-1A]
004529E1   |>  8B55 E0     /mov edx,dword ptr ss:[ebp-20]
004529E4   |.  8B4D DC     |mov ecx,dword ptr ss:[ebp-24]
004529E7   |.  8A140A      |mov dl,byte ptr ds:[edx+ecx]
004529EA   |.  3A10        |cmp dl,byte ptr ds:[eax]
004529EC   |.  74 04       |je short CrackMe.004529F2
004529EE   |.  33DB        |xor ebx,ebx
004529F0   |.  EB 0C       |jmp short CrackMe.004529FE
004529F2   |>  FF45 DC     |inc dword ptr ss:[ebp-24]
004529F5   |.  40          |inc eax
004529F6   |.  837D DC 0A  |cmp dword ptr ss:[ebp-24],0A
004529FA   |.^ 75 E5       \jnz short CrackMe.004529E1
004529FC   |.  B3 01       mov bl,1
004529FE   |>  33C0        xor eax,eax
00452A00   |.  5A          pop edx
00452A01   |.  59          pop ecx
00452A02   |.  59          pop ecx
00452A03   |.  64:8910     mov dword ptr fs:[eax],edx
00452A06   |.  68 382A4500 push CrackMe.00452A38
00452A0B   |>  8D45 CC     lea eax,dword ptr ss:[ebp-34]
00452A0E   |.  BA 03000000 mov edx,3
00452A13   |.  E8 D810FBFF call CrackMe.00403AF0
00452A18   |.  8D45 E0     lea eax,dword ptr ss:[ebp-20]
00452A1B   |.  E8 AC10FBFF call CrackMe.00403ACC
00452A20   |.  8D45 F0     lea eax,dword ptr ss:[ebp-10]
00452A23   |.  E8 A410FBFF call CrackMe.00403ACC
00452A28   |.  8D45 08     lea eax,dword ptr ss:[ebp+8]
00452A2B   |.  E8 9C10FBFF call CrackMe.00403ACC
00452A30   \.  C3          retn
00452A31    .- E9 2E0BFBFF jmp CrackMe.00403564
00452A36    .^ EB D3       jmp short CrackMe.00452A0B
00452A38    .  8BC3        mov eax,ebx
00452A3A    .  5E          pop esi
00452A3B    .  5B          pop ebx
00452A3C    .  8BE5        mov esp,ebp
00452A3E    .  5D          pop ebp
00452A3F    .  C2 0400     retn 4

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道这样是否已经把程序发全,如果不全请指出我再贴出.
2006-2-9 17:39
0
游客
登录 | 注册 方可回帖
返回
//