1581, 14/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   CodeAche
   [ÀÚÀÛ] Linux Reverse Engineering - printf,scanf,puts,variable

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1406 [º¹»ç]


#include<stdio.h>
  int main(int argc,char **argv)
  {
  int i=10;
  printf("%d\n",i);
  int j=20;
  printf("%d\n",j);
  printf("%d\n",i+5);
  printf("%x\n",&i);
  puts("test");
  puts(i);
  scanf("%d",&i);
  printf("%d\n",i);
  return 1;
  }

FreeBSD 8.0-RELEASE #0 (gcc 4.2.1)
0x08048470 <main+0>:    lea    ecx,[esp+4]
0x08048474 <main+4>:    and    esp,0xfffffff0
0x08048477 <main+7>:    push   DWORD PTR [ecx-4]
0x0804847a <main+10>:   push   ebp
0x0804847b <main+11>:   mov    ebp,esp
0x0804847d <main+13>:   push   ecx
----------------ÇÁ·Ñ·Î±×-------------------
0x0804847e <main+14>:   sub    esp,0x24
//¿Ö esp¿¡¼­ 24 ºüÁö´ÂÁö ¸ð¸£°ÚÀ½. ¾Æ¸¶ ½ºÅÃÀÌ »ç¿ëµÉ¶§ »ç¿ëµÉ¸¸Å­ Âß ºüÁ³´Ù°¡ +·Î ¿Ã¶ó°¡´Â ¹æ½ÄÀ» »ç¿ëÇϴµí..
0x08048481 <main+17>:   mov    DWORD PTR [ebp-12],0xa
//ebp-12 = i  = 10;
0x08048488 <main+24>:   mov    eax,DWORD PTR [ebp-12]
//i°ªÀ» eax¿¡ ³ÖÀ½.
0x0804848b <main+27>:   mov    DWORD PTR [esp+4],eax
//printfÀÇ µÎ¹ø° ÀÎÀÚ. printf(" ",À̺κÐ).   eax¸¦ esp+4¿¡ ³Ö´Â´Ù.
0x0804848f <main+31>:   mov    DWORD PTR [esp],0x80485c1
//printfÀÇ Ã¹¹ø° ÀÎÀÚ. printf("À̺κÐ", );
0x08048496 <main+38>:   call   0x8048324 <_init+68>
//printf()¼öÇà. esp¿Í esp+4¸¦ ÀÌ¿ëÇÏ¿© Ãâ·Â.
0x0804849b <main+43>:   mov    DWORD PTR [ebp-8],0x14
//ebp-12 = i    ebp-8 = j = 20;
0x080484a2 <main+50>:   mov    eax,DWORD PTR [ebp-8]
0x080484a5 <main+53>:   mov    DWORD PTR [esp+4],eax
0x080484a9 <main+57>:   mov    DWORD PTR [esp],0x80485c1
0x080484b0 <main+64>:   call   0x8048324 <_init+68>
//printf(0x80485c1,j);
0x080484b5 <main+69>:   mov    eax,DWORD PTR [ebp-12]
//i°ªÀ» eax¿¡ ³ÖÀ½. ¿©±â¼± 10
0x080484b8 <main+72>:   add    eax,0x5
//eax = eax+5 = i+5 =15
0x080484bb <main+75>:   mov    DWORD PTR [esp+4],eax
0x080484bf <main+79>:   mov    DWORD PTR [esp],0x80485c1
0x080484c6 <main+86>:   call   0x8048324 <_init+68>
//printf("%d\n",i+5);
0x080484cb <main+91>:   lea    eax,[ebp-12]
//eax ¿¡ ebp-12ÀÇ ÁÖ¼Ò°ªÀ» ³ÖÀ½. eax = &(ebp-12) = &i
0x080484ce <main+94>:   mov    DWORD PTR [esp+4],eax
0x080484d2 <main+98>:   mov    DWORD PTR [esp],0x80485c5
0x080484d9 <main+105>:  call   0x8048324 <_init+68>
//printf("%x\n",&i);
0x080484de <main+110>:  mov    DWORD PTR [esp],0x80485c9
//esp´Â init+36ÀÇ ÀÎÀÚ.
0x080484e5 <main+117>:  call   0x8048304 <_init+36>
//putsÀÓ
0x080484ea <main+122>:  mov    eax,DWORD PTR [ebp-12]
//eax¿¡ i°ª ´ëÀÔ.
0x080484ed <main+125>:  mov    DWORD PTR [esp],eax
//i¸¦ esp¿¡ ³ÖÀ½.
0x080484f0 <main+128>:  call   0x8048304 <_init+36>
//puts(esp) = puts(i)
0x080484f5 <main+133>:  lea    eax,[ebp-12]
//iÀÇ ÁÖ¼Ò°ª eax¿¡³ÖÀ½.
0x080484f8 <main+136>:  mov    DWORD PTR [esp+4],eax
//eax+4, ¾Æ¸¶µµ ÀÌÈÄ callµÇ´Â ÇÔ¼öÀÇ µÎ¹ø° ÀÎÀÚ.¿¡ iÀÇ ÁÖ¼Ò°ª µé¾î°¨.
0x080484fc <main+140>:  mov    DWORD PTR [esp],0x80485ce
//init+84()ÀÇ Ã¹¹ø° ÀÎÀÚ.
0x08048503 <main+147>:  call   0x8048334 <_init+84>
//scanf("%d",&i);
0x08048508 <main+152>:  mov    eax,DWORD PTR [ebp-12]
//iÀÇ °ªÀ» eax¿¡ ³ÖÀ½. i´Â scanf·Î ÀÎÇØ ¼öÁ¤µÈ °ªÀÌ µé¾î°¨.
0x0804850b <main+155>:  mov    DWORD PTR [esp+4],eax
//i°¡ printf(),init+68 ÀÇ µÎ¹ø°ÀÎÀÚ·Î ¼¼ÆÃ.
0x0804850f <main+159>:  mov    DWORD PTR [esp],0x80485c1
0x08048516 <main+166>:  call   0x8048324 <_init+68>
//i°ª Ãâ·Â.
0x0804851b <main+171>:  mov    eax,0x1
//¸®ÅÏ°ª.
0x08048520 <main+176>:  add    esp,0x24
//ºüÁ³´ø esp ´Ù½Ã º¹¿ø.
----------------¿¡Çʷα×-------------------
0x08048523 <main+179>:  pop    ecx
0x08048524 <main+180>:  pop    ebp
0x08048525 <main+181>:  lea    esp,[ecx-4]
0x08048528 <main+184>:  ret    

  Hit : 6762     Date : 2010/02/24 08:08



    
