System Hacking - Stage 3 : Tool installation

진주찬·2023년 3월 27일
0

System Hacking

목록 보기
2/6

Tool : gdb

버그 : 컴퓨터과학에서 실수로 발생한 프로그램의 결함
디버거 : 버그를 없애기 위해 사용되는 도구, 프로그램을 어셈블리 코드 단위로 실행하면서, 실행결과를 사용자에게 보여줌
맥락 : 주요 메모리들의 상태

registers

레지스터의 상태를 보여줌

disasm

rip부터 여러 줄에 걸쳐 디스어셈블 된 결과를 보여줌

stack

rps부터 여러 줄에 걸쳐 스택의 값들을 보여줌

backtrace

현재 rip에 도달할 때까지 어떤 함수들이 중첩되어 호출됐는지 보여줌

명령어

start : 진입점에 중단점을 설정하고 실행
break : 특정 주소에 중단점을 설정하는 기능
continue : 중단된 프로그램을 계속 실행시키는 기능
run : 프로그램이 처음부터 끝까지 멈추고 실행됨.
disassemble : 함수 이름을 인자로 전달하면 해당 함수가 반환될 때까지 전부 디스어셈블하여 보여줌.
ni(next instruction)는 서브루틴의 내부로는 들어가지 않고 명령어 실행
si(step into)는 서브루틴의 내부로 들어가고 명령어 실행
finish : 함수의 끝까지 한번에 실행
x를 이용하여 특정 주소에서 원하는 길이만큼의 데이터를 원하는 형식으로 인코딩하여 볼 수 있음
telescope : 특정 주소의 메모리 값들을 보여주는 것에서 그치지 않고, 메모리가 참조하고 있는 주소를 재귀적으로 탐색하여 값을 보여줌
vmmap : 어떤 파일이 매핑된 영역일 경우, 해당 파일의 경로까지 보여줌

Tool : pwntools

process & remote: 로컬 프로세스 또는 원격 서버의 서비스를 대상으로 익스플로잇 수행
send & recv: 데이터 송수신
packing & unpacking: 정수를 바이트 배열로, 또는 바이트 배열을 정수로 변환
interactive: 프로세스 또는 서버와 터미널로 직접 통신
context.arch: 익스플로잇 대상의 아키텍처
context.log_level: 익스플로잇 과정에서 출력할 정보의 중요도
ELF: ELF헤더의 여러 중요 정보 수집
shellcraft: 다양한 셸 코드를 제공
asm: 어셈블리 코드를 기계어로 어셈블

0개의 댓글