https://github.com/umbum/pwn/blob/master/tools/procfs_search.h


procfs에서 메모리 주소를 받아와 메모리 공간 내의 특정 값의 위치를 출력하는 프로그램.

gdb가 너무 구버전이라 find 명령어가 없는 경우 쓸만하다.

* `` objdump`` 또는 `` xxd``를 사용할 수 있지만 code section만 조회되며 동적으로 결정되는 다른 section, 예를 들면 so나 stack의 데이터는 찾을 수 없다.


Usage

파라미터 설정은 int mem_search(long startaddr, long endaddr)에서 하고
procfs_search()를 호출하면 알아서 돌아간다.

  • char target_array[] : 찾을 value. "/bin/sh"같은 string으로 지정해도 된다.
  • int forward_offset   : 찾은 값에서 그만큼 앞쪽 주소부터 출력해준다. 
  • int backward_offset  : 찾은 값에서 그만큼 더 출력해준다.

메모리 탐색 영역을 직접 지정하고 싶은 경우 mem_search을 바로 호출하면 된다.

target_array를 파라미터로 받지 않는 이유는 main stack frame이 크게 수정되는 것을 방지하기 위해서다.


'OS > LINUX & UNIX' 카테고리의 다른 글

STDIN _IO_FILE structure <_IO_2_1_stdin_> & fgets VS argv  (0) 2017.05.09
[*-nix] 패키지 관련 및 OS update & upgrade  (0) 2017.04.13
생성자, 소멸자 low-level  (0) 2017.01.13
secure-execution mode  (0) 2017.01.11
ltrace & strace  (0) 2017.01.07