malware analysis

Process Hollowing 기법

woodonggyu 2018. 8. 5. 17:56

Process Hollowing

: 정상적인 프로세스를 생성하고, 생성한 프로세스에 악성PE 데이터를 삽입하여 실행하는 기법.

 

1. CreateProcess -> dwCreationFlags(CREATE_SUSPENDED(0x0000004))

프로세스 생성 시, CREATE_SUSPENDED 값을 인자로하여 대기 상태의 프로세스를 생성한다.

 

2. GetThreadContext

TheadContext -> Eip 레지스터를 얻어온다. 이후에 Entry Point 를 수정하기 위함.

 

3. ZwUnmapViewOfSection

대기 상태에 머물러 있는 프로세스에서, 정상 코드를 메모리 상에서 할당 해지한다.

 

4. VirtualAlloc, WriteProcessMemory

새로운 코드를 쓰기 위한 메모리 할당 및 코드 쓰기

 

5. setThreadContext

GetThreadContext 함수를 이용해 얻어온 Eip 레지스터 값을 수정하여, 새로운 코드 섹션 지정

 

6. ResumeThread

대기 상태에 머물러있는 프로세스의 실행 재개.