티스토리 뷰

Reversing/ETC

[Reversing] CreateProcessInternalW()

정짱 정뚱띵 2020. 2. 11. 16:40

[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)


댓글
공지사항
«   2020/02   »
            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
Total
138,729
Today
2