AN INDEPENDENT FIELD GUIDE TO REVERSE ENGINEER ANYTHING Meet the open-source project ↗
Decision guide / Intermediate

Do you actually need Ghidra, Hopper, or IDA?

Choose an analysis route from your target instead of installing every tool before your first investigation.

Your reading list

Seeing three disassemblers in a setup guide can make REA feel harder than it needs to be. The first decision is not which one to install. It is whether your question involves native code at all.

Start with the artifact

An extracted JavaScript or Electron application can often be inspected statically without a native analysis engine. An Android APK uses a different analysis route with its own prerequisites. A compiled native executable is where a configured engine such as Ghidra, Hopper or IDA becomes relevant.

This is a routing decision. Installing a native engine will not fix an editor that never connected to REA’s MCP server, and repairing MCP registration will not supply a missing native engine.

Your target A useful first route
Extracted JavaScript or Electron package Static application analysis
Browser interaction A scoped browser observation
Native executable An available native provider
Android APK code The Android package workflow and its prerequisites
Unknown desktop installation Identify the package and relevant components first

What a native engine contributes

For a native target, the engine can provide disassembly, pseudocode, references and related analysis. REA makes those capabilities available to the agent. The agent still has to connect the findings to your question.

Pseudocode is an interpretation. It may omit an input, obscure a type conversion or make a function look much simpler than the instructions show. The DX-Ball sound-pan case is a useful reminder to read callers and constants when that happens.

Compare the route on your machine

Use an engine you already have configured when it supports the target. Ghidra is an open-source project; Hopper and IDA have their own licensing and product options. Check their official sites for current terms rather than relying on a comparison table frozen in an old blog post.

For REA, host support and available operations vary by provider. An engine that can open one binary does not automatically support every architecture or runtime operation you might ask for.

Diagnose the narrow problem

A scoped readiness check helps you avoid treating an optional missing component as a reason to reinstall everything. The official diagnostic supports provider selection; choose the provider you actually intend to use.

npx -y rea-agents@latest doctor --provider ghidra --json

This checks that scope; it is not a proof that a particular binary will analyze successfully. Preserve the returned reason when a provider is unavailable.

Avoid turning the tool choice into the project

For your first native investigation, choose a small, bounded question: a numeric transformation, a format marker, a particular error condition. Record the target version or hash so later findings refer to the same bytes.

Ask for the function, its callers, relevant instructions and constants. If the output is too broad, narrow the query before increasing timeouts or output limits. More output can make an investigation harder to read without making its conclusion stronger.

If your immediate goal is simply to understand a local export feature, start with our JavaScript lab. You can learn how to follow evidence before choosing a decompiler.

Sources & further reading

Research and commentary. External investigations are credited; their results have not been independently reproduced here. Our method

KEEP THE QUESTION GOING

REA is installed. Why can’t my agent use it?

Beginner · 4 MIN READ
ONE MORE GOOD QUESTION

Keep investigating.

All guides

Open full-resolution image ↗