Skip to content

noobexon1/binjaXfrida

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

binjaXfrida logo

binjaXfrida

Generate Frida scripts directly from Binary Ninja.

GitHub release GitHub stars GitHub last commit GitHub issues GitHub downloads Release Binary Ninja Frida GitHub Release Date GitHub Created At GitHub License

🎣 Function Hook

🔀 Negate Conditional Branch

✨ Features

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

Supported Actions

🪝 Hooks

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

🧠 Memory

Action Description
Modify section protection Change memory protection of the section at the current address

🩹 Patching

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

🔧 How it Works

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/.

📦 Installation

From release:

  1. Find your plugins directory:
    binaryninja.user_plugin_path()
  2. Download the latest release and extract into the plugins directory.
  3. Restart Binary Ninja.

From source:

Clone:

git clone https://github.com/noobexon1/binjaXfrida.git
cd binjaXfrida

🪟 Windows:

.\dev\install.ps1

🐧 Linux:

./dev/install.sh

🚀 Usage

  1. Open your target binary in Binary Ninja.
  2. Right-click in the Disassembly, Pseudocode, or Functions view.
  3. Navigate to PluginsbinjaXfrida → choose a category and action.
  4. The generated Frida script is printed to the Output window and copied to your clipboard.
  5. Paste into your Frida CLI, agent, or .js file.

🧱 Script Composition

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.

🤝 Contributing

Contributions welcome! Got a useful Frida snippet? Turn it into a template so everyone can use it.

  1. Fork the repository.
  2. Create a new branch for your feature or fix.
  3. Make your changes.
  4. 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.

🗺️ Roadmap

See open issues for planned features and known bugs.

📄 License

MIT

About

A Binary Ninja plugin designed to bridge the gap between static analysis in Binja and dynamic analysis with Frida

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors