미친해커

[Reversing] DLL Injection Step 0 본문

Reversing/DLL Injection

[Reversing] DLL Injection Step 0

미친해커 2022. 1. 18. 11:06
반응형

DLL Injection 이란 다른 프로세스에 DLL을 강제로 로드시키는 기술을 말한다.

 

CreateRemoteThread function (processthreadsapi.h) - Win32 apps

Creates a thread that runs in the virtual address space of another process.

docs.microsoft.com

 

LoadLibraryA function (libloaderapi.h) - Win32 apps

Loads the specified module into the address space of the calling process.

docs.microsoft.com

 

LoadLibraryW function (libloaderapi.h) - Win32 apps

Loads the specified module into the address space of the calling process.

docs.microsoft.com

 

Windows API 중 CreateRemoteThread 라는 API 함수가 존재한다. 해당 함수는 다른 프로세스에 쓰레드를 생성시킬 수 있으며 하나의 인자를 포인터로 전달할 수 있다. 그리고 LoadLibrary 라는 API 함수가 존재한다. 해당 함수는 현재 프로세스에 특정 DLL을 로드하는 함수이다. 이때 인자로 로드시킬 DLL의 경로를 받게된다.

 

CreateRemoteThread API 함수와 LoadLibrary API 함수를 이용해 특정 프로세스에 DLL을 로드시킬 수 있게 된다.

  1. 타겟 프로세스에 로드시킬 DLL의 경로를 작성한다.
  2. CreateRemoteThread 함수를 호출한다.
    1. 생성되는 쓰레드의 첫번째 인자로 DLL의 경로가 적혀있는 주소를 전달한다.
  3. 타겟 프로세스에 내에서 LoadLibrary 함수가 호출되면서 DLL이 로드된다.
반응형

'Reversing > DLL Injection' 카테고리의 다른 글

[Reversing] DLL Injection Step 3  (0) 2022.01.18
[Reversing] DLL Injection Step 2  (0) 2022.01.18
[Reversing] DLL Injection Step 1  (0) 2022.01.18
Comments