#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "dlfcn.h"
Go to the source code of this file.
|
static local_object * | local_search (HMODULE hModule) |
|
static BOOL | local_add (HMODULE hModule) |
|
static void | local_rem (HMODULE hModule) |
|
static void | save_err_str (const char *str, DWORD dwMessageId) |
|
static void | save_err_ptr_str (const void *ptr, DWORD dwMessageId) |
|
static UINT | MySetErrorMode (UINT uMode) |
|
static HMODULE | MyGetModuleHandleFromAddress (const void *addr) |
|
static BOOL | MyEnumProcessModules (HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded) |
|
DLFCN_EXPORT void * | dlopen (const char *file, int mode) |
|
DLFCN_EXPORT int | dlclose (void *handle) |
|
DLFCN_NOINLINE DLFCN_EXPORT void * | dlsym (void *handle, const char *name) |
|
DLFCN_EXPORT char * | dlerror (void) |
|
static BOOL | get_image_section (HMODULE module, int index, void **ptr, DWORD *size) |
|
static const char * | get_export_symbol_name (HMODULE module, IMAGE_EXPORT_DIRECTORY *ied, const void *addr, void **func_address) |
|
static BOOL | is_valid_address (const void *addr) |
|
static BOOL | is_import_thunk (const void *addr) |
|
static void * | get_address_from_import_address_table (void *iat, DWORD iat_size, const void *addr) |
|
static BOOL | fill_info (const void *addr, Dl_info *info) |
|
DLFCN_EXPORT int | dladdr (const void *addr, Dl_info *info) |
|
◆ _ReturnAddress
#define _ReturnAddress |
( |
| ) |
(__builtin_extract_return_addr(__builtin_return_address(0))) |
◆ DLFCN_NOINLINE
◆ GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
#define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x4 |
◆ GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT
#define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 0x2 |
◆ local_object
◆ ULONG_PTR
◆ dladdr()
◆ dlclose()
◆ dlerror()
◆ dlopen()
◆ dlsym()
◆ fill_info()
static BOOL fill_info |
( |
const void * |
addr, |
|
|
Dl_info * |
info |
|
) |
| |
|
static |
◆ get_address_from_import_address_table()
static void* get_address_from_import_address_table |
( |
void * |
iat, |
|
|
DWORD |
iat_size, |
|
|
const void * |
addr |
|
) |
| |
|
static |
◆ get_export_symbol_name()
static const char* get_export_symbol_name |
( |
HMODULE |
module, |
|
|
IMAGE_EXPORT_DIRECTORY * |
ied, |
|
|
const void * |
addr, |
|
|
void ** |
func_address |
|
) |
| |
|
static |
◆ get_image_section()
static BOOL get_image_section |
( |
HMODULE |
module, |
|
|
int |
index, |
|
|
void ** |
ptr, |
|
|
DWORD * |
size |
|
) |
| |
|
static |
◆ is_import_thunk()
static BOOL is_import_thunk |
( |
const void * |
addr | ) |
|
|
static |
◆ is_valid_address()
static BOOL is_valid_address |
( |
const void * |
addr | ) |
|
|
static |
◆ local_add()
static BOOL local_add |
( |
HMODULE |
hModule | ) |
|
|
static |
◆ local_rem()
static void local_rem |
( |
HMODULE |
hModule | ) |
|
|
static |
◆ local_search()
◆ MyEnumProcessModules()
static BOOL MyEnumProcessModules |
( |
HANDLE |
hProcess, |
|
|
HMODULE * |
lphModule, |
|
|
DWORD |
cb, |
|
|
LPDWORD |
lpcbNeeded |
|
) |
| |
|
static |
◆ MyGetModuleHandleFromAddress()
static HMODULE MyGetModuleHandleFromAddress |
( |
const void * |
addr | ) |
|
|
static |
◆ MySetErrorMode()
static UINT MySetErrorMode |
( |
UINT |
uMode | ) |
|
|
static |
◆ save_err_ptr_str()
static void save_err_ptr_str |
( |
const void * |
ptr, |
|
|
DWORD |
dwMessageId |
|
) |
| |
|
static |
◆ save_err_str()
static void save_err_str |
( |
const char * |
str, |
|
|
DWORD |
dwMessageId |
|
) |
| |
|
static |
◆ error_buffer
◆ error_occurred
◆ first_object
◆ module_filename
char module_filename[2 *MAX_PATH] |
|
static |