티스토리 뷰
728x90
반응형
[Reversing] CreateProcessInternalW()
Process Hollowing 기법을 이용하는 Lokibot 분석 시 궁금하여 CreateProcessInternalW()에 대해 메모해본다.
아래 표는 CreateProcess()의 내부함수를 나열하였으며, 후킹하거나 행위를 숨기기 위해 내부 함수를 사용하는 경우가 있다.
kernel32.CreateProcessW kernel32.CreateProcessInternalW ntdll.ZwCreateUserProcess //프로세스 생성됨(Suspend 상태) ntdll.ZwResumeThread //메인 스레드 Resume(프로세스가 실행) |
(표 - 1)
CreateProcessInternalW()의 내부 함수를 들어가본다.
(그림 - 1)
쭉 진행하다가 보면 ZwCreateUserProcess()을 만나게 되는데 위 표의 주석과 같이 프로세스를 생성하되 Suspend 상태로 프로세스를 생성하게 된다.
호출하기전 해당 인자를 보게 되면 2번째 스택을 살펴보면 두번째 인자에 12F550 값이 있는 걸 확인 할 수 있다.
해당 값의 주소로 메모리를 찾아가게 되면 0x192196를 확인 할 수 있는데 메모리 주소를 살펴보자.
(그림 - 2)
0x192196 메모리 주소를 살펴보면 (그림 - 3)와 같이 문자열이 보이게 되는데 해당 프로세스를 나타내는 걸 알 수 있다.
(그림 - 3)
(그림 - 4)을 살펴보면 해당 함수 호출 전, 후를 나타내는 그림으로 Suspend 상태로 프로세스가 생성되는 걸 확인 할 수 있다.
(그림 - 4)
728x90
반응형
'Reversing > ETC' 카테고리의 다른 글
[Reversing] Bypassing Windows Security_Register (0) | 2020.03.06 |
---|---|
[Reversing] 전역 변수, 지역 변수_어셈블리어 (0) | 2020.02.20 |
[Reversing] Crypto-Ransomware (0) | 2020.01.17 |
[Reversing] Zw함수의 접두사의 의미 (0) | 2020.01.13 |
[Reversing] RTF, OLE, Open XML (0) | 2019.12.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
250x250