반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- arudino
- hacking
- 바이트 오더
- HackCTF
- pwnable
- packet capture
- Windows Kernel Driver
- apphelp.dll
- IAT Hooking
- vcruntime.dll
- 시스템해킹
- 윈도우 커널
- 해킹
- 윈도우 커널 드라이버
- 포너블
- Windows
- windows kernel debugging
- Windows Kernel
- vcruntime140.dll
- pcap packet capture
- 네트워크 바이트 오더
- Windows Kernel Debug
- pcap packet
- C언어 패킷캡쳐
- 개발하기
- 윈도우 커널 디버깅
- Msvcrt.dll
- Network Byte Order
- ucrtbase.dll
- 개발 환경 준비
Archives
- Today
- Total
미친해커
[C] Remote libloaderapi.h 는 무엇인가... 본문
반응형
libloaderapi.h
Remote liblaoderapi.h 를 설명하기 전에 libloaderapi.h가 무엇인지 알아야한다. 아래 링크는 MSDN 공식 설명이다.
간단하게 설명해서 마이크로소프트의 libloaderapi.h 파일은
와 관련된 프로그래밍 인터페이스(API)가 정의되어 있다. 이 중 시스템 서비스에 해당하는 함수들은 다음과 같다.
libloaderapi.h의 시스템 서비스 함수
- AddDllDirectory
- DisableThreadLibraryCalls
- FreeLibrary
- FreeLibraryAndExitThread
- GetModuleFileNameA
- GetModuleFileNameW
- GetModuleHandleA
- GetModuleHandleExA
- GetModuleHandleExW
- GetModuleHandleW
- GetProcAddress
- LoadLibraryA
- LoadLibraryExA
- LoadLibraryExW
- LoadLibraryW
- RemoveDllDirectory
- SetDefaultDllDirectories
위 함수들 중 대부분의 함수들은 현재 프로세스의 DLL과 관련되어 있는 함수들이다. 예를 들어 GetModuleHandleA는 로드된 DLL들 중 특정 DLL의 HMODULE을 반환하는 함수이다. 하지만 여기있는 모든 함수들은 현재 프로세스(해당 함수를 호출하는 프로세스)를 대상으로 동작하는 함수들이다.
필자는 여기서 다른 프로세스에 로드되어 있는 DLL들의 정보를 가져오고 싶었다. 물론 해당 동작을 해주는 함수들이 공식적으로 존재하지만 함수들의 동작방식이나 호출 방법 등이 마음에 들지 않아서 위의 몇몇 함수들을 직접 Remote 버전 즉 다른 프로세스를 대상으로 같은 기능을 하는 함수들을 구현하기로 결정했다.
Rlibloaderapi.h (Remote libloaderapi.h)
Rmote 버전이 구현된 libloaderapi.h의 시스템 서비스 함수
- GetModuleHandleA -> GetRemoteModuleHandleA
- GetModuleHandleW -> GetRemoteModuleHandleW
- GetModuleFileNameA -> GetRemoteModuleFileNameA
- GetModuleFileNameW -> GetRemoteModuleFileNameW
- GetProcAddress -> GetRemoteProcAddress
그 외 구현한 함수
- RtlGetCurrentPeb -> GetRemotePeb
- GetModuleBaseNameA -> GetRemoteModuleBaseNameA
- GetModuleBaseNameW -> GetRemoteModuleBaseNameW
해당 카테고리에서는 이렇게 새롭게 구현한 함수들의 사용 예시를 올릴 예정이다.
반응형
'C > Remote libloaderapi.h' 카테고리의 다른 글
[C] Rlibloaderapi.h - GetRemoteModuleFileName (0) | 2022.02.17 |
---|---|
[C] Rlibloaderapi.h - GetRemoteProcAddress (0) | 2022.02.17 |
[C] Rlibloaderapi.h - GetModuleHandle (0) | 2022.02.17 |
[C] Rlibloaderapi.h - GetRemotePeb (0) | 2022.02.17 |
Comments