|
发表于 2020-12-15 12:47:22
|
显示全部楼层
#include <stdio.h>
int main()
{
00B051A0 push ebp
00B051A1 mov ebp,esp
00B051A3 sub esp,198h
00B051A9 push ebx
00B051AA push esi
00B051AB push edi
00B051AC lea edi,[ebp-198h]
00B051B2 mov ecx,66h
00B051B7 mov eax,0CCCCCCCCh
00B051BC rep stos dword ptr es:[edi]
00B051BE mov eax,dword ptr [__security_cookie (0B09004h)]
00B051C3 xor eax,ebp
00B051C5 mov dword ptr [ebp-4],eax
int i, j = 0, k = 0, ARY[20] = { 0 }, DEST[20] = { 0 };
00B051C8 mov dword ptr [j],0
00B051CF mov dword ptr [k],0
00B051D6 mov dword ptr [ARY],0
00B051DD push 4Ch
00B051DF push 0
00B051E1 lea eax,[ebp-78h]
00B051E4 push eax
00B051E5 call _memset (0B010B4h)
00B051EA add esp,0Ch
00B051ED mov dword ptr [DEST],0
00B051F7 push 4Ch
00B051F9 push 0
00B051FB lea eax,[ebp-0D0h]
00B05201 push eax
00B05202 call _memset (0B010B4h)
00B05207 add esp,0Ch
for (i = 0;i < 10;i++)
00B0520A mov dword ptr [i],0
00B05211 jmp main+7Ch (0B0521Ch)
00B05213 mov eax,dword ptr [i]
00B05216 add eax,1
00B05219 mov dword ptr [i],eax
00B0521C cmp dword ptr [i],0Ah
00B05220 jge main+0A2h (0B05242h)
{
scanf("%d", &ARY[i]);
00B05222 mov eax,dword ptr [i]
00B05225 lea ecx,ARY[eax*4]
00B05229 push ecx
00B0522A push offset string "%d" (0B06BF8h)
00B0522F call _scanf (0B013CFh)
00B05234 add esp,8
j++;
00B05237 mov eax,dword ptr [j]
00B0523A add eax,1
00B0523D mov dword ptr [j],eax
}
00B05240 jmp main+73h (0B05213h)
k = j - 1;
00B05242 mov eax,dword ptr [j]
00B05245 sub eax,1
00B05248 mov dword ptr [k],eax
for (i = 0;i < j;i++)
00B0524B mov dword ptr [i],0
00B05252 jmp main+0BDh (0B0525Dh)
00B05254 mov eax,dword ptr [i]
00B05257 add eax,1
00B0525A mov dword ptr [i],eax
00B0525D mov eax,dword ptr [i]
00B05260 cmp eax,dword ptr [j]
00B05263 jge main+0E1h (0B05281h)
{
DEST[k] = ARY[i];
00B05265 mov eax,dword ptr [k]
00B05268 mov ecx,dword ptr [i]
00B0526B mov edx,dword ptr ARY[ecx*4]
00B0526F mov dword ptr DEST[eax*4],edx
k--;
00B05276 mov eax,dword ptr [k]
00B05279 sub eax,1
00B0527C mov dword ptr [k],eax
}
00B0527F jmp main+0B4h (0B05254h)
for(i = 0;i < j;i++)
00B05281 mov dword ptr [i],0
00B05288 jmp main+0F3h (0B05293h)
00B0528A mov eax,dword ptr [i]
00B0528D add eax,1
00B05290 mov dword ptr [i],eax
00B05293 mov eax,dword ptr [i]
00B05296 cmp eax,dword ptr [j]
00B05299 jge main+115h (0B052B5h)
printf("%d ", DEST[i]);
00B0529B mov eax,dword ptr [i]
printf("%d ", DEST[i]);
00B0529E mov ecx,dword ptr DEST[eax*4]
00B052A5 push ecx
00B052A6 push offset string "%d " (0B06B30h)
00B052AB call _printf (0B01316h)
00B052B0 add esp,8
00B052B3 jmp main+0EAh (0B0528Ah)
}
00B052B5 xor eax,eax
00B052B7 push edx
00B052B8 mov ecx,ebp
00B052BA push eax
00B052BB lea edx,ds:[0B052E8h]
00B052C1 call @_RTC_CheckStackVars@8 (0B01253h)
00B052C6 pop eax
00B052C7 pop edx
00B052C8 pop edi
00B052C9 pop esi
00B052CA pop ebx
00B052CB mov ecx,dword ptr [ebp-4]
00B052CE xor ecx,ebp
00B052D0 call @__security_check_cookie@4 (0B01267h)
00B052D5 add esp,198h
00B052DB cmp ebp,esp
00B052DD call __RTC_CheckEsp (0B0110Eh)
00B052E2 mov esp,ebp
00B052E4 pop ebp
00B052E5 ret
00B052E6 xchg ax,ax
00B052E8 add al,byte ptr [eax]
00B052EA add byte ptr [eax],al
00B052EC lock push edx
00B052EE mov al,0
00B052F0 test bh,bh
00B052F2 ?? ??
00B052F3 call dword ptr [eax]
00B052F6 add byte ptr [eax],al
00B052F8 or eax,2C00B053h
00B052FD ?? ??
00B052FE ?? ??
00B052FF call dword ptr [eax]
00B05302 add byte ptr [eax],al
00B05304 or byte ptr [ebx-50h],dl
00B05307 add byte ptr [ebp+eax*2+53h],al
00B0530B push esp
00B0530C add byte ptr [ecx+52h],al
00B0530F pop ecx
00B05310 add ah,cl |
|