| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Fix compatibility with CMake 4.0 by bumping policy_max in cmake_minimum_required to 3.10
|
|/ |
|
|\
| |
| | |
Add some contributors
|
| | |
|
|\ \
| |/
|/| |
Add missing check that section index in get_image_section() is valid
|
|/
|
|
| |
Number is stored in NumberOfRvaAndSizes and it may be less than IMAGE_NUMBEROF_DIRECTORY_ENTRIES.
|
|\
| |
| | |
Cleanup README and add CODEOWNERS file
|
|/ |
|
|\
| |
| | |
Fix compilation with older SDK and older MSVC
|
| |
| |
| |
| |
| | |
First NT SDK available in the first 32-bit MSVC NT compiler does not
provide some defines. Add them for compatibility.
|
| |
| |
| |
| |
| | |
Old pre-4.0 MSVC does not support _ReturnAddress() intrinsic. Provide for
it simple implementation via inline assembly.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not use SIZE_T which is not defined in older SDK. There is only size_t
type, so use it instead.
Do not use IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR which is not defined in
older SDK. Use IMAGE_NUMBEROF_DIRECTORY_ENTRIES macro for checking if
directory index is valid. In all SDKs is DataDirectory[] array size defined
from IMAGE_NUMBEROF_DIRECTORY_ENTRIES macro.
Cast members in IMAGE_EXPORT_DIRECTORY and IMAGE_DIRECTORY_ENTRY_IMPORT to
DWORD as in older SDK they are defined as PDWORD and compiler throws error
'cannot add two pointers'.
|
|\
| |
| | |
Add Windows ARM64 support
|
|/ |
|
|\
| |
| | |
Fix CMake include directive when using wrappers like meson.
|
|/ |
|
|\
| |
| | |
Replace magic numbers by sdk macros in get_image_section()
|
|/ |
|
|\
| |
| | |
Prefer usage of thread-safe function SetThreadErrorMode() instead of process-global function SetErrorMode()
|
| |
| |
| |
| |
| |
| |
| | |
process-global function SetErrorMode()
Use GetProcAddress() wrapper as SetThreadErrorMode() is not available on
older Windows versions.
|
|/
|
|
|
|
| |
‘FARPROC’
warning: cast between incompatible function types from ‘FARPROC’ {aka ‘long long int (*)()’} to ‘BOOL (*)(DWORD, const CHAR *, struct HINSTANCE__ **)’ {aka ‘int (*)(long unsigned int, const char *, struct HINSTANCE__ **)’} [-Wcast-function-type]
|
|\
| |
| | |
cmake: use CROSSCOMPILING_EMULATOR
|
| | |
|
|\ \
| |/
|/| |
CMake: Bump version
|
|/
|
|
| |
Silents warnings, cmake 3.2 is available in distros since many years
|
|\
| |
| | |
dladdr: const void *addr
|
|/
|
|
|
| |
on unix the addr argument seems to be const
fix that for consistency
|
|\
| |
| | |
Various fixes
|
| |
| |
| |
| |
| |
| | |
Visual Studio 6.0 does not support __declspec(noinline) and throw error.
Add checks for compilers which support noinline to prevent compile errors.
|
| |
| |
| |
| |
| |
| | |
If compiling with _WIN32_WINNT target prior 0x0500 then SDK does not define
ULONG_PTR type. Such systems are only 32bit so define it explicitly to
32bit type ULONG.
|
| |
| |
| |
| | |
'ULONG_PTR' to 'char', possible loss of data
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This function implements calling GetModuleHandleExA() with correct flags to
retrieve hModule from passed address.
To allow compilation also with older compilers and environments (like WDK)
with any _WIN32_WINNT value, retrieve pointer to this function via
GetProcAddress(). And as a fallback implementation use old code via
VirtualQuery() which was there prior commit 8ec5ffef2eca.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Call SetErrorMode(SEM_FAILCRITICALERRORS) prior opening Psapi.dll library
to avoid GUI error messages.
Close Psapi.dll library via FreeLibrary() if symbol was not retrieved to
prevent possible memory leaks.
Try to get K32EnumProcessModules symbol from Kernel32.dll library as it is
preferred way how to call EnumProcessModules() on Windows 7 and newer
versions.
If retrieving EnumProcessModules symbol failed with both methods then do
not try it again on next MyEnumProcessModules() function call.
|
| |
| |
| |
| |
| |
| | |
There is no need for propagating internal errors via SetLastError() and
GetLastError() calls. Just use additional argument for save_err_str()
function. Also dlfcn API is POSIX and does not use GetLastError().
|
| | |
|
|/ |
|
|\
| |
| | |
dladdr() - Retrieve symbol name and address from export table
|
| |
| |
| |
| | |
is_valid_address() already rejects NULL addresses, so there is no need to check address for NULL.
|
| |
| |
| |
| |
| |
| | |
It is not required as import table can use only symbols which are exported
and therefore are in export table. So if symbol is not found in export
table it cannot be in import table.
|
|/
|
|
|
|
| |
export and import tables
dladdr tests for Windows now should always pass like on other systems.
|
|\
| |
| | |
Add function dladdr()
|
| | |
|
| |
| |
| |
| | |
This is used to obtain test result references.
|
|/ |
|
|\
| |
| | |
Add cmake build support to travis CI
|
|/ |
|
|\
| |
| | |
Rewrite function save_err_ptr_str() to not use sprintf()
|
|/
|
|
|
|
|
|
| |
sprintf() is marked by MSVC as unsafe and suppressing compile warning does
not work. It is still generated on AppVeyor. So rewrite code for converting
pointer number to string via open coded for-loop and do not use unsafe
sprintf() function anymore. New code correctly handles both 32bit and 64bit
variants and does not use any #ifdef _MSC_VER anymore.
|
|\
| |
| | |
Add _CRT_SECURE_NO_WARNINGS for test.c to disable MSVC deprecation warnings
|
|/ |
|