--- c:\users\내문서\documents\visual studio 2012\projects\bo\bo\소스.c --------------


void main()

{

00F53400 55                   push        ebp  

00F53401 8B EC                mov         ebp,esp  

00F53403 81 EC E8 00 00 00    sub         esp,0E8h  

00F53409 53                   push        ebx  

00F5340A 56                   push        esi  

00F5340B 57                   push        edi  

00F5340C 8D BD 18 FF FF FF    lea         edi,[ebp-0E8h]  

00F53412 B9 3A 00 00 00       mov         ecx,3Ah  

00F53417 B8 CC CC CC CC       mov         eax,0CCCCCCCCh  

00F5341C F3 AB                rep stos    dword ptr es:[edi]  

int a, b;

char mbf[6];


a= 1;

00F5341E C7 45 F8 01 00 00 00 mov         dword ptr [a],1  

b = 2;

00F53425 C7 45 EC 02 00 00 00 mov         dword ptr [b],2  


f(a,b);

00F5342C 8B 45 EC             mov         eax,dword ptr [b]  

00F5342F 50                   push        eax  

00F53430 8B 4D F8             mov         ecx,dword ptr [a]  

00F53433 51                   push        ecx  

00F53434 E8 3F DC FF FF       call        _f (0F51078h)  

00F53439 83 C4 08             add         esp,8  

printf("a");

00F5343C 8B F4                mov         esi,esp  

00F5343E 68 B0 58 F5 00       push        0F558B0h  

00F53443 FF 15 B8 92 F5 00    call        dword ptr ds:[0F592B8h]  

00F53449 83 C4 04             add         esp,4  

00F5344C 3B F4                cmp         esi,esp  

00F5344E E8 8D DD FF FF       call        __RTC_CheckEsp (0F511E0h)  

printf("z");

00F53453 8B F4                mov         esi,esp  

00F53455 68 B4 58 F5 00       push        0F558B4h  

00F5345A FF 15 B8 92 F5 00    call        dword ptr ds:[0F592B8h]  

00F53460 83 C4 04             add         esp,4  

00F53463 3B F4                cmp         esi,esp  

00F53465 E8 76 DD FF FF       call        __RTC_CheckEsp (0F511E0h)  

}

00F5346A 33 C0                xor         eax,eax  

00F5346C 52                   push        edx  

00F5346D 8B CD                mov         ecx,ebp  

00F5346F 50                   push        eax  

00F53470 8D 15 94 34 F5 00    lea         edx,ds:[0F53494h]  

00F53476 E8 5B DD FF FF       call        @_RTC_CheckStackVars@8 (0F511D6h)  

00F5347B 58                   pop         eax  

00F5347C 5A                   pop         edx  

00F5347D 5F                   pop         edi  

00F5347E 5E                   pop         esi  

00F5347F 5B                   pop         ebx  

00F53480 81 C4 E8 00 00 00    add         esp,0E8h  

00F53486 3B EC                cmp         ebp,esp  

00F53488 E8 53 DD FF FF       call        __RTC_CheckEsp (0F511E0h)  

00F5348D 8B E5                mov         esp,ebp  

00F5348F 5D                   pop         ebp  

00F53490 C3                   ret  

00F53491 8D 49 00             lea         ecx,[ecx]  

00F53494 01 00                add         dword ptr [eax],eax  

00F53496 00 00                add         byte ptr [eax],al  

00F53498 9C                   pushfd  

00F53499 34 F5                xor         al,0F5h  

00F5349B 00 DC                add         ah,bl  

00F5349D ??                   ?? ?? 

00F5349E ??                   ?? ?? 

00F5349F FF 06                inc         dword ptr [esi]  

00F534A1 00 00                add         byte ptr [eax],al  

00F534A3 00 A8 34 F5 00 6D    add         byte ptr [eax+6D00F534h],ch  

00F534A9 62 66 00             bound       esp,qword ptr [esi]  

--- 소스 파일이 없습니다. ---------------------------------------------------------------


BOF 예제인데 진짜 모르겠음.


파괴의 광학이라는 책인데 8장(버퍼 오버플로우)만 건너 뛰고 16장 까지 읽고 다시 8장 왔는데 그때도 뭔 개소리인지 몰랐고, 지금도 뭔 개소리 인지 모르겠다.

리버싱 핵심 원리도 뒤져보고, 어셈블리도 뒤져보고 했는데 진짜 답이 않나옴.