跪拜 Guibai
← All articles
Open Source · Programmer · Security

Five Reverse Engineering Tools, From Screenshot to Machine Code

By 狂师 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Any developer can now peel open software at five distinct levels, from a rendered page to raw machine code, using the same open-source stack that security researchers rely on, without costly licenses or specialized training. The progression also shows how reverse engineering is broadening beyond binary analysis to include AI-assisted code generation from visual input.

Summary

A new roundup of reverse engineering tools lines up five well-maintained open-source projects in order of increasing depth. screenshot-to-code starts by converting screenshots, design files, or even screen recordings into runnable front-end code, a first step that re-implements a visible interface. mitmproxy intercepts network traffic, including TLS-encrypted HTTPS, by installing a local CA certificate and proxying requests through port 8080. Apktool unpacks Android APKs into human-readable resources and smali bytecode, allowing modifications and re-packing. jadx goes further by decompiling dex files back into Java source with partial de-obfuscation and debugging support. At the deepest level, Ghidra, the NSA's open-sourced framework, disassembles and decompiles raw binaries into assembly and pseudo-C, supporting a wide range of processors and executable formats.

Each tool carries its own installation path and typical use cases. screenshot-to-code runs via Docker and supports six output stacks including React, Vue, and Tailwind, with the ability to compare multiple AI models in one generation. mitmproxy offers three interfaces: an interactive terminal, a command-line dump tool, and a web-based UI, with addons for scripting. Apktool and jadx are often paired for Android work, one for resource editing and re-packing, the other for reading Java code. Ghidra requires a 64-bit JDK 25 and is the go-to for malware analysis and CTF challenges. The article also notes legal boundaries, emphasizing that these tools shouldn't be used for piracy or unauthorized cracking.

Takeaways
— screenshot-to-code has 80,000 GitHub stars, was open-sourced in November 2023, and remains actively maintained; it converts screenshots, Figma designs, and screen recordings into runnable front-end code.
— screenshot-to-code outputs six tech stacks: HTML+Tailwind, HTML+CSS, React, Vue, Bootstrap, and Ionic, and can compare GPT-5.5, Claude Opus 4.8, and Gemini 3 side by side.
— mitmproxy has 46,000 stars, has been maintained since 2010, and offers three commands: mitmproxy (interactive terminal), mitmdump (command-line, called 'tcpdump for HTTP'), and mitmweb (web UI).
— mitmproxy intercepts HTTPS by generating a local CA certificate that you install into the system, then proxies traffic through port 8080.
— Apktool has 26,000 stars, is maintained by Connor Tumbleson since 2012, and can decode AndroidManifest.xml and resources.arsc into readable formats, plus decompile code to smali for debugging and repack APKs.
— jadx has 51,000 stars, accepts APK, dex, aab, xapk, jar, and class files, and decompiles to Java with syntax highlighting, declaration navigation, and a built-in smali debugger.
— Ghidra has 95,000 stars, was open-sourced by the NSA in 2019, and the latest version 12.2 was just released; it disassembles and decompiles machine code to assembly and pseudo-C for a wide range of processors.
— Ghidra installation requires a 64-bit JDK 25 and the official zip from GitHub Releases; it supports interactive GUI analysis and scripting in Java or Python.
— The article recommends starting with mitmproxy and screenshot-to-code for typical testing work, adding Apktool and jadx for Android testing, and reserving Ghidra for deep binary analysis.
Conclusions

The inclusion of screenshot-to-code as the 'first layer' of reverse engineering shows the field expanding from binary analysis to AI-assisted reconstruction of visible UI, a shift that redefines what counts as reverse engineering.

The depth progression mirrors a typical QA workflow: testers often need just network inspection and UI reconstruction, while Android-specific work adds APK unpacking and decompilation, and only security researchers dive into raw binaries.

The repeated warnings about legal use and authorized samples indicate that these open-source tools are powerful enough for misuse, yet the author frames them as essential for debugging, SDK inspection, and security research.

The star counts and maintenance histories (mitmproxy 16 years, Apktool since 2012, Ghidra from NSA) suggest that reverse engineering tooling has matured into a stable, community-backed ecosystem, not a fleeting trend.

Concepts & terms
smali
A human-readable assembly language for Android's Dalvik bytecode, used by Apktool to represent the compiled code inside an APK. It allows developers to inspect and modify logic, but is more verbose than Java, which is why jadx is used to decompile further.
Man-in-the-middle proxy
A technique used by mitmproxy to intercept HTTPS traffic. It generates a local CA certificate that the user installs as trusted, allowing the proxy to decrypt, inspect, and forward encrypted requests between a device and the server.
From the discussion
Featured comments
汪汪队首席上单

Can AI directly understand binary?

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