Tuesday, November 3, 2026

iaito for graphical reverse engineering on top of radare2

iaito for graphical reverse engineering on top of radare2

iaito is the official Qt-based graphical front end for the radare2 reverse engineering framework, bringing disassembly, debugging, patching, and forensics to authorized analysts in a unified desktop UI.

Toolradareorg/iaito — official Qt-5/6 GUI for the radare2 reverse engineering framework
CategoryBinary analysis / reverse engineering GUI (C++, GPL-3.0, ~1.7k stars)
Primary UseInteractive disassembly, debugging, binary patching, bindiffing and forensics on binaries you are authorized to analyze
Safe UseFor malware analysis in isolated labs, CTF work, software you own, and authorized security assessments; not for attacking third-party systems
Telemetry NotePurely a local desktop analysis tool; it performs no network callbacks, so defenders observe nothing — but it can itself be used defensively to triage suspicious binaries

iaito is the official graphical interface for radare2, the libre reverse engineering framework, and its pitch is disarmingly simple: use radare2 with one hand. Written in C++ on top of Qt-5/Qt-6 and licensed under GPL-3.0, the project positions itself not as a replacement for the r2 shell but as a companion to it. The README is explicit that the design goal is parity with commands, features, and keybindings rather than a dumbed-down abstraction, which is a meaningful architectural commitment. For professionals who already live in radare2, that promise of command equivalence is what separates iaito from generic GUI wrappers that hide the underlying engine.

The lineage here is worth understanding because it explains the ecosystem. iaito was the original name of the project before it was forked as Cutter, the better-known radare2 GUI. What the radareorg namespace now hosts is the continuation of the original line, maintained under the umbrella of the radare2 project itself, which is why the README can call it the official interface. Both tools share ancestry, but iaito is the one developed in lockstep with the r2 core, and its repository on GitHub shows roughly 1,735 stars with continuous integration via the iaito CI GitHub Actions workflow.

The most consequential design decision announced in the README is that nothing is specific to iaito. All your favourite r2 plugins and scripts work unchanged, because iaito does not fork the engine or introduce its own scripting dialect — it drives the real radare2 core. In practice this means an analyst can maintain a single set of analysis scripts, r2pipe automation, and plugin configurations that behave identically whether invoked from the terminal or from the GUI. That symmetry dramatically lowers the cost of moving between interactive graphical work and scripted batch analysis during a long reverse engineering engagement.

Functionally, the README enumerates a scope that goes well beyond static disassembly: forensics, bindiffing, and binary patching are called out explicitly. Disassembly and binary analysis are the table stakes, but the mention of bindiffing signals support for differential analysis — comparing two versions of a binary to isolate patched code, a technique central to vulnerability research on software you are licensed to audit. Binary patching, meanwhile, lets analysts modify executables in place, which is legitimate for fixing or instrumenting binaries in a lab. The tagline frames it as a full analysis workbench, not a viewer.

Installation is deliberately low-friction. Automated CI builds and GitHub releases exist for Linux, macOS, and Windows, and the Flatpak route via flathub is the recommended path on WSL or Linux: flatpak install flathub org.radare.iaito. On macOS the README notes you may need to fix the application signature with codesign --force --deep --sign - on the .app bundle, a common annoyance with unsigned Qt builds. Most major distributions already package iaito, as the embedded repology badge shows, and a snap channel exists as well, so the odds are good you can get it from your system's native package manager without compiling anything.

For source builds, the dependency set is exactly what you would expect: radare2 itself and Qt5 or Qt6. The README suggests installing radare2 from its repository with sys/install.sh, then pulling the Qt development packages — on Debian-family systems that means qtbase5-dev, qttools5-dev, libqt5svg5-dev, and friends, with qt6-svg-dev covering the Qt6 path. On macOS, brew install qt@5 with an appropriate PATH export does the job. Compilation then follows the conventional ./configure, make, make run sequence, where make run conveniently launches the app from build/iaito.app without a full install.

One capability deserves particular attention: iaito can be built as an r2 plugin via make plugin, which installs it into your home plugin directory so that typing iaito inside an r2 session launches the GUI reusing the existing Core instance. This is architecturally interesting because it inverts the usual GUI-first model — you can do the bulk of your triage in the terminal, then spin up the graphical view on the same loaded binary without re-running analysis. For large binaries where initial analysis is expensive, preserving the Core instance is a genuine workflow accelerator, and it reinforces that iaito is designed as a peer of the shell, not a shell replacement.

Internationalization is handled through a separate iaito-translations repository coordinated on crowdin, installable with make user-install-translations, and the Flatpak build ships translations as an optional extension. There is also an optional iaito:// URI handler for deep links, documented in doc/deeplinks.md, which allows other tooling to hand a binary straight to the GUI. Community support runs through the standard radare2 channels — the Discord at radare.org/discord, the Telegram group, and the project's Mastodon presence — so iaito inherits the mature support community of its parent framework rather than needing one of its own.

In an authorized workflow, where iaito earns its keep is the middle phase of analysis: you have a suspicious or poorly documented binary, you own it or have permission to study it, and you need to move fluidly between graph views, hex dumps, and scripted exploration. The debugger integration means you can validate hypotheses dynamically, while patching lets you neutralize anti-analysis tricks in a lab sample. Because every action maps back to real r2 commands, the knowledge you build transfers directly to headless automation on later samples — there is no proprietary project format trapping your work.

The main caveat for newcomers is that iaito assumes radare2 fluency. It deliberately mirrors r2 keybindings and command semantics rather than hiding them, so it plays best as an accelerator for existing operators rather than a gentle on-ramp for people who have never touched the framework. Version skew between the GUI and the installed r2 core can also bite when you build from source, so pinning both to compatible revisions matters. In short, iaito is the rare GUI that respects the terminal it came from, and for radare2 veterans it is the natural way to put a second hand on the wheel.

Official project repository for radareorg/iaito.
Download Tool

Educational analysis for authorized security professionals. Use only in controlled, authorized environments.

Share articleFacebookXLinkedIn

Continue exploring

Browse all articles →

0 comentários:

Post a Comment

Note: Only a member of this blog may post a comment.