Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: QBDI/QBDI

QBDI 0.12.1

07 Jan 16:14
v0.12.1
09b2efb

Choose a tag to compare

  • Support for Arm64e on OSX (#310)
  • Fix cross-compiling from windows to android (#315, #316 and #318)
  • Fix broken support of some AArch64 instructions (#313 and #320)

Many thanks to contributors of this release :

QBDI 0.12.0

14 Oct 13:13
v0.12.0
88b0998

Choose a tag to compare

  • Add QBDIPreload implementation for windows (#110, #227 and #277)
  • Experimental support for IOS AArch64 (#300 and #303). This support is experimental and work only on some jailbroken device.
  • Add new user API QBDI::VM::getNbExecBlock and QBDI::VM::reduceCacheTo to control the size of QBDI cache (#277)
  • Add new user API QBDI::VM::getJITInstAnalysis and new analysis QBDI::AnalysisType::ANALYSIS_JIT to provide JIT information (#277)
  • Support legacy instruction JCXZ/JECXZ/JRCXZ on X86 and X86_64 (#289)
  • Add error message when PyQBDI preload fail (#286)
  • Update Frida API (#290, #266 and #282)
  • Update to LLVM19 (#271)
  • Support python 3.13 and 3.14 (#270 and #302)
  • Fix missing header (#292)
  • Fix bugeous initialisation of FTW register on windows (#299)
  • Fix docs typos (#265)
  • Fix immediate representation in disassembly (#295 and #296)
  • Fix wrong number of operand in LLVM::MCInst (#291 and #304)
  • Update template with new name from 0.11.0 (#259)

Many thanks to contributors of this release :

QBDI 0.11.0

17 May 10:50
v0.11.0
24a8c5a

Choose a tag to compare

  • Fix ARM instrumentation for 'mov pc, lr' (#241)
  • Add switchStackAndCall API (#245)
  • Rename QBDI::InstAnalysis::module and QBDI::InstAnalysis::symbol toQBDI::InstAnalysis::moduleName and QBDI::InstAnalysis::symbolName. The same changed applied in C, C++, Python and JS API, but Python and JS API deprecated but still support the previous name.
  • Update LLVM to LLVM17 (#253)
  • Support copy and pickle for GPRState and FPRState in PyQBDI (#247, #248)
  • Support python 3.12 (#247)

QBDI 0.10.0

26 Jan 14:52
v0.10.0
db55fe7

Choose a tag to compare

  • Fix Ubuntu package (#217)
  • Support ARMv7 and AArch64 architecture (#222)
  • Support python 3.11 (#222)
  • Support Frida >= 15.2 (#222 and #223)

Internal update:

  • Move windows CI to Github Actions (#222)
  • Support python build with pyproject.toml (#222)
  • Update LLVM to LLVM15 (#224)
  • Add CI for ARMv7 and AArch64 (#222 and #225)

QBDI 0.9.0

31 Mar 11:25
v0.9.0
e3a5b8e

Choose a tag to compare

  • Change internal log system (#174).
  • Fix templates (#186)
  • Fix Frida-QBDI for Frida 15.0.0 (#192)
  • Change behavior of addInstrumentedModuleFromAddr to work with mmap region (#193)
  • Add Priority to InstCallback API (#194).
  • Support for X86 loop, loope and loopne instructions (#200)
  • Add support for FS and GS segment in X86_64 (#190).
  • Hide LLVM symbols from shared library and QBDIPreload (#205)
  • Support python 3.10 for PyQBDI (#206)
  • Add VMAction SKIP_INST and SKIP_PATCH (#197)
  • Add tutorial for basic block VMEvent (#165)
  • Support C++ lambda with capture. (#207)
  • Fix a bug where some symbols were missing in QBDIPreload (#209)
  • Remove new name of libc in QBDIPreload (#211)
  • Support of some self-modifying code (#212).
  • Add tutorial for ExecBroker VMEvent (#166)
  • Change getVersion out parameter to return version to the form 0xMMmmpp (#214)

Internal update:

  • Add static library licenses in LICENSE.txt (#169)
  • Format code with clang-format and cmake-format (#175)
  • Fix integer overflow in cache optimisation (#168)
  • Refactor build system, add llvm build in main cmake with FetchContent, move all LLVM object in a new LLVMCPU class, split internal class, split state by architecture (#178, #179 and #188)
  • Update LLVM to LLVM 13.0.0, remove zlib dependency (#189, #196)
  • Remove empty Patch not associated to an MCInst (#195)
  • Compile assembly with --noexecstack to have a rw- stack when using QBDI on linux (#201)
  • Use build directory to build the documentation (#213)
  • Use Doxygen 1.9.2 in readthedocs (#214)

QBDI 0.8.0

11 Feb 15:41
e419cc0

Choose a tag to compare

  • Fix android compilation (#126)
  • Fix instrumentation of Pusha and Popa on X86 (#127)
  • Fix getBBMemoryAccess (#128)
  • Refactor ExecBlockManager to work with unaligned instruction on X86 and X86-64 (#129)
  • Drop early support for ARM. The support hasn't been tested since 0.6.2.
  • Rework cmake package export to import X86 and X86_64 version of QBDI in one CMake (#146 and #132)
  • Add QBDI::VM::getCachedInstAnalysis to retrieve an InstAnalysis from an address. The address must be cached in the VM. (#148)
  • Change in InstAnalysis and OperandAnalysis (#153)
  • Add Instrumentation rule callback QBDI_InstrRuleDataCBK and QBDI::InstrRuleDataCBK (#151)
  • Support SIMD MemoryAccess and change :cpp:struct:QBDI::MemoryAccess structure (#154)
  • Add VM Options. (#144)
  • Rework documentation (#156)

Internal update:

  • Update LLVM to LLVM 10.0.1 (#104 and #139)
  • Reduce LLVM library included in QBDI static library and reduce QBDI package size (#139 and #70)
  • Replace GTest by Catch2 (#140)
  • Refactor code and switch to cpp17 (#140 and #155)
  • Use Github Actions to build dev-next package of QBDI (linux, osx and android) and PyQBDI (linux and osx) (#147 and #159)
  • Rewrite frida-qbdi.js and use sphinx-js for frida-QBDI documentation (#146).
    A version of frida greater or equals to 14.0 is needed to run frida-qbdi.js (need support of ES2019).
  • Refactor MemoryAccess Code and add new tests (#154)
  • Handle VMCallback return value (#155)
  • Optimize Context Switch and FPRState restoration (#144)
  • Add commit hash in devel version (#158)

QBDI 0.7.1

27 Feb 14:03
a20653f

Choose a tag to compare

  • Refactor PyQBDI, support python3, PyQBDI without Preload (#67, #121)
  • Remove ncurses dependency (#123)
  • Fix initFPRState (#114)

QBDI 0.7.0

08 Oct 13:18

Choose a tag to compare

  • Add support for the x86 architecture
  • Add new platforms related to Android: android-X86 and android-X86_64
  • Improve MemoryMap structure by adding the module’s full path if available (#62, #71)
  • Create docker images for QBDI (available on DockerHub qbdi/qbdi) (#56)
  • Fix and improve operands analysis involved in memory accesses (#58)

QBDI 0.6.2

19 Oct 19:00

Choose a tag to compare

  • Add support for a public CI (based on Travis and AppVeyor)
  • Fix instruction operands analysis (#57, #59)
  • Add missing MEMORY_READ enum value in Python bindings (#61)
  • Fix cache misbehavior on corner cases (#49, #51)
  • Add missing memory access instructions on x86_64 (#45, #47, #72)
  • Enable asserts in Debug builds (#48)

QBDI 0.6.1

22 Mar 14:16

Choose a tag to compare

Two major bug fixes:

  • Fixing a performance regression with the addCodeAddrCB (#42):
    Since 0.6, this API would trigger a complete cache flush forcing the engine to regenerate
    all the instrumented code after each call. Since this API is used inside VM:run(), this
    had the effect of completely canceling precaching optimization where used.
  • Fixing support for AVX host without AVX2 support (#19):
    Context switching was wrongly using AVX2 instructions instead of AVX instructions causing
    segfaults under hosts supporting AVX but not AVX2.