File: README.md

package info (click to toggle)
unicorn-engine 2.1.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,912 kB
  • sloc: ansic: 379,830; python: 9,213; sh: 9,011; java: 8,609; ruby: 4,241; pascal: 1,805; haskell: 1,379; xml: 490; cs: 424; makefile: 348; cpp: 298; asm: 64
file content (52 lines) | stat: -rw-r--r-- 1,303 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# unicorn-engine-pascal

Pascal/Delphi language binding for the [Unicorn emulator](http://www.unicorn-engine.org/)
([GitHub](https://github.com/unicorn-engine/unicorn)).

*Unicorn* is a lightweight multi-platform, multi-architecture CPU emulator framework
based on [QEMU](http://www.qemu.org/).

## License

`GPLv2`

## Compilers Compatibility

#### Free Pascal >= v3 
  - `Mac OS` 
  - `Windows` 
  - `Linux`
#### Delphi
  - `Windows`
## 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 (`...`): 
    
    i solve it by using -> `args : Array of Const;` 
    you can pass args inside [] like :
    ```pascal
    uc_hook_add(uc, trace, UC_HOOK_INSN, @HookIn, nil, 1,0,[UC_X86_INS_IN];
    ```
    the main loader in `Unicorn_dyn.pas` , check X86 example for more info .


* Multiplatform (Mac OS , Windows and Linux are tested)

## Examples
* `X86` Emulate 16, 32, 64 Bit x86


## Version History
* `1.1`
    * Add Delphi Compatibility [ Windows ]
* `1.0`
    * this is the first version it has all APIs of UNICORN v1.0.1

## TODO
  - Add more Examples
  - Add <b>Mac , Linux</b> Support for Delphi