시스템 해킹

 1576, 1/79 회원가입  로그인  
   cdpython
   http://candypython.tistory.com/
   gdb 관련질문입니다

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


안녕하세요
해커스쿨 레벨9문제를 풀다보니 궁금한게 생겨 질문드려요
우선 궁금한게 메모리 할당 부분인데요
예를들어 lea  eax,[ebp-40] 과같은 어셈블리는
변수를 메모리에 할당 하는 것으로 이해 해야 하나요?
Bof시에 크기를 정확하게 구하는 방법이 궁금합니다.

  Hit : 3496     Date : 2011/08/08 12:45



    
$Zero lea eax. [ebp-40] 은

&buf

과 같은겁니다.

즉 ebp-40의 버퍼의 주소를 eax레지스터에 넣어라. 라는 명령입니다.

그리고 보통 eax레지스터를 이용해 함수의 인자로 쓰거나 하지요 .

버퍼의 크기는 처음 스택 프레임이 할당될때 확인하실 수 있습니다.

ex) sub esp , 0x108

이건 스택에 총 264바이트가 할당이 된것이고

그 뒤에 mov [ebp-12] , 0x30

lea eax, [ebp-264]
같은 문법으로 크기를 확인할 수 있습니다.

위 문법은 대충 유추해보자면 ebp-12 부분에 변수가 하나 있고 ebp-264가 버퍼가 되는것입니다.

264중 12는 다른 변수이니 버퍼의 총 크기는 252가 되는것입니다.

전 이런식으로 유추합니다.
2011/08/08  
$Zero 스택프레임이 할당 이란 표현보단 구성이란 표현이 맞겟네요 . 2011/08/08  
$Zero 만약 mov문법이 없어서 다른 변수가 있는지 없는지 분간이 안될땐 그냥 264바이트 전부를 덮어 쓰면 되는거죠 . 2011/08/08