You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Readme.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,16 @@ For python bindings, we have:
46
46
maturin build --release
47
47
```
48
48
49
+
## Unicorn Linkage
50
+
51
+
Please note that, unicorn is already bundled with unicornafl by default and you **shall not** pass unicorn engine pointer created by another unicorn dynamic library.
52
+
53
+
For Rust, stick to `unicornafl::unicorn_engine::*` to avoid incorrect structs and pointers. Refer to [Rust usage](./docs/rust-usage.md) for more details on override dependencies.
54
+
55
+
For Python, you are free to use `from unicorn import Uc` because Python only allows dynamic linkage and we will always use the copy from the Unicorn python bindings.
56
+
57
+
For C/C++, similar to Python, you should provide a dynamic unicorn library which our unicornafl will pick.
58
+
49
59
## Example && Minimal Tutorial
50
60
51
61
We provide a sample harness at [the examples](https://github.com/AFLplusplus/AFLplusplus/tree/stable/unicorn_mode/samples).
Before building this repo, make sure that you have installed dependencies to build [Unicorn](https://github.com/unicorn-engine/unicorn), and installed stable Rust compiler with at least 1.87.0.
@@ -67,34 +67,6 @@ Before using fuzzing APIs, you should create unicorn instance on your own. It sh
67
67
68
68
## Tips
69
69
70
-
### Linking
71
-
72
-
Note that `libunicornafl.a` or `libunicornafl.so` already bundles a Unicorn. As a result, you don't need to manually link Unicorn any more.
73
-
74
-
### Use a different version of Unicorn
75
-
76
-
It should be noted that the internal of UnicornAFL depends heavily on some newest Unicorn APIs. As a result, older version of Unicorn may not work. However, if you want to use your own version of Unicorn, you should modify the `Cargo.toml` in this repo.
0 commit comments