gitmyhub

rzweb

TypeScript ★ 736 updated 3d ago

A complete browser-based reverse engineering platform built on Rizin, running entirely client-side via WebAssembly.

A browser based tool that lets you analyze compiled programs like ELF or PE files entirely inside your web browser, with no upload or install needed.

TypeScriptReactTailwind CSSZustandxterm.jsWebAssemblyRizinsetup: easycomplexity 3/5

RzWeb is a browser based tool for reverse engineering binary files. It lets you drop a compiled program, like an ELF, PE, or Mach-O file, straight into a web page and inspect it without installing any software on your computer. Everything happens locally inside the browser using WebAssembly, so the files you analyze never get uploaded to a server.

Under the hood, RzWeb is built on Rizin, an open source reverse engineering framework, compiled to run in the browser through a companion project called rzwasi. Once you load a binary, the app keeps an ongoing analysis session alive, so your commands, search positions, and follow up actions stay connected to the same file. You get a full terminal with command autocomplete and separate views for disassembly, control flow graphs, hex dumps, strings, imports, exports, sections, and general binary information.

The app also caches analysis results by the binary's hash, so you can reopen a file you already examined straight from the homepage without redoing the work. There are settings for how much command output gets shown and warnings when a binary is unusually large or its metadata gets cut off. The layout is designed to work on both desktop and mobile screens.

Because it runs inside a browser sandbox, RzWeb cannot offer debugging features that depend on ptrace, and heavy analysis is still limited by single threaded WebAssembly performance, so very large binaries may take a while to process. What you can actually do also depends on the current build of the underlying rzwasi engine.

To try it locally, you clone the repository, run npm install, then npm run dev. The project is written in TypeScript and uses React, Tailwind CSS, Zustand for state, and xterm.js for the terminal interface. It is credited to developer IndAlok and is powered by the Rizin framework.

Where it fits