미친해커

[C] Remote libloaderapi.h 는 무엇인가... 본문

C/Remote libloaderapi.h

[C] Remote libloaderapi.h 는 무엇인가...

미친해커 2022. 2. 17. 12:23
반응형

libloaderapi.h

Remote liblaoderapi.h 를 설명하기 전에 libloaderapi.h가 무엇인지 알아야한다. 아래 링크는 MSDN 공식 설명이다.

 

Libloaderapi.h header - Win32 apps

Table of contents Article 11/23/2021 3 minutes to read Is this page helpful? In this article --> This header is used by multiple technologies. For more information, see: libloaderapi.h contains the following programming interfaces: Functions   AddDllDirec

docs.microsoft.com

간단하게 설명해서 마이크로소프트의 libloaderapi.h 파일은

와 관련된 프로그래밍 인터페이스(API)가 정의되어 있다. 이 중 시스템 서비스에 해당하는 함수들은 다음과 같다.

libloaderapi.h의 시스템 서비스 함수

위 함수들 중 대부분의 함수들은 현재 프로세스의 DLL과 관련되어 있는 함수들이다. 예를 들어 GetModuleHandleA는 로드된 DLL들 중 특정 DLL의 HMODULE을 반환하는 함수이다. 하지만 여기있는 모든 함수들은 현재 프로세스(해당 함수를 호출하는 프로세스)를 대상으로 동작하는 함수들이다.

 

필자는 여기서 다른 프로세스에 로드되어 있는 DLL들의 정보를 가져오고 싶었다. 물론 해당 동작을 해주는 함수들이 공식적으로 존재하지만 함수들의 동작방식이나 호출 방법 등이 마음에 들지 않아서 위의 몇몇 함수들을 직접 Remote 버전 즉 다른 프로세스를 대상으로 같은 기능을 하는 함수들을 구현하기로 결정했다.

Rlibloaderapi.h (Remote libloaderapi.h)

 

GitHub - jungjin0003/Remote-libloaderapi: This library is a remote version of Windows API libloaderapi.h

This library is a remote version of Windows API libloaderapi.h - GitHub - jungjin0003/Remote-libloaderapi: This library is a remote version of Windows API libloaderapi.h

github.com

Rmote 버전이 구현된 libloaderapi.h의 시스템 서비스 함수

  • GetModuleHandleA -> GetRemoteModuleHandleA
  • GetModuleHandleW -> GetRemoteModuleHandleW
  • GetModuleFileNameA -> GetRemoteModuleFileNameA
  • GetModuleFileNameW -> GetRemoteModuleFileNameW
  • GetProcAddress -> GetRemoteProcAddress

그 외 구현한 함수

  • RtlGetCurrentPeb -> GetRemotePeb
  • GetModuleBaseNameA -> GetRemoteModuleBaseNameA
  • GetModuleBaseNameW -> GetRemoteModuleBaseNameW

해당 카테고리에서는 이렇게 새롭게 구현한 함수들의 사용 예시를 올릴 예정이다.

반응형
Comments