Cpgroot ÁÁÀºÁ¤º¸³×¿ä.. °¨»çÇÕ´Ï´Ù. 2010/08/18  
1321   [ÀÚÀÛ±Û]C¾ð¾î·Î °¡º­¿î(?) ÇÁ·Îgi·¥À» ¸¸µé¾îº¸ÀÚ!     ÇѽÂÀç
12/25 5927
1320   [ÀÚÀÛ±Û]C¾ð¾î º¯¼öÇ׿¡ ´ëÇÏ¿© ¾Ë¾Æº¸ÀÚ!(Ç®ÀÌÆ÷ÇÔ)     ÇѽÂÀç
12/26 5611
1319   [ÀÚÀÛ±Û]C¾ð¾î ¸¸µç»ç¶÷À» ¾Ë¾Æº¸ÀÚ![1]     ÇѽÂÀç
12/25 5341
1318   [µ¿°­][Æۿ±Û]°¡»ó¸Ó½Å¿¡ ¿ìºÐÅõ¸¦ ±ò¾Æº¸ÀÚ     ÇѽÂÀç
05/18 4154
1317   [µ¿°­][Æۿ±Û]C¾ð¾î·Î Hellow world¸¦ Ãâ·ÂÇغ¸ÀÚ![2]     ÇѽÂÀç
05/23 4493
1316   [Æۿ±Û]¸®´ª½º ±âº» ¸í·É¾î     ÇѽÂÀç
06/06 5277
1315   µ¥ºñ¾È °è¿­ ¸®´ª½º ÀÇÁ¸¼º ±úÁ³À»¶§ ÇØ°á¹ý     ÇѽÂÀç
11/27 4561
1314   [ÆÁ] ¿ìºÐÅõ ¹Ì·¯¸µ¼­¹ö     ÇѽÂÀç
03/09 4077
1313   [ÆÁ] ÆÄÀ̽ã 2¼Ò½º¸¦ 3À¸·Î º¯°æÇØÁÖ´Â »çÀÌÆ®[3]     ÇѽÂÀç
05/13 3954
1312   [ÀÚÀÛ]ÇØÄ¿½ºÄð 2th ÇØÅ·Ä·ÇÁ Mini CTF Ç®ÀÌ[25]     CodeAche
02/22 7700
1311   [ÀÚÀÛ] Linux Reverse Engineering - basic.[5]     CodeAche
02/24 10323
  [ÀÚÀÛ] Linux Reverse Engineering - printf,scanf,puts,variable[1]     CodeAche
02/24 6761
1309   [ÀÚÀÛ] Linux Reverse Engineering - for,if[2]     CodeAche
02/24 6153
1308   HTMLÀÇ ±âº» »ó½Äµé... ±×¸®°í Ç¥ÁØ[2]     commio
10/16 7187
1307   Assembly Language ¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸í[18]     commio
12/13 8582
1306   [Æß] C ÇÁ·Î±×·¥ÀÇ ÀϹÝÀûÀÎ ±¸Á¶ [ù°­ÁÂ][3]     Cpgroot
08/19 5789
1305   [C±âÃÊ] C ¿Í C++ ÀÇ Æ¯Â¡[1]     Cpgroot
07/05 6096
1304   [³×Æ®¿öÅ©] ³×Æ®¿öÅ© ¿Í TCP/IP ÇÁ·ÎÅäÄÝ[1]     Cpgroot
07/05 6357
1303   [ÀÚÀÛ] À©µµ¿ìÁî ½Ã½ºÅÛ ÆÄÀÏ¿¡ ÀÎÁ§¼ÇµÈ ¹ÙÀÌ·¯½º Àâ´Â °£´ÜÇÑ ÆÁ     cpk115
03/12 8392
1302   º¸¾È¿¡¼­ÀÇ net use     craft
01/06 6763
[1]..[11][12][13] 14 [15][16][17][18][19][20]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org