Go to file
Sven Bartscher a237505adb rust: Implement deallocation of MMIO callbacks
Previously the user data of MMIO callbacks would live until the end of
the containing Unicorn engine. Now they are deallocated once all
memory referencing those callbacks has been unmapped.
2021-11-24 12:15:20 +01:00
.github/workflows Rename rust env to decide build dir 2021-11-10 07:51:07 +01:00
bindings rust: Implement deallocation of MMIO callbacks 2021-11-24 12:15:20 +01:00
docs Update Documentation Version (#1459) 2021-10-14 00:00:10 +08:00
glib_compat Basic implementation of uc_ctl 2021-11-01 00:39:36 +01:00
include Fix mmio unmap 2021-11-24 00:18:19 +01:00
msvc import Unicorn2 2021-10-03 22:14:44 +08:00
qemu Fix mmio unmap 2021-11-24 00:18:19 +01:00
samples Add a handy example to show how to handle invalid memory read/write 2021-11-16 23:15:38 +01:00
tests Fix mmio unmap 2021-11-24 00:18:19 +01:00
.clang-format Add clang-format and format code to qemu code style 2021-10-29 12:44:49 +02:00
.gitignore Add gitignore 2021-11-21 12:48:52 +01:00
.gitmodules Update Documentation Version (#1459) 2021-10-14 00:00:10 +08:00
AUTHORS.TXT import 2015-08-21 15:04:50 +08:00
Brewfile Update Brewfile 2017-09-30 17:36:44 +07:00
ChangeLog ChangeLog 2021-10-03 22:37:22 +08:00
CMakeLists.txt Update CMakeLists to use it as subproject 2021-11-07 21:07:53 +01:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING_GLIB glib_compat: add COPYING_GLIB 2016-12-27 10:15:08 +08:00
COPYING.LGPL2 LGPL2 for all header files under include/unicorn/ 2017-12-16 10:08:42 +08:00
CREDITS.TXT Merge branch 'dev' into patch 2021-10-17 18:18:09 +08:00
format.sh Format unicorn_arm and unicorn_aarch64 2021-11-01 10:17:58 +01:00
go.mod add rpath and go.mod 2021-11-07 20:24:50 +01:00
list.c Fix UAF when deleting hook while in hook callback #1127 (#1130) 2020-05-07 14:24:48 +08:00
mingw-w64.cmake import Unicorn2 2021-10-03 22:14:44 +08:00
README.md Update README to add Android 2021-10-06 04:49:18 +08:00
symbols.sh Inline uc_tracecode when there is only exactly one hook 2021-11-21 16:44:39 +01:00
TODO Update TODO 2021-10-06 12:52:52 +02:00
uc.c Fix mmio unmap 2021-11-24 00:18:19 +01:00

Unicorn Engine

pypi downloads Fuzzing Status

Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework, based on QEMU.

Unicorn offers some unparalleled features:

  • Multi-architecture: ARM, ARM64 (ARMv8), M68K, MIPS, PowerPC, RISCV, SPARC, and X86 (16, 32, 64-bit)
  • Clean/simple/lightweight/intuitive architecture-neutral API
  • Implemented in pure C language, with bindings for Crystal, Clojure, Visual Basic, Perl, Rust, Ruby, Python, Java, .NET, Go, Delphi/Free Pascal, Haskell, Pharo, and Lua.
  • Native support for Windows & *nix (with Mac OSX, Linux, Android, *BSD & Solaris confirmed)
  • High performance via Just-In-Time compilation
  • Support for fine-grained instrumentation at various levels
  • Thread-safety by design
  • Distributed under free software license GPLv2

Further information is available at http://www.unicorn-engine.org

License

This project is released under the GPL license.

Compilation & Docs

See docs/COMPILE.md file for how to compile and install Unicorn.

More documentation is available in docs/README.md.

Contact

Contact us via mailing list, email or twitter for any questions.

Contribute

If you want to contribute, please pick up something from our Github issues.

We also maintain a list of more challenged problems in milestones for our regular release.

CREDITS.TXT records important contributors of our project.