| 
 | 
 
 
发表于 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 |   
 
 
 
 |