Post

(procfs\_search.h) 메모리에서 특정 값의 주소 찾기

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이 크게 수정되는 것을 방지하기 위해서다.

This post is licensed under CC BY 4.0 by the author.