This file details the changelog of Unicorn Engine. ------------------------------- [Version 1.0.3]: May 26th, 2021 - Fix some building issues - Fix build with LLVM on Powerpc64(le) - cmake: enable UNICORN_HAS_ARMEB when ARM is on - Better support MingW building - Better support FreeBSD host - Better support VS2008/VS2010 - Fix some issues in the core: - Fix wrong sync after UC_ERR_[READ, WRITE, FETCH]_[UNMAPPED, PROT] - Support querying architecture mode besides arm - Fix pausing within Thumb2 ITE blocks - Arm: - Support Arm BE8 mode - X86: - Fix FPIP & FTST instructions - Bindings: - Java: remove deprecated javah and build with javac - Python: handle exceptions raised in hook functions - Rust binding ----------------------------------- [Version 1.0.2]: October 21st, 2020 - Fix Java binding compilation - Enable building for ARM little-endian only (ignore big-endian) ------------------------------------ [Version 1.0.2-rc6]: Sept 24th, 2020 - Add uc_context_free() API - Fix context saving/retoring API (core & Python binding) ------------------------------------ [Version 1.0.2-rc5]: Sept 22nd, 2020 - Add cmake option to build Unicorn as a static library - Fix error handling of mmap() - uc_emu_start() can be reentrant - Fix naming conflicts when built with systemd - Fix setjmp/longjmp on native Windows - Fix enabled hooks even after deleting them - X86: - Fix 64bit fstenv - Fix IP value of 16bit mode - ARM: - Fix APSR handling - Python: Remove UC_ERR_TIMEOUT ----------------------------------- [Version 1.0.2-rc4]: May 29th, 2020 - No longer require Python to build - Fix recursive UC_HOOK_MEM callbacks for cross pages access - Remove UC_ERR_TIMEOUT, so timeout on uc_emu_start() is not considered error - Added UC_QUERY_TIMEOUT to query exit reason - Fix UAF when deleting hook while in hook callback - Ensure that hooks are unaffected by a request to stop emulation. - Fix block hooks being called twice after an early exit from execution. - Fix binding install on python2 (MacOS) - X86: - Support read/write STn registers - Support read/write X64 base regs - ARM64: - Support some new registers ---------------------------------- [Version 1.0.1]: April 20th, 2017 - Properly handle selected-architecture build. - Fix compilation issues on PPC & S390x. - Fix a memory leak on uc_mem_protect(). - ARM: - Support big-endian mode. - Correct instruction size of Thumb/Thumb2 code. - Support read/write APSR register. - ARM64: - Support read/write NEON registers. - Support read/write NZCV registers. - Mips: Support read/write Mips64 registers. - X86: Support read/write MSR. - Haskell binding: update to the latest API. - Python: allow not having PATH setup. ---------------------------------- [Version 1.0]: February 23rd, 2017 - Fix build script for BSD host. - Fix building Unicorn on Arm/PPC/Sparc/S390 hosts. - X86: - Fix 16bit address computation. - Fix initial state of segment registers. ---------------------------------- [Version 1.0-rc3]: January 25th, 2017 - Rename API uc_context_free() to uc_free(). - ARM: - uc_reg_write() now can modify CPSR register. - Add some ARM coproc registers. - ARM64: uc_reg_read|write() now handles W0-W31 registers. - Windows: fix a double free bug in uc_close(). - New VB6 binding. - Java: update to support new APIs from v1.0-rc1. - Python: - Fix memory leaking that prevents UC instances from being GC. - Remove some dependencies leftover from glib time. - Add new method mem_regions() (linked to uc_mem_regions() API) ---------------------------------- [Version 1.0-rc2]: January 4th, 2017 - Remove glib & pkconfig dependency. - Python: fix an issue to restore support for FreeBSD (and other *BSD Unix). - ARM: support MCLASS cpu (Cortex-M3). - Windows: export a static lib that can be used outside of Mingw ---------------------------------- [Version 1.0-rc1]: December 22nd, 2016 - Lots of bugfixes in all architectures. - Better support for ARM Thumb. - Fix many memory leaking issues. - New bindings: Haskell, MSVC. - Better support for Python3. - New APIs: uc_query, uc_reg_write_batch, uc_reg_read_batch, uc_mem_map_ptr, uc_mem_regions, uc_context_alloc, uc_context_save & uc_context_restore. - New memory hook type: UC_HOOK_MEM_READ_AFTER. - Add new version macros UC_VERSION_{MAJOR, MINOR, EXTRA} ---------------------------------- [Version 0.9]: October 15th, 2015 - Initial public release.