{"id":213,"date":"2026-11-09T18:43:30","date_gmt":"2026-11-09T14:43:30","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2026\/11\/09\/rea-opencode-guide\/"},"modified":"2026-11-09T19:37:58","modified_gmt":"2026-11-09T15:37:58","slug":"rea-opencode-guide","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/pt\/2026\/11\/09\/rea-opencode-guide\/","title":{"rendered":"REA e OpenCode: instala\u00e7\u00e3o e primeira investiga\u00e7\u00e3o"},"content":{"rendered":"<p>REA (Reverse Engineer Anything) \u00e9 um servidor MCP que permite fazer engenharia reversa de aplicativos de software, bin\u00e1rios e comportamento em tempo real. A ferramenta cobre o caminho desde o comportamento do aplicativo at\u00e9 o c\u00f3digo de m\u00e1quina e \u00e9 conveniente usar OpenCode como agente que o gerencia.<\/p>\n<p>OpenCode \u00e9 um agente de programa\u00e7\u00e3o aberto que reside no terminal. Ele l\u00ea arquivos de projeto, edita c\u00f3digo, executa comandos e testes e, o mais importante, oferece suporte imediato ao MCP, portanto, o REA se conecta diretamente a ele.<\/p>\n<h2>O que torna o REA \u00fanico<\/h2>\n<p>A REA se destaca na \u00e1rea de engenharia reversa com suporte abrangente a diversas plataformas e tipos de an\u00e1lise:<\/p>\n<ul>\n<li><b>Bin\u00e1rios nativos<\/b>: Hopper, Ghidra, IDA ou Kuna para desmontagem e descompila\u00e7\u00e3o<\/li>\n<li><b>Aplica\u00e7\u00f5es JavaScript e Electron<\/b>: an\u00e1lise est\u00e1tica de m\u00f3dulos Electron, importa\u00e7\u00f5es e limites<\/li>\n<li><b>C\u00f3digo gerenciado<\/b>: analisando assemblies .NET<\/li>\n<li><b>An\u00e1lise em tempo real<\/b>: monitoramento do comportamento do processo<\/li>\n<li><b>Tr\u00e1fego de rede<\/b>: captura e an\u00e1lise de solicita\u00e7\u00f5es e respostas HTTP\/S<\/li>\n<li><b>Aplicativos m\u00f3veis<\/b>: an\u00e1lise de arquivos APK e IPA para Android e iOS<\/li>\n<li><b>Software embarcado<\/b>: an\u00e1lise de sistemas embarcados e dispositivos IoT<\/li>\n<li><b>Arquivos de modelo<\/b>: extraindo metadados GGUF e safetensors<\/li>\n<li><b>Objetos de c\u00f3digo GPU<\/b>: an\u00e1lise de kernels CUDA e HIP<\/li>\n<li><b>Salvar jogos<\/b>: restaurar a l\u00f3gica do jogo e arquivos execut\u00e1veis<\/li>\n<\/ul>\n<h2>Arquitetura b\u00e1sica e filosofia<\/h2>\n<p>A REA segue um processo de pesquisa em tr\u00eas etapas que torna a engenharia reversa acess\u00edvel aos desenvolvedores:<\/p>\n<ol>\n<li><b>Inspe\u00e7\u00e3o<\/b>: REA se conecta a ferramentas de an\u00e1lise e examina alvos (bin\u00e1rios, aplicativos, sites)<\/li>\n<li><b>An\u00e1lise<\/b>: rastreia o c\u00f3digo, determinando regras e comportamento<\/li>\n<li><b>Recupera\u00e7\u00e3o<\/b>: o agente usa os resultados para explicar o comportamento e construir ou testar uma implementa\u00e7\u00e3o<\/li>\n<\/ol>\n<p>Esse processo permite que o agente de IA responda perguntas complexas, como: \u201cEntenda como funciona a pesquisa no aplicativo Notes, mostre-me as evid\u00eancias e crie um recurso semelhante para o meu projeto\u201d.<\/p>\n<h2>Exemplos pr\u00e1ticos de uso<\/h2>\n<h3>1. An\u00e1lise de aplicativos m\u00f3veis<\/h3>\n<p>REA pode analisar arquivos APK do Android para recupera\u00e7\u00e3o:<\/p>\n<ul>\n<li>declara\u00e7\u00f5es e permiss\u00f5es no manifesto;<\/li>\n<li>m\u00e9todos de classe e depend\u00eancias;<\/li>\n<li>links para bibliotecas nativas;<\/li>\n<li>endpoints de rede e fluxos de dados.<\/li>\n<\/ul>\n<p>Por exemplo, uma an\u00e1lise do Aegis Authenticator mostrou como os c\u00f3digos de autoriza\u00e7\u00e3o de seis d\u00edgitos mudam a cada 30 segundos: examinou como funciona a gera\u00e7\u00e3o de c\u00f3digo baseada no tempo (TOTP).<\/p>\n<h3>2. Extra\u00e7\u00e3o de fun\u00e7\u00e3o de aplicativo de desktop<\/h3>\n<p>A an\u00e1lise do bot\u00e3o % na Calculadora do Windows demonstra os recursos do REA:<\/p>\n<ul>\n<li>definir comportamentos diferentes dependendo do contexto (ap\u00f3s + ou \u00d7);<\/li>\n<li>analisar instru\u00e7\u00f5es assembly para entender a l\u00f3gica;<\/li>\n<li>extrair e explicar opera\u00e7\u00f5es matem\u00e1ticas;<\/li>\n<li>restaurando as regras: \u201cDepois de +: 10% do primeiro n\u00famero\u201d e \u201cDepois de \u00d7: converta 10% para 0,1.\u201d<\/li>\n<\/ul>\n<h3>3. Restaurando a API do aplicativo Web<\/h3>\n<p>REA pode gravar uma sess\u00e3o do navegador e reconstru\u00ed-la como um ambiente RL onde o agente de IA executa tarefas como trabalhar com pastas sem executar o aplicativo original.<\/p>\n<h3>4. Restaurando a l\u00f3gica do jogo<\/h3>\n<p>O caso DX-Ball mostrou como a REA restaurou o c\u00e1lculo da paisagem sonora do jogo para Windows de 1996 por meio de engenharia reversa do c\u00f3digo C que executa 3.205 casos de teste e corresponde ao c\u00f3digo compilado original.<\/p>\n<h2>Capacidades t\u00e9cnicas<\/h2>\n<h3>An\u00e1lise nativa<\/h3>\n<ul>\n<li>Funciona com Hopper, Ghidra, IDA ou Kuna para an\u00e1lise profunda de arquivos bin\u00e1rios<\/li>\n<li>Suporta ELF, PE, Mach-O e outros formatos de arquivo execut\u00e1veis<\/li>\n<li>Extrai pseudoc\u00f3digo, assembler, s\u00edmbolos e chamadas<\/li>\n<li>Realiza an\u00e1lises off-line sem precisar iniciar as ferramentas originais<\/li>\n<\/ul>\n<h3>An\u00e1lise JavaScript<\/h3>\n<ul>\n<li>Analisa aplica\u00e7\u00f5es Node.js e Electron<\/li>\n<li>Rastreia importa\u00e7\u00f5es e depend\u00eancias de m\u00f3dulos<\/li>\n<li>Captura o comportamento em tempo real por meio de uma conex\u00e3o de navegador<\/li>\n<li>\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 source maps \u0438 \u043c\u0438\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434<\/li>\n<\/ul>\n<h3>Seguran\u00e7a<\/h3>\n<ul>\n<li>An\u00e1lise est\u00e1tica de certificados PE (Authenticode)<\/li>\n<li>An\u00e1lise de mecanismos de defesa (PIE, NX, RELRO, CFG)<\/li>\n<li>Mapeamento de importa\u00e7\u00f5es e DLLs<\/li>\n<li>An\u00e1lise de relat\u00f3rios de falhas (Apple IPS)<\/li>\n<\/ul>\n<h2>O que o REA retorna<\/h2>\n<p>A REA n\u00e3o d\u00e1 ao agente conclus\u00f5es prontas sem motivo. O resultado de cada consulta s\u00e3o as descobertas juntamente com as evid\u00eancias nas quais elas se baseiam. Dependendo da finalidade, a resposta inclui:<\/p>\n<ul>\n<li><b>Links para c\u00f3digo<\/b> &#8211; arquivos e linhas espec\u00edficas onde a fun\u00e7\u00e3o em estudo \u00e9 implementada.<\/li>\n<li><b>Pseudoc\u00f3digo e assembler<\/b> &#8211; para bin\u00e1rios nativos: fun\u00e7\u00f5es descompiladas, instru\u00e7\u00f5es e conex\u00f5es entre chamadas.<\/li>\n<li><b>Estrutura da aplica\u00e7\u00e3o<\/b> &#8211; para JavaScript e Electron: m\u00f3dulos, importa\u00e7\u00f5es, rotas, IPC e conex\u00f5es com add-ons nativos.<\/li>\n<li><b>Metadados e fatos<\/b>: manifestos, certificados, assinaturas, cabe\u00e7alhos de formato e outros dados est\u00e1ticos.<\/li>\n<li><b>Restri\u00e7\u00f5es<\/b> &#8211; locais que n\u00e3o puderam ser resolvidos, com uma nota sobre o que exatamente permanece desconhecido.<\/li>\n<\/ul>\n<p>O agente utiliza esses dados para explicar o comportamento, responder perguntas esclarecedoras ou montar e testar sua implementa\u00e7\u00e3o. \u00c9 a presen\u00e7a de evid\u00eancias e limita\u00e7\u00f5es expl\u00edcitas que distingue um resultado REA de uma simples suposi\u00e7\u00e3o do modelo.<\/p>\n<h2>Antes de come\u00e7ar<\/h2>\n<p>Sup\u00f5e-se que o OpenCode j\u00e1 esteja instalado e o modelo esteja conectado a ele. Node.js 22.23.4+, 24.22.1+ ou 26.12.1+ \u00e9 necess\u00e1rio para o pr\u00f3prio REA, ent\u00e3o verifique a vers\u00e3o:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>node -v\n<\/code><\/pre>\n<\/div>\n<h2>Etapa 1: Conecte REA ao OpenCode<\/h2>\n<p>REA registra-se no OpenCode como um servidor MCP. Execute no terminal:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx rea-agents@latest setup\n<\/code><\/pre>\n<\/div>\n<p>Para especificar OpenCode diretamente, use seu identificador <code>opencode<\/code>:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx rea-agents@latest setup --client opencode\n<\/code><\/pre>\n<\/div>\n<p><b>O que a configura\u00e7\u00e3o faz:<\/b><\/p>\n<ul>\n<li>regista REA como um servidor MCP;<\/li>\n<li>adiciona instru\u00e7\u00f5es de fluxo de trabalho;<\/li>\n<li>faz uma c\u00f3pia de backup da configura\u00e7\u00e3o existente;<\/li>\n<li>pede confirma\u00e7\u00e3o antes de aplicar as altera\u00e7\u00f5es.<\/li>\n<\/ul>\n<p><b>Ponto importante:<\/b><br \/>\nPara o primeiro experimento, voc\u00ea pode pular a instala\u00e7\u00e3o opcional do Hopper. Ap\u00f3s a conclus\u00e3o da configura\u00e7\u00e3o, reinicie o OpenCode: saia da sess\u00e3o e execute <code>opencode<\/code> novamente.<\/p>\n<p>Verifique a conex\u00e3o:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest doctor --client opencode --json\n<\/code><\/pre>\n<\/div>\n<p>Resultado bem-sucedido: <code>\"healthy\": true<\/code>.<\/p>\n<p>Ent\u00e3o pergunte ao agente:<\/p>\n<blockquote><p>\u201cVerifique se o REA est\u00e1 conectado e mostre quais ferramentas REA voc\u00ea pode usar.\u201d<\/p><\/blockquote>\n<h2>Etapa 2: Primeira investiga\u00e7\u00e3o<\/h2>\n<p>REA pode analisar aplicativos sem inici\u00e1-los.<\/p>\n<ol>\n<li><b>Baixe o exemplo:<\/b>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>Download https:\/\/rea.tools\/examples\/notes-example.zip\n<\/code><\/pre>\n<\/div>\n<p>Descompacte o arquivo na pasta <code>notes-example<\/code>.<\/li>\n<li><b>D\u00ea uma tarefa ao agente:<\/b><br \/>\n<blockquote><p>&#8220;Use REA para inspecionar o aplicativo em <code>\/absolute\/path\/to\/notes-example<\/code>. Descubra o que acontece quando clico em Exportar notas. Mostre onde o arquivo notes.csv est\u00e1 escrito, quais campos ele cont\u00e9m e os arquivos e linhas relevantes.&#8221;<\/p><\/blockquote>\n<\/li>\n<\/ol>\n<p><b>Resposta esperada:<\/b><\/p>\n<blockquote><p>&#8220;O bot\u00e3o envia uma mensagem <code>notes:export<\/code>. O processo principal formata as notas como CSV e escreve <code>notes.csv<\/code> na pasta Downloads do usu\u00e1rio. As colunas s\u00e3o <code>id<\/code> e <code>title<\/code>.\u201d<\/p><\/blockquote>\n<h2>Etapa 3: instala\u00e7\u00e3o do Ghidra e an\u00e1lise nativa<\/h2>\n<p>Para analisar bin\u00e1rios nativos (execut\u00e1veis \u200b\u200be bibliotecas), o REA utiliza um provedor de an\u00e1lise. A op\u00e7\u00e3o gratuita mais acess\u00edvel \u00e9 o Ghidra da NSA. A ferramenta \u00e9 instalada uma vez no computador onde o REA \u00e9 executado.<\/p>\n<h3>O que voc\u00ea precisa<\/h3>\n<ul>\n<li>JDK 21 de 64 bits ou posterior, incluindo compilador Java (<code>javac<\/code>).<\/li>\n<li>Arquivo Ghidra na p\u00e1gina de lan\u00e7amentos.<\/li>\n<\/ul>\n<h3>Instala\u00e7\u00e3o<\/h3>\n<ol>\n<li>Instale o JDK 21 de 64 bits ou posterior. Selecione um pacote para a arquitetura do seu computador.<\/li>\n<li>Baixe o Ghidra na lista de ativos na p\u00e1gina de lan\u00e7amentos e descompacte o arquivo <code>ghidra_\u2026_PUBLIC_\u2026.zip<\/code>. Pegue o arquivo de lan\u00e7amento, n\u00e3o o \u201cc\u00f3digo-fonte\u201d.<\/li>\n<li>Encontre a pasta descompactada que cont\u00e9m <code>ghidraRun<\/code> ou <code>ghidraRun.bat<\/code>. Este caminho ser\u00e1 necess\u00e1rio para a vari\u00e1vel <code>GHIDRA_INSTALL_DIR<\/code>.<\/li>\n<\/ol>\n<p>Confira Java. O primeiro comando imprime <code>java.home<\/code> &#8211; este caminho \u00e9 necess\u00e1rio para <code>JAVA_HOME<\/code>. A segunda confirma que o compilador est\u00e1 instalado:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>java -XshowSettings:properties -version\njavac -version\n<\/code><\/pre>\n<\/div>\n<h3>Conex\u00e3o Ghidra<\/h3>\n<p><b>Windows (PowerShell):<\/b><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>$env:GHIDRA_INSTALL_DIR = \"C:\/tools\/ghidra_12.1.4_PUBLIC\"\n$env:JAVA_HOME = \"C:\/tools\/jdk-21\"\nnpx -y rea-agents@latest doctor --provider ghidra --json\nnpx -y rea-agents@latest setup\n<\/code><\/pre>\n<\/div>\n<p><b>macOS\/Linux:<\/b><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>export GHIDRA_INSTALL_DIR=\"\/absolute\/path\/to\/ghidra_12.1.4_PUBLIC\"\nexport JAVA_HOME=\"\/absolute\/path\/to\/jdk-21\"\nnpx -y rea-agents@latest doctor --provider ghidra --json\nnpx -y rea-agents@latest setup\n<\/code><\/pre>\n<\/div>\n<p>Substitua os caminhos pelos seus pr\u00f3prios. Mantenha os comandos em uma sess\u00e3o de terminal: ap\u00f3s definir as vari\u00e1veis \u200b\u200bde ambiente, execute novamente o setup, confirme a atualiza\u00e7\u00e3o da configura\u00e7\u00e3o e reinicie o OpenCode.<\/p>\n<p>A verifica\u00e7\u00e3o do provedor deve retornar um relat\u00f3rio bem-sucedido:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest doctor --provider ghidra --json\n<\/code><\/pre>\n<\/div>\n<h3>Exemplo de an\u00e1lise nativa<\/h3>\n<p>Forne\u00e7a ao agente o caminho completo para o arquivo execut\u00e1vel e especifique o provedor:<\/p>\n<blockquote><p>&#8220;Use REA com um provedor configurado para explorar <code>\/absolute\/path\/to\/program<\/code>. Liste as fun\u00e7\u00f5es e linhas e explique a parte que trata a entrada do usu\u00e1rio, com refer\u00eancias ao c\u00f3digo.&#8221;<\/p><\/blockquote>\n<p>Ou execute o comando diretamente do terminal:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest function \"\/absolute\/path\/to\/program\" main --provider ghidra --json\n<\/code><\/pre>\n<\/div>\n<p>Substitua <code>main<\/code> pelo nome ou endere\u00e7o da fun\u00e7\u00e3o da lista de fun\u00e7\u00f5es do programa alvo. O resultado cont\u00e9m pseudoc\u00f3digo, assembler e refer\u00eancias entre chamadas.<\/p>\n<h2>An\u00e1lise de outro tipo de software<\/h2>\n<p>Selecione a categoria de software alvo:<\/p>\n<ul>\n<li><b>JavaScript \/ Electron<\/b> &#8211; requer Node.js e npm. <a href=\"https:\/\/rea.tools\/guides\/javascript\/\">Guia<\/a>.<\/li>\n<li><b>Sites<\/b> &#8211; Requer navegador Chrome, Chromium ou Edge. <a href=\"https:\/\/rea.tools\/guides\/browser\/\">Guia<\/a>.<\/li>\n<li><b>Android APK<\/b> &#8211; requer JADX e JDK 17+. <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/main\/docs\/android-an\u00e1lise.md\">Manual<\/a>.<\/li>\n<li><b>Execut\u00e1veis \u200b\u200bnativos<\/b> &#8211; requer Hopper, Ghidra ou IDA. <a href=\"https:\/\/rea.tools\/guides\/native\/\">Guia<\/a>.<\/li>\n<li><b>Assemblies .NET<\/b> &#8211; requer Node.js e npm. <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/main\/docs\/administrado-code-an\u00e1lise.md\">Manual<\/a>.<\/li>\n<\/ul>\n<h2>Usando REA do terminal<\/h2>\n<h3>An\u00e1lise est\u00e1tica de aplica\u00e7\u00e3o JavaScript\/Electron<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest analyze-javascript-application \"\/absolute\/path\/to\/app\" --json\n<\/code><\/pre>\n<\/div>\n<p><i>Substitua o caminho pela pasta do aplicativo ou arquivo .asar.<\/i><\/p>\n<p><b>Onde encontrar o arquivo .asar do aplicativo Electron:<\/b><\/p>\n<ul>\n<li><b>Windows:<\/b> <code>C:\\Users\\&lt;you&gt;\\AppData\\Local\\Programs\\&lt;App&gt;\\resources\\app.asar<\/code><\/li>\n<li><b>macOS:<\/b> <code>\/Applications\/&lt;App&gt;.app\/Contents\/Resources\/app.asar<\/code><\/li>\n<li><b>Linux:<\/b> <code>\/opt\/&lt;App&gt;\/resources\/app.asar<\/code><\/li>\n<\/ul>\n<h3>Instala\u00e7\u00e3o global do comando rea<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npm install --global rea-agents\n<\/code><\/pre>\n<\/div>\n<p>Depois disso, o comando <code>rea --help<\/code> estar\u00e1 dispon\u00edvel.<\/p>\n<h3>Instala\u00e7\u00e3o via curl (macOS\/Linux)<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>curl -fsSL https:\/\/raw.githubusercontent.com\/morluto\/rea\/main\/install.sh | bash\n<\/code><\/pre>\n<\/div>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, siga as instru\u00e7\u00f5es para configurar o agente. Se o menu de configura\u00e7\u00e3o n\u00e3o aparecer, execute <code>rea setup<\/code>.<\/p>\n<h2>Atualizar e excluir<\/h2>\n<h3>Atualiza\u00e7\u00e3o do REA<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx rea-agents@latest setup\n<\/code><\/pre>\n<\/div>\n<p><i>Para instala\u00e7\u00e3o global: <code>rea update<\/code><\/i><\/p>\n<h3>Removendo REA<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx rea-agents@latest uninstall\n<\/code><\/pre>\n<\/div>\n<h2>Obtendo ajuda<\/h2>\n<ul>\n<li><b>Perguntas frequentes<\/b>: <a href=\"https:\/\/rea.tools\/faq\/\">rea.tools\/faq\/<\/a> &#8211; respostas r\u00e1pidas sobre atualiza\u00e7\u00f5es, agentes e an\u00e1lises<\/li>\n<li><b>Guias<\/b>: <a href=\"https:\/\/rea.tools\/guides\/\">rea.tools\/guides\/<\/a> &#8211; exemplos para an\u00e1lise bin\u00e1ria, Electron e de navegador<\/li>\n<li><b>Problemas do GitHub<\/b>: <a href=\"https:\/\/github.com\/morluto\/rea\/issues\">github.com\/morluto\/rea\/issues<\/a> &#8211; reportar um problema<\/li>\n<li><b>Discord<\/b>: <a href=\"https:\/\/discord.gg\/GkcryMnJDM\">discord.gg\/GkcryMnJDM<\/a> &#8211; perguntas, investiga\u00e7\u00f5es e trabalhos em andamento<\/li>\n<\/ul>\n<h2>Problemas t\u00edpicos<\/h2>\n<h3>OpenCode n\u00e3o v\u00ea REA<\/h3>\n<p>Reinicie o OpenCode ap\u00f3s a configura\u00e7\u00e3o. Use o comando <code>doctor<\/code> para testar a conex\u00e3o:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest doctor --client opencode --json\n<\/code><\/pre>\n<\/div>\n<h3>O provedor requer configura\u00e7\u00e3o<\/h3>\n<p>Para executar Ghidra:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx -y rea-agents@latest doctor --provider ghidra --json\n<\/code><\/pre>\n<\/div>\n<p>O relat\u00f3rio mostrar\u00e1 o teste que falhou e a pr\u00f3xima etapa sugerida.<\/p>\n<h3>Windows, WSL e caminhos com espa\u00e7os<\/h3>\n<ul>\n<li>Use o PowerShell para clientes Windows<\/li>\n<li>Se o agente estiver sendo executado dentro do WSL, instale o Node.js e o REA dentro desse sistema Linux e use os caminhos do Linux<\/li>\n<li>No terminal, coloque os caminhos com espa\u00e7os entre aspas<\/li>\n<\/ul>\n<h3>Configurando o Hopper no macOS<\/h3>\n<p>Se o macOS solicitar que voc\u00ea permita a automa\u00e7\u00e3o, permita o aplicativo que executa o REA nas Prefer\u00eancias do Sistema: Prefer\u00eancias do Sistema \u2192 Privacidade e Seguran\u00e7a \u2192 Automa\u00e7\u00e3o e tente novamente.<\/p>\n<h2>Links<\/h2>\n<p><a href=\"https:\/\/github.com\/morluto\/rea\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/morluto\/rea<\/a><br \/>\n<a href=\"https:\/\/rea.tools\/\" rel=\"noopener\" target=\"_blank\">https:\/\/rea.tools\/<\/a><br \/>\n<a href=\"https:\/\/rea.tools\/get-started\/\" rel=\"noopener\" target=\"_blank\">https:\/\/rea.tools\/get-started\/<\/a><br \/>\n<a href=\"https:\/\/rea.tools\/guides\/\" rel=\"noopener\" target=\"_blank\">https:\/\/rea.tools\/guides\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/docs\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/docs\/mcp-servers\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/mcp-servers\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>REA (Reverse Engineer Anything) \u00e9 um servidor MCP que permite fazer engenharia reversa de aplicativos de software, bin\u00e1rios e comportamento em tempo real. A ferramenta cobre o caminho desde o comportamento do aplicativo at\u00e9 o c\u00f3digo de m\u00e1quina e \u00e9 conveniente usar OpenCode como agente que o gerencia. OpenCode \u00e9 um agente de programa\u00e7\u00e3o aberto [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-213","post","type-post","status-publish","format-standard","hentry","category-software"],"translation":{"provider":"WPGlobus","version":"3.0.6","language":"pt","enabled_languages":["en","ru","zh","de","ja","fr","es","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"es":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":true,"content":true,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=213"}],"version-history":[{"count":1,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/213\/revisions"}],"predecessor-version":[{"id":214,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/213\/revisions\/214"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}