Skip to content

Releases: BasedInc/libhat

v0.11.1

Choose a tag to compare

@ZeroMemes ZeroMemes released this 18 Jul 23:16
bf17bf1

What's Changed

  • Enabled LIBHAT_BUILD_PIC by default
  • Fixed some CMAKE_INSTALL_* vars using GNUInstallDirs
  • Added CPack configuration
  • Created actions workflow for building releases

Full Changelog: v0.11.0...v0.11.1

v0.11.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 16 Jul 23:52
b58797a

What's Changed

  • Vectorized scanning for ARM Neon by @ZeroMemes and @Imrglop in #40
  • Support macOS by @ZeroMemes and @Imrglop in #41
  • Process Modules V2 by @ZeroMemes in #42
  • Support module member functions in C bindings by @ZeroMemes in #43
  • C API hardening by @ZeroMemes in #45
  • Python Bindings by @ZeroMemes in #44
  • Extended C API to cover all of libhat/process.hpp
  • Added debug mode optimizations for find_pattern implementations
  • Fixed incorrect score values being returned, reducing theoretical performance with scan hints
  • Improvements to testing coverage

Architecture Support

  • Added Neon pattern scanner implementation, supporting ARM and AArch64

Platform Support

  • Completed support for all platform-dependent APIs on Linux, Android, and macOS

Build Configuration

  • Added CMake option for compiling with warnings as errors: LIBHAT_WARNINGS_AS_ERRORS
  • Added CMake option for compiling with position independent code: LIBHAT_BUILD_PIC
  • Changed SSE/AVX512 CMake options to no longer be inverted: LIBHAT_DISABLE_* -> LIBHAT_FEATURE_*
  • Replaced translation unit specific compiler flags with function-targeted attributes
  • Enabled hidden symbol visibility by default
  • Updated CMake install:
    • Added headers
    • Added libhat::libhat_c
    • Added libhat::libhat_module
    • Added package config file
    • Added package version file
  • Removed redundant lib prefix:
    • liblibhat.a -> libhat.a
    • liblibhat_c.a -> libhat_c.a
    • liblibhat_c.so -> libhat_c.so
    • liblibhat_c.dylib -> libhat_c.dylib

Full Changelog: v0.10.0...v0.11.0

0.10.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 12 Jun 22:36
292a57a

What's Changed

  • Removed UB from scan_result_base::rel (it can now be called without checking has_result)
  • Use std::memchr on non-Microsoft STL implementations for single byte X1 scanning
  • Support pair based scanning when using byte alignment
  • Fixed alignment not being respected by libhat_find_pattern_mod
  • Fixed unaligned returns being returned for signatures that have leading wildcards
  • Relaxed signature requirements to just require at least one fully masked byte

Windows Support

  • Fixed hat::process::get_module not returning the process module for an empty name

Linux Support

  • Fixed bugs in hat::process::is_(readable/writable/executable) implementation
  • Implement hat::process::get_module_data

Full Changelog: v0.9.0...v0.10.0

0.9.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 11 Nov 01:42
db5531f

What's Changed

  • Overload |= and &= for hat::scan_hint
  • Fix infinite loop when passing signatures containing leading wildcards to find_all_pattern
  • Add missing includes for some implementations

Full Changelog: v0.8.0...v0.9.0

0.8.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 04 Nov 22:47
ea035cd

What's Changed

  • ~15% improvement to throughput in scan_hint::x86_64 test
  • Enforce signature invariants in bytes_to_signature and string_to_signature
  • Fix string_to_signature constexpr support

Full Changelog: v0.7.0...v0.8.0

0.7.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 29 Oct 19:57
8e56752

What's Changed

  • Add UDL for signature_view by @CrackedMatter in #33
  • Fix falsely documented function usage by @h-arvs in #34
  • Support bitmasks in signatures by @ZeroMemes in #35
  • Fix argument forwarding to in-place viewed type with allocator
  • fixed_string implicit conversion to basic_(c)string_view

New Contributors

Full Changelog: v0.6.0...v0.7.0

0.6.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 01 Jul 22:57
6a765dd

What's Changed

  • Add module interface by @CrackedMatter in #29
  • Improve the compilation time of compile_signature by @brampedgex in #32
  • Return fixed_signature from object_to_signature
  • Conditionally return signature if span has a dynamic extent, else fixed_signature, in bytes_to_signature

New Contributors

Full Changelog: v0.5.0...v0.6.0

0.5.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 25 Apr 23:36
5c4a7b7

What's Changed

  • Fix typedefs for c bingings by @ectrc in #26
  • Copy-on-write wrapper by @brampedgex in #28
  • Added hat::process::is_executable
  • Added hat::div as an alternative to std::div
  • Added hat::basic_cstring_view, a view type for null terminated strings
  • Added hat::process::module::for_each_segment to iterate module segments
  • Changed include headers to use snake case
  • Fixed noexcept specifiers on hat::result
  • Improved Linux support

New Contributors

Full Changelog: v0.4.0...v0.5.0

0.4.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 16 Jan 21:21
7375873
  • Added more find_pattern overloads for <ranges>
  • Added libhat::libhat alias for the libhat CMake target
  • Changed scan_alignment parameter in find_pattern overloads to be passed as a function parameter instead of a non-type template parameter
  • Fixed potentially unsupported instructions being generated in unintended functions when using /GL (MSVC)

0.3.0

Choose a tag to compare

@ZeroMemes ZeroMemes released this 09 Oct 04:56
a3bd74d
  • Added hat::process::is_writable
  • Added page_size to hat::system_info
  • Added Linux implementation of hat::process::get_process_module
  • Fixed constexpr support for scan_result_base::read
  • Fixed undefined behavior in scan_result_base::read