Releases: Curve/lime
Lime v6.0
🐌 Minor Changes
-
🧪 Update Tests
- MinGW builds are now tested with Wine
- All Windows Targets are now tested
- Added CTest Target
-
📦 Remove some dependencies
-
🔍 Signature Scanner
- Protection now defaults to
read - Updated Conversion
- Protection now defaults to
-
⛓️ Toolchain now static links by default
-
⌨️ Instruction
- Improved
prevaccuracy
- Improved
-
🧹 Code Cleanup
🐛 Bug Fixes
-
🪝 Hooks
- Use
bit_castfor target / source casting
- Use
-
📄 Page Utility
- Properly cast limits
Warning
This update raises the minimum required compiler versions to those that implement P2210R2
Lime v5.0
🍵 New Features
-
🪝 Hooks
- Full rework, add support for more relocations
-
🔎 Instruction / Address Utility
- [🧨 BREAKING] Remove implicit conversion operators
-
🔎 Instruction Utility
- Add
absolute() - Allow to specify RIP for
follow()
- Add
🐌 Minor Changes
- 🧪 Update Tests
- 📦 Bump Dependencies
🐛 Bug Fixes
-
🪝 Hooks
- Numerous fixes for relocations and x86 (!)
- Destructor on invalid state
- Require Target-Page to be at least readable
-
📄 Page Utility
- Nearby Allocation on x86 (!)
Lime v4.0
Lime v3.1
Lime v3.0
🍵 New Features
-
🌎 Proxy
- Use
lime::module - Move into
lime::proxynamespace [🧨 BREAKING]
- Use
-
📦 Module
- (Windows) Calculate total amount of loaded modules instead of relying on large upper limit
-
📄 Page
- Always return latter page when two pages with overlapping address-space exist
-
✍️ General
- More wide-spread usage of
std::string_view
- More wide-spread usage of
-
🧪 Test-Suite
- Add more test-cases
🐛 Bug Fixes
- 🔍 Instruction
prev()now correctly determines the previous instruction
Lime v2.4
Lime v2.3
🍵New Features
- Add proxy dll generation helper for MinGW
-
Requires the user to specify a file "exports":
symbol_to_export=Ordinal another_symbol_to_exportWhich can then be used to generate headers & definition files:
lime_mingw_generate_proxy(${PROJECT_NAME} "<path/to/exports/file>")
To setup the proxy functions include
<exports.hpp>and calllime::setup_proxy(path_to_original_dll);[!NOTE]
When working with c strings you might need to explicitly specify the char type to be used, i.e.lime::setup_proxy<char>(...)
-
🐛 Bug Fixes
- Link required libraries on Windows
- Windows/MinGW detection in entry-point
🗞️ Minor Changes
- Code Refactor
- Use Boost::ut over Catch2
Lime v2.2
Lime v2.1
Lime v2.0
Warning
This release bumps the minimum required C++ version to 20.
If you require support for C++17 please checkout thelegacybranch.
🚀 New Features
-
🪝 Hooks
- Support for Lambdas as Detour-Targets
-
🔎 Instruction / Address Utility
- [🧨 BREAKING]
from()will now check if the memory address is at least readable- and in case of
lime::instructionalso check if it is a valid instruction
- and in case of
- [🧨 BREAKING]
-
🔎 Instruction Utility
immediates()anddisplacement()will now return more detailed information
ℹ️ Other Changes
- ♻️ Merge certain utilities
- [🧨 BREAKING] Memory Protection Utilities were merged into
lime::page - [🧨 BREAKING] Read / Write Utilities were merged into
lime::address
- [🧨 BREAKING] Memory Protection Utilities were merged into
🗄️ Removals
- ⌨️ The Keyboard utility has been removed completely
- 🖥️ The Console Utility has also been removed