티스토리 뷰
○ BpHook/LogBpHook - 브레이크포인트가 발생할 때 호출된다. BpHook은 디버깅 대상 프로세스를 일시 정지시키지만 LogBpHook은 그렇지 않다.
○ AllExceptHook - 프로세스 내부에서 종류에 상관없이 예외가 발생하기만 하면 호출된다.
○ PostAnalysisHook - 디버거가 로드된 모듈에 대한 분석 작업을 끝냈을 때 이 후킹이 호출된다. 디버거의 분석 작업이 끝난 후에 자동으로 정적 분석 작업을 수행해야 하는 경우에 유용하게 사용할 수 있다. immlib를 이용해 함수와 기본적인 코드 블록을 해석하기 전에 모듈(실행 파일 포함해) 이 먼저 분석돼야 하는 것이 중요하다.
○ AccessViolationHook - 접근 위반이 발생할 때마다 호출된다. 퍼징 작업을 수행하는 동안에 정보를 자동으로 추적하고자 할 때 유용하게 사용될 수 있다.
○ LoadDLLHook/UnloadDLLHook - DLL이 로드되거나 언로드될 때 호출된다.
○ CreateThreadHook/ExitThreadHook - 스레드가 생성되거나 소멸될 때 호출된다.
○ CreateProcessHook/ExitProcessHook - 프로세스가 생성되거나 소멸될 때 호출된다.
○ FastLogHook/STDCALLFastLogHook - 이 후킹 타입은 후킹 코드가 실행되게 만들기 위해 어셈블리 코드를 이용한다. 후킹 코드는 그때의 특정 레지스터 값이나 메모리 주소를 로깅한다. 빈번하게 호출되는 함수를 후킹할 때 유용하게 사용된다.
○ LogBpHook 정의
1 2 3 4 5 6 7 8 9 | from immlib import * class Suspect_Hook( LogBpHook ): def __init__( self ): LogBpHook.__init__( self ) def run( self, regs ): # 후킹이 호출될 때 시행 | cs |
후킹이 호출되면 run() 함수에는 모든 CPU 레지스터의 값이 파라미터로 전달된다. 전달되는 레지스터의 값은 후킹이 호출됐을 때의 값으로, 그 값을 조사하거나 원한다면 변경할 수도 있다.
아래와 같이 regs 변수와 레지스터의 이름을 이용해 원하는 레지스터에 접근할 수 있다.
1 | regs["ESP"] | cs |
* PyCommand 내에 후킹을 정의해 PyCommand를 실행시킬 때마다 호출되게 할수도 있고 Immunity 디버거 디렉토리 내의 PyHooks 디렉토리에 후킹 코드를 위치시켜도 된다. 그러면 Immunity 디버거가 실행될 때마다 해당 후킹이 자동으로 설정된다.
출처 : 파이썬 해킹 프로그래밍
'리버싱 > Immunity Debugger PyCommands 스크립트 정리' 카테고리의 다른 글
Immunity Debugger PyCommands - openfile.py (0) | 2017.02.03 |
---|---|
Immunity Debugger PyCommands - usage.py (0) | 2017.02.03 |
Immunity Debugger PyCommands - list.py (0) | 2017.01.23 |
lena 1-5번 자동화 (0) | 2017.01.23 |
Immunity Debugger PyCommands 정리 readme (0) | 2017.01.23 |
- Total
- Today
- Yesterday
- keylogger
- idapython
- VirusBulletin
- 한글악성코드
- us-cert
- Flybits
- 악성코드
- AMSI
- infostealer
- 멋쟁이사자처럼 4기
- MS-Office
- 출처 : Do it 안드로이드 프로그래밍
- 위협정보공유
- CVE-2018-9375
- 비트코인
- koodous
- Yara
- malware
- 해킹메일
- Kimsuky
- Static Analysis Engine
- cuckoo-sandbox
- Bisonal
- CVE-2018-0798
- Cisco Talos
- .wll
- Servey
- 스피어피싱
- Decoding
- vuln
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |