일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- memory
- Window process
- network
- 생활코딩 html
- N0Named
- 24시간의 전사
- 생활코딩
- blkls
- 포렌식
- disk
- 윈도우 프로세스 종류
- CTF-D
- 네트워크관리사2급
- 디지털포렌식 with CTF
- 네트워크 보안
- html
- 정보처리기사 필기 합격
- 는 하지마...
- ftz
- 디지털포렌식
- ZIP 파일구조
- 2022시작
- 실기
- 슬퍼유
- slack space
- 윈도우 프로세스
- pythonchallenge
- vinetto
- Multimedia
- Multimeida
Archives
- Today
- Total
ssoL2 TISTORY
디버거 이론, Ollydbg, ELF, gdb 본문
디버거 이론
- 디버거에는 다양한 디버거 수단 존재
- ex) break point, single stepping, program run, memory edit 등
breakpoint
- 프로그램 순서대로 실행되다가 breakpoint만나면 멈춤
- breakpoint : CPU에서 특정 trigger가 발동되면 Interrupt를 발생시키도록 해놓음
- Software breakpoint : 보통의 브레이크 포인트로 해당 opcode를 0xCC로 바꿈. => Interrupt 호출
- Hardware breakpoint : CPU에 있는 DR0~DR3 레지스터에 세팅하는 브레이크 포인트로, 단 4개만 사용 가능
- Memory breakpoint : Guard page로 만들어놓고 접근 시 예외 발생시켜 프로그램 중지
Single stepping
- Step into : call, rep 과 같은 명령이 있을 시 넘어가지 않고 실행
- Step out : call, rep과 같은 명령을 넘어가고 실행함, 중간에 실행을 안하는게 아니라 다음주소로 넘어감
Ollydbg
- Famous 디버거 ^^
- 동적분석이 가능하며 플러그인이 많다.
Ollydbg - 모듈
- [Alt + E] key로 메모리에 불러와진 모듈의 목록을 보여줌
- EXE는 프로그램의 코드 뿐만 아니라 사용하는 라이브러리 함수의 코드가 들어가있는 "DLL" 또한 로딩된다.
Ollydbg - String
- 참조되는 모든 문자열을 볼 수 있다.
- 오른쪽 클릭 - [Search for] - [All referenced strings]
- 문자열을 따라가다보면 main 함수를 찾을 수 있다.
Ollydbg - 단축 키
- breakpoint -> [F2]
- Run -> [F9]
- Step Into -> [F7]
- Step Out -> [F8]
- step이 진행되면서 변경된 레지스터는 검은색에서 빨간색으로 변경
ELF
- 리눅스에서 실행되는 바이너리
- gcc -o a a.c로 만들어진 a 파일 또한 ELF 구조 !!
- IDA로 분석이 가능하다~
- 참고로 IDA로 분석할 때 EXE보다 간결하고 import하는 함수가 적음. 또한, Symbol도 살아있다.
GDB
- GNU project debugger로 리차드 스톨만이 만듦
- gdb 바이너리, ELF 바이너리 전용
- [gdb 프로그램이름] 명령어로 사용 가능하다.
- code 확인 : [disas 함수symbol]
- breakpoint : [b *주소] or [b *symbol]
- run : [r]
- 프로그램 재개 : [c]
- data 조회 : [x/[number][type] 주소] ex) x/20wx $esp, x/100wx 0x08048400
- -> type 종류 b (1 byte), w (4 byte), g (8 byte), s (문자열), i (instruction)
- step instrction (함수 내부로 들어감) : [si]
- next instruction (안들어감) : [ni]
- 레지스터 상태보기 : [info reg]
- intel 문법으로 바꾸기 : [set disassembly-flavor intel]
BY 센빠이
'sec > reversing' 카테고리의 다른 글
OEP (0) | 2021.03.06 |
---|---|
디버거, IDA (0) | 2021.03.05 |
intel x86 어셈블리, 스택, 콜링 컨벤션 (0) | 2021.03.03 |
Comments