일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- LOB
- architecture
- cbpf
- 풀이
- Compiler
- C언어
- DOCKER-USER
- doupdate
- wnourefresh
- BOF
- 어셈블리어
- rfc5508
- ncurses
- ioctl
- epoll
- .nret core 배포
- iptables
- wrefresh
- REDIS
- level trigger
- mvwin
- epoll_wait
- Docker
- .net core 7
- NAPT
- 취약점
- vtable
- packet flow
- packet filter
- edge trigger
- Today
- Total
Tuuna Computer Science
[ 32bit ELF Debugger ] 디스어셈블리러(disassembler), 디버거(debugger) 제작 일지2 본문
[ 32bit ELF Debugger ] 디스어셈블리러(disassembler), 디버거(debugger) 제작 일지2
GuTTe 2019. 2. 20. 17:33디스어셈블러랑, 디버거를 이미 다 제작이 완료되었지만 귀차니즘으로 아직 안올렸는데
이제 스타벅스온김에 올리려합니다.
================================================================
ptrace를 활용한 나만의 debugger가 완성되었습니다.ㅎㅎ !
아직까지 수정하여할 부분이 많지만 초기 완성단계본 올려봅니다.
platform:
Linux & Unix 계열
대상바이너리 : 32bit elf (no-pie)파일
사용법
./debugger <32bit elf>
명령어 도움말
help 치시면 됩니다.
[인터페이스]
현재 오류는 메모리덤프와, 레지스터 세팅, 메모리 수정 부분에서 오류가 발생했는데 조만간 고칠예정입니다. (strtok 문제인듯...)
(해결)
또한 step over를 아직 구상하지 못해 구상하기 전까지는 step into 방식 또는 continue방식을 사용하여야 할거 같습니다.
+ 한번 run-time이 끝나면 다시 debugger를 재실행 하여야합니다.
이 부분도 PTRACE_TRACEME가 있는 자식 프로세스에게 파이프라인 구성해서 디버거를 재실행 하지 않아도 되게 차차 추가할 예정입니다.
이 디버거로 hitcon-training lab1 sysmagic 바이너리 flag를 따보았는데 좋았습니다 ㅎ
명령어와 breakpoint를 구조체 배열 형식으로 했는데 공간 예측 실패의 문제로 연결 리스트의 구조로 변경하였는데 만족스럽습니다.
'Debugger' 카테고리의 다른 글
[디버거] 디버거 제작을 위한 ToDo it List (0) | 2019.02.21 |
---|---|
[debugger] 32bit binary disassembler 개발일지 (0) | 2019.01.14 |
ModR/M 바이트에서 Mod+R/M과 Reg와의 목적지(순서) 구분 & SIB 바이트 작성법 (0) | 2018.12.15 |
인텔 기계어 정리 (1) | 2018.12.13 |
[디버거] ELF Parser 개발일지 .symbol내의 심볼 출력 (0) | 2018.12.04 |