From 130227e39909d9ba078b84406fff3ea48caa887f Mon Sep 17 00:00:00 2001 From: Daan Leijen Date: Thu, 19 Dec 2024 11:10:17 -0800 Subject: [PATCH] update redirection modules to v1.3 --- bin/mimalloc-redirect-arm64.dll | Bin 55296 -> 55296 bytes bin/mimalloc-redirect-arm64ec.dll | Bin 100864 -> 96768 bytes bin/mimalloc-redirect-arm64ec.lib | Bin 3308 -> 3308 bytes bin/mimalloc-redirect.dll | Bin 54272 -> 53760 bytes bin/mimalloc-redirect32.dll | Bin 35840 -> 35328 bytes bin/readme.md | 55 ++++++++++++++++++++++-------- 6 files changed, 41 insertions(+), 14 deletions(-) diff --git a/bin/mimalloc-redirect-arm64.dll b/bin/mimalloc-redirect-arm64.dll index 98268796c03f790362d628c25ab684a96a6b4fd4..455f8394df8e935ddda80feb9acac3fbe2c9615e 100644 GIT binary patch delta 3442 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 delta 13100 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 diff --git a/bin/mimalloc-redirect-arm64ec.lib b/bin/mimalloc-redirect-arm64ec.lib index 1c7c368fc6ae255df671dd2ca96ae9e66ef76659..eb724d7405ec7783206578377aab5158d39c11b8 100644 GIT binary patch delta 64 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 U!}>1mpgxv%c{BC1=F5-$A16z~0ssI2 delta 7230 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 LP+-89B%k~*LBs2s delta 5732 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 diff --git a/bin/readme.md b/bin/readme.md index d133eea2..259d74d6 100644 --- a/bin/readme.md +++ b/bin/readme.md @@ -5,24 +5,26 @@ is robust and has the particular advantage to be able to redirect all malloc/fre the (dynamic) C runtime allocator, including those from other DLL's or libraries. As it intercepts all allocation calls on a low level, it can be used reliably on large programs that include other 3rd party components. -There are four requirements to make the overriding work robustly: +There are four requirements to make the overriding work well: 1. Use the C-runtime library as a DLL (using the `/MD` or `/MDd` switch). -2. Link your program explicitly with `mimalloc-override.dll` library. - To ensure the `mimalloc-override.dll` is loaded at run-time it is easiest to insert some - call to the mimalloc API in the `main` function, like `mi_version()` - (or use the `/INCLUDE:mi_version` switch on the linker, or - use `#pragma comment(linker, "/include:mi_version")` in some source file). - See the `mimalloc-override-test` project for an example on how to use this. +2. Link your program explicitly with the `mimalloc-override.lib` export library for + the `mimalloc-override.dll` -- which contains all mimalloc functionality. + To ensure the `mimalloc-override.dll` is actually loaded at run-time it is easiest to insert some + call to the mimalloc API in the `main` function, like `mi_version()` + (or use the `/include:mi_version` switch on the linker, or + use `#pragma comment(linker, "/include:mi_version")` in some source file). + See the `mimalloc-override-test` project for an example on how to use this. -3. The `mimalloc-redirect.dll` (x64) (or `mimalloc-redirect32.dll` (x86), or `mimalloc-redirect-arm64.dll` (arm64)) must be put - in the same folder as the main `mimalloc-override.dll` at runtime (as it is a dependency of that DLL). - The redirection DLL ensures that all calls to the C runtime malloc API get redirected to - mimalloc functions (which reside in `mimalloc-override.dll`). +3. The `mimalloc-redirect.dll` must be put in the same folder as the main + `mimalloc-override.dll` at runtime (as it is a dependency of that DLL). + The redirection DLL ensures that all calls to the C runtime malloc API get + redirected to mimalloc functions (which reside in `mimalloc-override.dll`). 4. Ensure the `mimalloc-override.dll` comes as early as possible in the import list of the final executable (so it can intercept all potential allocations). + You can use `minject -l ` to check this if needed. For best performance on Windows with C++, it is also recommended to also override the `new`/`delete` operations (by including @@ -32,17 +34,39 @@ a single(!) source file in your project). The environment variable `MIMALLOC_DISABLE_REDIRECT=1` can be used to disable dynamic overriding at run-time. Use `MIMALLOC_VERBOSE=1` to check if mimalloc was successfully redirected. -## Minject +### Other Platforms + +You always link with `mimalloc-override.dll` but for different platforms you may +need a specific `mimalloc-redirect.dll`: + +- __x64__: `mimalloc-redirect.dll`. +- __x86__: `mimalloc-redirect32.dll`. Use for older 32-bit Windows programs. +- __arm64__: `mimalloc-redirect-arm64.dll`. Use for native Windows arm64 programs. +- __arm64ec__: `mimalloc-redirect-arm64ec.dll`. The [arm64ec] ABI is "emulation compatible" + mode on Windows arm64. Unfortunately we cannot run x64 code emulated on Windows arm64 with + the x64 mimalloc override directly (since the C runtime always uses `arm64ec`). Instead: + 1. Build the program as normal for x64 and link as normal with the x64 + `mimalloc-override.lib` export library. + 2. Now separately build `mimalloc-override.dll` in `arm64ec` mode and _overwrite_ your + previous (x64) `mimalloc-override.dll` -- the loader can handle the mix of arm64ec + and x64 code. Now use `mimalloc-redirect-arm64ec.dll` in this case to match your + arm64ec `mimalloc-override.dll`. The main program stays as is and can be fully x64 + or contain more arm64ec modules. At runtime, the arm64ec `mimalloc-override.dll` will + run with native arm64 instructions while the rest of the program runs emulated x64. + +[arm64ec]: https://learn.microsoft.com/en-us/windows/arm/arm64ec + + +### Minject We cannot always re-link an executable with `mimalloc-override.dll`, and similarly, we cannot always -ensure the the DLL comes first in the import table of the final executable. +ensure that the DLL comes first in the import table of the final executable. In many cases though we can patch existing executables without any recompilation if they are linked with the dynamic C runtime (`ucrtbase.dll`) -- just put the `mimalloc-override.dll` into the import table (and put `mimalloc-redirect.dll` in the same folder) Such patching can be done for example with [CFF Explorer](https://ntcore.com/?page_id=388). The `minject` program can also do this from the command line -(or `minject32` for 32-bit PE files, or `minject-arm64` on arm64 Windows). Use `minject --help` for options: ``` @@ -72,3 +96,6 @@ examples: > minject --list myprogram.exe > minject --force --inplace myprogram.exe ``` + +For x86 32-bit binaries, use `minject32`, and for arm64 binaries use `minject-arm64`. +