Skip to content

Releases: Smertig/rcmp

v0.2.2

06 May 09:58
Compare
Choose a tag to compare

Full Changelog: v0.2.1...v0.2.2

Nothing interesting, maintenance release.

Change Log

  • 🛠 Cleanup CMake: don't set C++ standard globally; don't build with "warning as errors" mode anymore
  • 🛠 Improve CI: drop legacy clang-5 configuration, update deprecated actions

v0.2.1

26 Mar 16:05
Compare
Choose a tag to compare

Full Changelog: v0.2.0...v0.2.1

This release is mostly about refactoring of rcmp internals with one new feature.

Change Log

  • [x86] Introduce rcmp::hook_function_stateless that doesn't use global state for hooks and thus is more handy.
    • Previously, one had to use unique tags for each hook (or call hook_function with unique lambda type) to ensure global hook state uniqueness. This is no longer required with hook_function_stateless. However, it uses TLS to forward hook state through function calls so is not enabled by default yet.
  • 🛠 Improve CI: use more to run tests: gcc 7-12, clang 5-15, MSVC 2022 for both x86 and x64 toolchains.
  • 🛠 Refactor internals to deal with new customization points

v0.2.0

06 Feb 20:07
Compare
Choose a tag to compare

Full Changelog: v0.1.0...v0.2.0

This is mostly maintenance release.

Change Log

  • Remove rcmp::opcode_length and rcmp::make_raw_hook from public API
  • Add rcmp::hook_indirect_function that allows to hook virtual functions (and more)
  • Add rcmp::with_signature<..> utility, that is used to change calling convention of callable at compile-time
  • Rework and simplify implementation
    • Drop std::function for better inlining
    • Internal state of hook is now trivially constructible, so it doesn't require any additional initialization on program startup and can be used before main()
  • Add rcmp::generic_hook_function as a generic way of function hooking (if you want to customize rcmp behaviour without digging into templates)
  • Move to github actions

Commits

  • do not update replaced function in case of double hook (Smertig)
  • 44e6226: Stop using type-erased holder for hook, check callable concept statically (Smertig)
  • a37bc10: Make address_t ctor constexpr, add asserts (workaround for static initialization order fiasco) (int3)
  • 7f01a4e: Implement rcmp::with_signature for compile-time signature conversions (Smertig)
  • 66c33d0: Fix linkage error in tests (travis, gcc, x86) (Smertig)
  • 10e743b: Simplify implementation of hook_function (Smertig)
  • dcf7e56: Enable thiscall hooking tests on MSVC compiler (Smertig)
  • 4d758a0: Simplify PMF tests (Smertig)
  • 4dccfd9: Implement rcmp::hook_indirect_function (actually a way to hook virtual functions) (Smertig)
  • 72cef84: Rewrite vtable test to prevent devirtualization (gcc) (Smertig)
  • e57098b: Make rcmp::detail::hook_impl generic over hook policy (Smertig)
  • 354e98c: Introduce policy-based rcmp::generic_hook_function (Smertig)
  • eb3d5df: Remove opcode_length and make_raw_hook from public API (Smertig)
  • c6260f4: Move hook policies to separate files (Smertig)
  • ae5a953: Missing include (Smertig)
  • 47ad93d: Bump Catch version: v2.13.1 -> v2.13.10 (Smertig)

v0.1.0

03 Oct 19:53
Compare
Choose a tag to compare

✨ First public release ✨

Check out README for details.