Fetching the latest programs, projects, and workspace data.

Rizin reverse engineering framework and toolset
Showing 5 of 13 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Darshan-Patel
A common problem in binary analysis is function detection. One method is searching for function preludes. Preludes are a sequence of instructions commonly found at the beginning of a function. These preludes perform tasks like setting up the stack, or initializing registers to values as defined in the architecture’s ABI. It is very common to hard-code these prelude patterns and match instructions against them. These patterns get outdated, are tedious to update, and have to be written for each architecture. Also because these signatures are generic, they are highly prone to false positives especially on x86/x86_64 binaries. This project aims to augment static signature based approach with a dynamic, multi-stage statistical heuristic pipeline. Weighted Prefix Trie will be used for matching and then filtering through 2-signal validation approach (frequency distribution analysis + shannon entropy) for removing noise. Hence the plugin will automatically learn directly from functions identified by initial CFG (Control Flow Graph) analysis in the target binary. This approach also enables the discovery of orphaned or hidden functions that standard CFG analysis often misses in stripped or obfuscated binaries.
Mentors: Student: Ron Stephen Mathew
This task focuses on bringing binary diffing directly into Cutter by integrating the core capabilities of rz-diff into its interface. Since binary diffing is a common reverse engineering workflow, the goal is to let users select and compare two binaries within Cutter itself rather than relying on external tools. The project would involve building a user-friendly file selection interface for choosing the binaries to compare, then visually presenting detected differences across Cutter’s major analysis views, including the hexadecimal view, disassembly view, graph view, and pseudocode view, so analysts can inspect structural and behavioral changes seamlessly in one environment.
Mentors: Student: Naren Sirigere
This project aims to extend Rizin's OOP binary analysis capabilities across multiple languages. It completes support for Objective-C and Swift binaries, and introduces support for Rust and Java, focusing on vtable detection, devirtualization, and inheritance graph reconstruction. It also adds Windows Structured Exception Handling for both x86 and x64. Demanglers for Swift and D will be integrated into rz-libdemangle.
Mentors: Student: Alok Kumar Mishra
Modern object-oriented binaries depend heavily on vtables, RTTI, and dynamic dispatch. Rizin's current class and vtable analysis is siloed and not integrated with the type system or decompiler. This project finishes the 2025 Objective-C inheritance PR (#5415), then adds field recovery, constructor/destructor identification, exception metadata extraction, and improved devirtualization. The core goal is a bidirectional bridge between class metadata and RzBaseType so recovered structures can be used directly in analysis and the decompiler.
Mentors: Student: Taksh Patel
Refactor native debugger support for Linux x86, x64 and PPC64, and x86, x64 and AArch64 support for FreeBSD, OpenBSD and NetBSD along with automated testing. Improvements to the already existing Rizin debugger.