Reverse Engineering Adobe: Artcraft Rust Rewrite and REA Tool

•

 5 min video

•

 4 min read

YouTube video ID: wajoP_5Cpw8

Source: YouTube video by Fireship — Watch original video

PDF

Last week, a developer named Brandon Thomas, frustrated with Adobe's business practices, reportedly rebuilt seven of Adobe's Creative Cloud applications, including Photoshop, Illustrator, and Premiere, using Rust. He then open-sourced these applications under the project name "Artcraft," making them available for free. Thomas, who had faced Adobe's cancellation fees multiple times, used an AI tool called Claude to reverse engineer Adobe's 30-year-old codebase from scratch. Remarkably, these Rust-based applications even run on Linux, a platform Adobe has never officially supported.

The Promise of "Reverse Engineer Anything"

An unrelated project called "Reverse Engineer Anything" (REA) has recently gained traction online. This tool claims to easily decompile virtually any native binary, including stripped ELF, PE, and MCCO executables, JVM bytecode with obfuscated constant pools, ECMA 335 compliant assemblies, bare metal firmware with architecture-specific instruction sets, and OCI container layers. In essence, REA suggests that almost any application in the world can now be made open source, regardless of its original intent.

Artcraft: A Closer Look

While the idea of a free, open-source Adobe suite alternative is appealing, a hands-on test of Artcraft revealed significant limitations. Despite being written in Rust, a language known for its speed, the applications were described as "nearly unusable." For example, "FilmCraft," the Premiere Pro alternative, suffered from massive audio lag and overall sluggishness when playing video clips. Transitions between clips were also of noticeably lower quality compared to Premiere Pro. Although the user interface of FilmCraft was a near one-to-one clone of Premiere, allowing for immediate familiarity, its performance issues made it impractical for professional use. The developer expressed hope that Artcraft would improve in the future.

Reverse Engineering Premiere Pro with REA

The limitations of Artcraft led to an exploration of "Reverse Engineer Anything" (REA) as a means to create a more tailored video editing solution. Adobe Premiere Pro is primarily written in C and C++, and its source code is proprietary. However, to run on a machine, this code is compiled into native binaries (ones and zeros), which are difficult for humans to read. REA aims to map these binaries back into human-readable source code.

How REA Works

  1. Setup: REA is set up using Node.js and the MPX command.
  2. Ghidra Integration: For Windows users, REA integrates with Ghidra, a tool that performs read-only analysis of native .exes and DLLs. Ghidra is credited as a crucial component of REA's capabilities.
  3. AI Agent Analysis: Once configured, REA functions like an AI agent. It can be instructed to inspect locally installed software, such as Adobe Premiere. For instance, one could ask it to analyze Premiere's timeline integration to understand how a specific feature works.
  4. Output: REA provides C-like pseudocode, along with assembly, strings, symbols, calls, and references. While this output might be complex for a non-expert, it can then be fed to another coding agent to reimplement specific features in a language like Rust.

This process allows for the creation of a "Premiere Light" version, free and customized with only the desired features.

Beyond Applications: Reverse Engineering Backend Services

The concept of reverse engineering extends beyond desktop applications. The developer also applied REA to backend services. For example, Supabase, described as a wrapper on AWS providing a UI for databases, was analyzed. Despite being mostly open-source, it contains many features that might not be needed.

Using REA's networking feature to analyze API interactions and UI changes, the developer created a custom backend called "Studbase." This backend is designed to be perfectly tailored to specific needs (e.g., for "Horse Tinder" and "Donker") and is claimed to be significantly cheaper and faster, based on self-created benchmarks.

Apify: A Tool for Data Scraping and Automation

The video also features a sponsorship by Apify, an MCP server that connects agents to thousands of tools called "actors." These actors can perform tasks like scraping live data from YouTube or monitoring competitor prices on Amazon.

The developer uses Apify to track the most liked posts on the "#donkeys of Instagram" hashtag to identify desirable users for "Donker." Apify's server allows for natural language instructions and efficiently uses relevant tools to return structured data. A key advantage highlighted is its token efficiency, as it exposes only a few core tools and runs the best one in the background to avoid "token bloat." Apify offers $25 in free credits using the code "fireship25."

  Takeaways

  • Brandon Thomas rebuilt seven Adobe Creative Cloud apps in Rust, open‑sourced them as “Artcraft,” and made them run on Linux despite Adobe never supporting that OS.
  • Although Rust promises speed, the Artcraft apps were described as “nearly unusable,” with FilmCraft suffering from severe audio lag and sluggish video playback compared to Premiere Pro.
  • The “Reverse Engineer Anything” (REA) project claims to decompile virtually any native binary and outputs C‑like pseudocode, assembly, and metadata that can be fed to AI agents for reimplementation.
  • Using REA, the developer demonstrated how to extract Premiere Pro’s binary, generate pseudocode, and potentially build a lightweight, custom “Premiere Light” version in Rust.
  • REA was also applied to backend services like Supabase, enabling the creation of a trimmed‑down backend called “Studbase,” which the author claims is cheaper and faster for specific use cases.

Frequently Asked Questions

What does REA claim to decompile and how does it generate readable code?

REA claims it can decompile almost any native binary—including stripped ELF, PE, JVM bytecode, ECMA‑335 assemblies, firmware, and OCI container layers—by analyzing the compiled machine code and producing C‑like pseudocode together with assembly, strings, symbols and call references, which can then be fed to AI agents for reimplementation.

How did Brandon Thomas reverse engineer Adobe’s codebase for the Artcraft project?

Thomas used the AI model Claude to analyze Adobe’s compiled binaries, reconstructing functionality from scratch in Rust; he combined reverse‑engineering techniques with AI‑generated code suggestions, allowing him to recreate seven Creative Cloud apps—including Photoshop, Illustrator and Premiere—without accessing Adobe’s original source, and then released them as the open‑source Artcraft suite.

Who is Fireship on YouTube?

Fireship is a YouTube channel that publishes videos on a range of topics. Browse more summaries from this channel below.

Does this page include the full transcript of the video?

Yes, the full transcript for this video is available on this page. Click 'Show transcript' in the sidebar to read it.

How REA Works

1. **Setup:** REA is set up using Node.js and the MPX command. 2. **Ghidra Integration:** For Windows users, REA integrates with Ghidra, a tool that performs read-only analysis of native .exes and DLLs. Ghidra is credited as a crucial component of REA's capabilities. 3. **AI Agent Analysis:** Once configured, REA functions like an AI agent. It can be instructed to inspect locally installed software, such as Adobe Premiere. For instance, one could ask it to analyze Premiere's timeline integration to understand how a specific feature works. 4. **Output:** REA provides C-like pseudocode, along with assembly, strings, symbols, calls, and references. While this output might be complex for a non-expert, it can then be fed to another coding agent to reimplement specific features in a language like Rust. This process allows for the creation of a "Premiere Light" version, free and customized with only the desired features.

Helpful resources related to this video

If you want to practice or explore the concepts discussed in the video, these commonly used tools may help.

Links may be affiliate links. We only include resources that are genuinely relevant to the topic.

Full transcript is not shown on this page

This page focuses on the summary and original notes. For full verification, refer to the original YouTube video.

PDF