debugging
-
[리버싱] lighthouse + DynamoRIO - 프로그램 실행 흐름 확인# 시스템 해킹 공부중 2020. 2. 26. 22:19
프로그램을 리버싱할 때, 프로그램이 어떤 block 들을 거쳐서 실행되는지 그 실행 흐름을 확인할 수 있고 그 흐름이 일정하다면 리버싱할 때 좀 더 효율적으로 할 수 있고, 분석의 정확도를 높일 수 있다. 이 때 사용할 수 있는 유용한 플러그인과 도구가 있어 간단하게 기록한다. 1. DynamoRIO DynamoRIO는 DBI(Dynamic Binary Instrumentation) Framework중 하나로, 프로세스에 동적으로 명령어를 삽입해서, 정보를 얻거나 특정 행위를 할 수 있도록 하는 시스템이다. 다운로드는 아래 링크를 통해서, 실행환경에 맞는 버전을 받아서 압축을 해제하면 된다. https://github.com/DynamoRIO/dynamorio/wiki/Downloads DynamoRIO..
-
pwntools gdb.attach 사용법 - python process debugging# 시스템 해킹 공부중 2019. 8. 5. 21:08
gdb.attach 사용법 wargame이나 ctf 문제를 풀 때, 혹은 바이너리를 분석 할 때 파이썬으로 데이터를 입력하는 경우가 자주있다. example> p = process("binary") p.sendline("AAAA") 이 때 내가 입력한 데이터가 원하는데로 바이너리에 잘 입력이 되었는지, 스택은 잘 덮혔는지 확인하기 위해서 gdb를 사용해 디버깅을 할 수 있다. 보통은 다음과 같이 코드 내에 raw_input()을 넣어서 실행을 잠시 멈춘 다음, gdb로 실행된 binary의 pid 로 붙어서 디버깅을 한다. example> p = process("binary") raw_input("1") p.sendine("AAAA") $ ps -ef ..... 4111 ... binary $ gdb -..