DLL 등을 리버싱하다보면 함수가 5개의 NOP 코드와 함께 MOV EDI,EDI로 시작되는데, 이 코드는 핫패칭을 위해 존재하는 코드이다.
핫 패칭은 필요한 코드를 시스템 재부팅 없이 즉각 메모리에 적용할 수 있는 기술로써,
mov EDI,EDI에 앞의 5바이트 NOP 코드를 가리키도록 short JMP 명령을 패치하고, 5바이트 NOP 코드에 실제 long jmp 명령을 넣을 수 있게 MS에서 추가로 삽입한 코드이다.
※5바이트만 있으면 32비트 메모리 주소의 어디든지 jmp가 가능하다.
이렇게 핫 패칭을 사용하게되면, jmp 코드가 실제 코드를 덮어쓸 염려 없이 안전하게 후킹이 가능하다.
반응형
'악성코드 분석 > 리버싱 팁' 카테고리의 다른 글
PE 구조 (0) | 2010.12.09 |
---|---|
어셈블리 코드 해석 (0) | 2010.12.01 |