프로그래밍

 3198, 1/160 회원가입  로그인  
   zung3211
   Level 11 - 디스어셈블 해석좀 해주세요... 정말 못찾겠어요..

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3110 [복사]


검색도 해보고
어셈블 명령어 지시어 정말 공부도 해보고

정말 정말 못찾겠습니다..
조금만 도와주세요

한번만 해석해주세요
한줄씩 해석해주시면 감사하겠습니다


(gdb) disas main
Dump of assembler code for function main:
0x08048470 <main+0>:    push   %ebp
0x08048471 <main+1>:    mov    %esp,%ebp
0x08048473 <main+3>:    sub    $0x108,%esp
0x08048479 <main+9>:    sub    $0x8,%esp
0x0804847c <main+12>:   push   $0xc14
0x08048481 <main+17>:   push   $0xc14
0x08048486 <main+22>:   call   0x804834c <setreuid>
0x0804848b <main+27>:   add    $0x10,%esp
0x0804848e <main+30>:   sub    $0x8,%esp
0x08048491 <main+33>:   mov    0xc(%ebp),%eax
0x08048494 <main+36>:   add    $0x4,%eax
0x08048497 <main+39>:   pushl  (%eax)
0x08048499 <main+41>:   lea    0xfffffef8(%ebp),%eax
0x0804849f <main+47>:   push   %eax
0x080484a0 <main+48>:   call   0x804835c <strcpy>
0x080484a5 <main+53>:   add    $0x10,%esp
0x080484a8 <main+56>:   sub    $0xc,%esp
0x080484ab <main+59>:   lea    0xfffffef8(%ebp),%eax
0x080484b1 <main+65>:   push   %eax
0x080484b2 <main+66>:   call   0x804833c <printf>
0x080484b7 <main+71>:   add    $0x10,%esp
0x080484ba <main+74>:   leave
0x080484bb <main+75>:   ret


  Hit : 3759     Date : 2011/07/29 06:40



    
$Zero 0 1 은 스택 프레임 구성 코드 (스택프레임이 뭐냐고 물으시면 곤란)
3 9 변수 및 필요한 스택공간 할당
12 17에서 파라미터를 전달하고 22에서 setreuid 함수호출
27 함수 호출 규약에 따라 스택정리
그 다음... 인텔문법이 아니라 보기힘든데. .
베이스 포인터로 변수에 접근 후 대입연산
lea 는 주소값을 전달하는 코드라보심 되구요
위코드에선 버퍼의 주소값을 전달하는겁니다.
해당 버퍼를 eax레지스터에 넣고 함수의 파라미터로 전달하네요

리버싱을 공부하시는게...
2011/07/29  
zung3211 어셈블리, 디스 어셈블 이 아니라

리버싱을 공부해보겠음 +_+

감사합니다
2011/07/30