관리 메뉴

소나기

리버싱 보다는 BOF 본문

연구/리버싱

리버싱 보다는 BOF

moyoung 2012. 8. 25. 18:44

disassemble

sever

stack pointer : ebp, esp -> serve하게 되면

메모리의 낮은 주소에서 높은 주소까지

-

(메모리 값이 더 낮은 주소)

메인함수가 사용할 지역변수의 공간 :  static memory 미리 지정해 놓는다

그에 반에 동적메모리는 수행 도중에 할당 :  힙이라는 메모리 공간에 잡힌다.


로컬 변수 참조..



이게 바로 프롤로그다. 함수가 자기의 로컬 변수를 관리하기 위한 과정





이제 func을 호출해 보자



퍼징 기법

리턴 add 입력 가능

app 오류 발생 입력 값을 찾아서 입력하면 취약점 찾을 수 있다. 허허


내가 써먹을 수 있는건지 없는건지


그러면? 내가 원하는 것은 이 리턴 add 에 내가 원하는 주소로 바꾸고 싶다. 그것이 BOF의 주된 목적이니까.

그러면 해당 프로그램은 내가 만든 프로그램을 실행 할 수 있으니까.


이런게 많다는 것!


그렇다면 리턴 add의 위치를 어떻게 찾나요?

디버거를 열어서 오버 플로우 되는 순간의 사이즈를 재서 입력add에서 거리를 재는 방법이 있다

backtrack에 그런 기능도 있다.


한번 백트랙을 이용해서 리턴 어드레스의 위치를 찾아볼까?





'연구 > 리버싱' 카테고리의 다른 글

리버싱에 필요한 지식  (0) 2013.02.18
유용한 사이트 모음  (0) 2012.08.25
리버싱공부에 도움이 되는 자료 입니다.  (0) 2012.08.25
디버거  (0) 2012.08.25
리버싱 특강 1일차  (0) 2012.08.25
Comments