π£ Function Hook
![]() |
![]() |
π Negate Conditional Branch
![]() |
![]() |
Right-click in Binary Ninja to generate ready-to-use Frida snippets.
- π§© Composable scripts β snippets are independent but can be nested to build complex instrumentation with a few clicks
- π― Context-aware β scripts can auto-fill module name, function address, and really any other details that can be aquired from your current Binja context
- π Clipboard integration β generated scripts are instantly copied to your clipboard
| Action | Description |
|---|---|
| Generate function hook | Intercept calls to the selected function, log entry/exit |
| Generate dlopen hooks | Monitor dlopen (including Android variants) to detect module loading |
| Action | Description |
|---|---|
| Modify section protection | Change memory protection of the section at the current address |
| Action | Description |
|---|---|
| Negate cond branch (ARM64) | Flip the condition of an ARM64 conditional branch |
| Negate cond branch (x86/x64) | Flip the condition of an x86/x64 conditional branch |
Each feature follows a simple pipeline: a Frida template (templates/) provides the JavaScript skeleton with placeholders, an action (actions/) gathers context from Binary Ninja (function name, address, module), and a generator (core/) fills the template to produce the final script. UI concerns like clipboard live in ui/.
From release:
- Find your plugins directory:
binaryninja.user_plugin_path()
- Download the latest release and extract into the plugins directory.
- Restart Binary Ninja.
From source:
Clone:
git clone https://github.com/noobexon1/binjaXfrida.git
cd binjaXfridaπͺ Windows:
.\dev\install.ps1π§ Linux:
./dev/install.sh- Open your target binary in Binary Ninja.
- Right-click in the Disassembly, Pseudocode, or Functions view.
- Navigate to Plugins β binjaXfrida β choose a category and action.
- The generated Frida script is printed to the Output window and copied to your clipboard.
- Paste into your Frida CLI, agent, or
.jsfile.
Snippets are designed to be independent building blocks. You can nest scripts inside each other β for example, hook a function, negate a conditional branch on entry, and restore it on exit. Complex instrumentation from a few clicks.
Contributions welcome! Got a useful Frida snippet? Turn it into a template so everyone can use it.
- Fork the repository.
- Create a new branch for your feature or fix.
- Make your changes.
- Submit a pull request.
| Adding... | Where |
|---|---|
| New Frida snippet | templates/ (JS template) + core/ (generator) + actions/ (action) |
| UI element | ui/ |
JS templates must be wrapped in a self-invoking function so they remain composable (see existing templates for the pattern).
Each action and generator lives in its own file β easy to contribute without merge conflicts.
See open issues for planned features and known bugs.




