-
Notifications
You must be signed in to change notification settings - Fork 11
Building Brovan
Ezz Aldeen Bayoumi edited this page Jun 24, 2026
·
2 revisions
Building Brovan is pretty straight-forward, but there's some things to keep in mind, this is why i decided to make this wiki.
- .NET 8 SDK or up.
- x64 runtime environment
- CMake (for building Unicorn from source)
- C++ compiler (MSVC on Windows, GCC/Clang on Linux)
As some might know, Unicorn as of now doesn't support Control Flow Guard and that is because of how the TCG JIT works. The reason i'm mentioning this at all is because the .NET compiler doesn't support controlling the linker directly, so CFG cannot be disabled during compilation unless we use some post-build tricks, for now the project config uses editbin.exe if you have it to disable CFG, it also checks if it is enabled at runtime and restarts the process with that mitigation in a disabled state, so even if you don't have editbin.exe you are still good.
As of now, Brovan uses the following libraries:
| Library | Purpose | Notes |
|---|---|---|
| Iced | Disassembling | Restored automatically via NuGet |
| Unicorn | CPU emulation | Downloaded and compiled automatically from source when you try to build Brovan |