Skip to content
This repository has been archived by the owner. It is now read-only.
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

README.md

UnicornPascal

Pascal language binding for the Unicorn emulator (GitHub).

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

License

GPL

Compatibility

OS : Windows, Linux

Compiler : Delphi, Free Pascal

Features

  • Same API as the C core
    • with some workarounds for Pascals case insensitivity: uc_mem_write() -> uc_mem_write_(), uc_mem_read() -> uc_mem_read_()
    • and the missing feature passing variable number of arguments to functions (...): uc_hook_add() -> uc_hook_add_0(), uc_hook_add_1(), uc_hook_add_2(). Or use the uc_hook_add() overloaded functions.
  • Compiler agnostic, as long as it is some sort of modern Pascal. Delphi >= 5 and Free Pascal >= 1.0
  • Multiplatform (Windows and Linux are tested)

Examples

  • SampleArm Emulate ARM
  • SampleArm64 Emulate ARM64
  • SampleX86 Emulate 16, 32, 64 Bit x86
  • SampleSparc Emulate SPARC
  • SampleMips Emulate MIPS
  • SampleM68k Emulate m68k
  • shellcode Sample code to trace code with Linux code with syscall
  • mem_apis Sample use of uc_mem_unmap, uc_mem_protect, and memory permissions
You can’t perform that action at this time.