Changes:
1.0.2
-----
- Fix Java binding compilation
- Enable building for ARM little-endian only (ignore big-endian)
- Add uc_context_free() API
- Fix context saving/retoring API (core & Python binding)
- 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
- 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
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
upstream changelog
==================
Version 1.0.1
April 20, 2017
Properly handle selected-architecture build.
Fix compilation issues on PPC & S390x.
Fix a memory leak on uc_mem_protect().
Support ARM big-endian.
ARM:
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 23, 2017
Lots of bugfixes in all architectures.
Fix many memory leaking issues.
New APIs: uc_query, uc_reg_write_batch, uc_reg_read_batch, uc_mem_map_ptr, uc_mem_regions, uc_free, 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, UC_VERSION_MINOR, UC_VERSION_EXTRA.
Remove glib & pkconfig dependency.
Windows: export a static lib that can be used outside of Mingw.
ARM:
Support MCLASS cpu (Cortex-M3).
Better support for Thumb mode.
uc_reg_write now can modify CPSR register.
Add some ARM coproc registers.
ARM64: uc_reg_read & uc_reg_write now handles W0-W31 registers.
X86:
Fix 16bit address computation.
Fix initial state of segment registers.
Windows: fix a double free bug in uc_close.
3 new bindings: Haskell, MSVC, VB6.
Python:
Better support for Python3
Fix memory leaking that prevents UC instances from being GC.
Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator
framework based on QEMU.
Unicorn offers some unparalleled features:
- Multi-architecture: ARM, AMM64 (ARMv8), M68K, MIPS, SPARC, and X86 (16, 32,
64-bit)
- Clean/simple/lightweight/intuitive architecture-neutral API
- Implemented in pure C language, with bindings for Python, Java, and Go
- Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris
confirmed)
- High performance via Just-In-Time compilation
- Support for fine-grained instrumentation at various levels
- Thread-safety by design