본문 바로가기

malware analysis

Process Hollowing 기법

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

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

'malware analysis' 카테고리의 다른 글

GandCrab v4.3 Ransomware  (0) 2018.08.28
PAC(Proxy Auto-Config)를 이용한 파밍  (0) 2018.08.12
[Malware] BoSSaBot  (0) 2018.05.06
[Malware] TeslaCrypt Analysis  (0) 2016.02.02