Version 1.0
February 23, 2017
We are very happy to announce version 1.0 of Unicorn Engine!
The source code & precompiled binaries are available in the download section. See documentation for how to compile and install Unicorn.
A quick tutorial on how to program with Unicorn in C & Python can be found here.
Important changes since v0.9 include:
- 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.
Community also provide independent bindings for Pascal, Rust & Perl.
Huge thanks to all the heroic contributors who worked hard for over 1 year to make this release possible!