Pular para o conteúdo

Código fechado já não é mais uma barreira (REA explicado)

Ver no idioma original →

Autoria: Rob Shocks · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Closed Source Is No Longer a Moat (REA Explained) · Canal: Rob Shocks · 09:06 · Assistir no YouTube

Tópicos: Agentes de IA, Cibersegurança e segurança de software, Engenharia de software com IA

REA é um repo open source que conecta agentes a ferramentas de engenharia reversa para investigar binários sem acesso ao código-fonte original e apresentar evidências sobre seu funcionamento. O vídeo demonstra o processo com um aplicativo criado pelo apresentador: o agente identifica a lógica de um código de desbloqueio e cria um gerador próprio, sem recuperar o código original. Rob argumenta que a facilidade crescente de análise reduz a proteção proporcionada pela complexidade da engenharia reversa, mas não elimina a importância de dados, segurança na nuvem e distribuição. Ele também alerta para riscos legais e de segurança e recomenda usar a ferramenta em ambientes autorizados e isolados.

  • REA é um MCP server e CLI que permite a agentes investigar aplicativos compilados, incluindo binários nativos, APKs e firmware.
  • A ferramenta não recupera o código-fonte original: ela pode produzir pseudocódigo, mapas de módulos, caminhos de chamadas e outras evidências.
  • REA integra ferramentas de engenharia reversa existentes, como Ghidra, e reduz a dificuldade de usá-las por meio de ferramentas em linguagem simples.
  • Na demonstração, o agente analisou um aplicativo compilado, encontrou a regra de desbloqueio e criou um gerador de códigos.
  • O apresentador afirma que empresas devem presumir que a lógica de aplicativos distribuídos no lado do cliente pode ser mapeada por agentes.
  • Segundo Rob, a vantagem competitiva está mais em dados, usuários, segurança na nuvem, velocidade de entrega e sistemas no servidor do que em manter o código fechado.
  • A engenharia reversa pode ter implicações legais; os termos de serviço, DRM e criptografia podem impor restrições ou criar problemas jurídicos.
  • A captura de execução não é um sandbox: o alvo pode rodar com as permissões do usuário, então é necessário cautela e isolamento.
  • Usos sugeridos incluem auditar aplicativos no próprio computador, estudar funcionalidades e recuperar a lógica de builds próprios.
Início Capítulo Resumo
00:00 O que é REA e o que ele revela Rob apresenta o REA e explica que a ferramenta investiga aplicativos sem código-fonte, gerando análises e evidências em vez de recuperar o código original.
02:40 Ferramentas, configuração e cuidados O vídeo explica como o REA conecta agentes a ferramentas de engenharia reversa, inclui uma demonstração patrocinada de testes e alerta para riscos ao inspecionar binários.
04:16 Demonstração com um aplicativo próprio Rob usa um aplicativo compilado de cofre para mostrar o agente encontrando a lógica de desbloqueio e criando um gerador de códigos sem copiar o código-fonte.
06:54 Impactos, legalidade e usos responsáveis O apresentador discute as implicações para o software distribuído, ressalta os riscos legais e de segurança e sugere usos autorizados para a ferramenta.

O código original desaparece quando um aplicativo é compilado. — 01:36

Ele entendeu a lógica e então escreveu algo completamente novo. — 05:22

Se você distribui um aplicativo desktop, deve presumir que o agent de qualquer pessoa pode mapear como ele funciona. — 06:24

Seu diferencial está nos seus dados, nos seus usuários, na segurança da nuvem e na rapidez com que você entrega. — 06:54

  • REA (repo): Repo open source que permite a agentes investigar binários e outros alvos para explicar como funcionalidades podem operar.
  • Ghidra (ferramenta): Ferramenta de engenharia reversa usada na demonstração para analisar e decompilar o binário do aplicativo.
  • Hopper (ferramenta): Ferramenta de engenharia reversa para Mac citada como parte do conjunto de ferramentas já usado por especialistas.
  • IDA Pro (ferramenta): Ferramenta comercial de engenharia reversa mencionada como padrão do setor.
  • MCP server (conceito): Componente que permite integrar o REA a agentes compatíveis com MCP.
  • CLI (conceito): Interface de linha de comando que o REA oferece para configuração e uso.
  • Test Right (ferramenta): Agente de testes patrocinador do vídeo que cria e executa testes end-to-end em um aplicativo.
  • Rob Shocks (pessoa): Apresentador do vídeo, desenvolvedor de software e gerente de produto.

00:00 Certo, então existe um novo repo open source que permite ao seu agente de programação — que pode ser Claude Code, Cursor, Codex, qualquer ferramenta que você use — examinar um app para o qual não tem o código-fonte, descobrir como um recurso funciona, mostrar as evidências e, então, criar uma versão para você. As pessoas estão fazendo isso com jogos e software. Estão quebrando a proteção de aplicativos desktop que permaneceram de código fechado pelos últimos 20 anos. Então, isso se chama REA, sigla de reverse engineer anything. E é um dos repos que mais crescem no GitHub agora: algo como 7 ou 8 mil estrelas em um único dia, e esse número cresce a cada minuto.

00:32 Sou Rob, da Suite Dimension. Tenho 20 anos de experiência como desenvolvedor de software e gerente de produto, e neste canal criamos coisas reais com agentes de IA. E quero fazer duas coisas neste vídeo. Primeiro, mostrar o que REA realmente faz, porque a maioria das publicações que estou vendo sobre isso está entendendo tudo errado. E, segundo, explicar por que acho que isso muda algo muito importante para qualquer pessoa que lança software. E vou mostrar isso funcionando com um código-fonte que criei e cuja chave joguei fora, para ver se conseguimos recuperá-lo. Isso é só empolgação exagerada ou realmente funciona? Então, aqui está a proposta do README, que é basicamente a seguinte. Você vê um recurso em um app que quer no

01:04 seu próprio produto. Você pede ao agente que investigue, e ele consegue fazer isso sem o código-fonte do app. Ele consegue examinar o interior e detalhar como funciona. Por baixo dos panos, é basicamente um servidor MCP e uma CLI, que você pode conectar facilmente ao Claude Code, Codex, Cursor, ao que quiser — basicamente, qualquer coisa que fale MCP, e hoje há muitas opções assim. E não se trata apenas de apps Electron, nos quais já podíamos ver parte do código-fonte. Estou falando de binários nativos no Mac, Windows e Linux. Isso abrange uma enorme parcela dos apps desktop que você usa todos os dias: .NET, APKs do Android, firmware, sites,

01:36 e até bytecode de contratos inteligentes. Agora, é aqui que as pessoas ficam um pouco confusas. Isso não simplesmente entrega o código-fonte original. Nada consegue fazer isso. Quando um app é compilado, o código original desaparece. O que você vai obter dessa investigação é pseudocódigo, assembly, mapas de módulos, caminhos de chamadas e atividade de rede, com algumas evidências anexadas para mostrar por que o agente acha que o app foi construído dessa forma. E as evidências que ele fornece são realmente interessantes. Cada descoberta vem acompanhada da origem, do nível de confiança do modelo e daquilo que ele não conseguiu descobrir sozinho. Esse é o tipo de coisa que, antes, teria custado muito dinheiro e tomado muito tempo para

02:09 ser feita. Então, a arquitetura é realmente simples. A própria REA não é um descompilador. Não tem nada de revolucionário ou especial. Basicamente, ela reúne ferramentas sérias que profissionais de engenharia reversa já usam, como o Ghidra, que é gratuito e da NSA, o Hopper, para Mac, e o Pro, que é o padrão caro do setor. Então, todo esse trabalho de engenharia reversa já era possível, com tempo e dinheiro suficientes. A diferença agora é que o atrito foi eliminado. Essas ferramentas são incrivelmente poderosas, mas também notoriamente

02:40 difíceis de aprender. O que a REA faz é oferecer ao seu agente dezenas de ferramentas de intenção em texto simples, por cima delas. Coisas como abrir este binário, encontrar as strings, seguir os chamadores de uma função, para que ele consiga se orientar e entender o código. A configuração é muito simples. Basta executar npx rea-agent-setup. Ele mostra um plano do que vai alterar. Faz backup da sua configuração, adiciona o servidor MCP e uma skill que ensina o agente a fazer a investigação. E depois pede autorização antes de mexer em qualquer coisa crítica. Os agentes de programação muitas vezes terminam uma sessão dizendo que está tudo funcionando perfeitamente, mas, na realidade,

03:13 há vários problemas, especialmente quando o sistema chega à produção. Este vídeo é patrocinado pelos velhos amigos da Test Right. É um agente de testes de IA que escreve testes de ponta a ponta e depois os executa no seu app real em funcionamento. Um teste de ponta a ponta é exatamente isso: não é apenas um teste simples; ele se passa por um usuário para ver se o app realmente funciona. O que eu gosto é que ele se conecta diretamente ao seu agente de programação. Há uma CLI open source e um servidor MCP. Então, no Claude Code, basta dizer: “Ei, me ajude a testar o fluxo de finalização da compra.” Ele escreve 12 testes e os executa em um navegador real

03:44 e na nuvem, e posso configurá-lo para rodar em uma programação recorrente. Talvez um teste falhe, por exemplo, porque o código promocional não está sendo descontado do total do pedido. O resultado da falha informa qual etapa falhou. Ele fornece uma captura de tela e a causa raiz. Então, o agente corrige o problema, executa os testes de novo e temos 12 de 12 testes aprovados. E esses testes são mantidos, então são executados a cada alteração. Você pode experimentar gratuitamente; o link está na descrição. Instale a CLI. Da próxima vez que seu agente terminar e disser que está pronto, peça à Test Right que prove isso. Agora, como sempre, faço questão de deixar isso bem claro: tenha muito cuidado com essa ferramenta. Ela é realmente poderosa. Você vai

04:16 usar essa ferramenta para inspecionar todos esses binários e ferramentas sem saber o que há dentro deles. Pode haver instruções maliciosas ocultas para a sua IA. Execute tudo isso em um sandbox. Tenha muito cuidado. Certo, vamos usar a ferramenta de verdade. E eu queria fazer um teste justo, não algo do tipo: “Confia em mim, cara, funcionou.” Então, criei meu próprio app para isso. Não posso testar isso em um app proprietário que já existe por aí, ou vou ser processado. Então, simplesmente criei um app meu para vocês verem como isso funciona. Certo, ele se chama Vault. Você digita um código de desbloqueio, e ele deixa você entrar ou não. Em algum lugar lá dentro, há uma regra que determina qual é um código válido. E aí aparece esta mensagem oculta somente quando

04:49 você acerta. Como o app é meu, não preciso me preocupar com chave de licença e tenho a resposta perfeita para conferir: o código-fonte, que agora vou guardar. Também construí o app da forma como um app real é distribuído: otimizado, com todos os nomes das funções removidos. Então, check unlock code agora é apenas uma função neste endereço, o que é bem mais realista. Agora, para o agente, configurei o Ghidra aqui no meu agente, com o Ghidra ao lado, a ferramenta gratuita da NSA. Ele abre o binário e encontra 242 funções ou mais. Cada uma delas se chama apenas fun seguida de um endereço. E então começa a descompilar, transformando o código de máquina de volta em algo parecido com a linguagem C. Depois de algumas chamadas, ele encontra a função que importa. Então, a grande pergunta: isso realmente funciona? Bem, ele escreveu um pequeno gerador e me deu um código: A G N T, hífen, 1 0 0 1. E consegui entrar. O que muita gente não está percebendo é que ele não está extraindo o código-fonte. Basicamente, está gerando por conta própria, ou detalhando e fazendo engenharia reversa. Ele não copiou o código. Entendeu a lógica e então escreveu algo completamente novo: um gerador de códigos, que meu app nem sequer

05:22 tem. Então, acho que o ponto principal para o desenvolvimento de software é que, durante anos, existiu uma espécie de proteção implícita para o software. Claro, sempre foi possível fazer engenharia reversa de um app. Não é que isso fosse impossível antes, mas era lento, exigia especialização e era muito caro. Então, quase ninguém se dava ao trabalho. Esse atrito da engenharia reversa era a proteção, e a REA basicamente elimina todo esse atrito. Agora, vi muita gente publicar que aviões vão começar a cair do céu porque podem sofrer engenharia reversa e ser hackeados. Eu realmente não acho que isso

05:54 seja

06:24 caso. Ainda há muitos obstáculos e camadas que precisam ser superados antes que você consiga comprometer muitos sistemas. Mas, neste mundo, se você lança um aplicativo para desktop, uma extensão de navegador, um jogo, um aplicativo para celular ou um grande pacote de JavaScript do lado do cliente, agora deve presumir que o agent de qualquer pessoa consegue mapear como ele funciona. Vamos ver alguns mods interessantes de GTA 6 nos próximos meses. E olha, não acho que isso seja um desastre, como tanta gente está dizendo em muitas publicações que tenho visto. Acho apenas que é uma espécie de correção. O código nunca foi realmente a vantagem competitiva, para começo de conversa. Bem, não para

06:54 a maioria de nós, pelo menos. Sua vantagem competitiva está mesmo nos seus dados, nos seus usuários, na segurança da sua nuvem, na rapidez com que você lança novidades, no seu bom gosto e nas coisas que rodam nos seus servidores, onde basicamente ninguém mais consegue inspecioná-las. Um bom aspecto disso é a segurança: você pode apontar isso para aplicativos na sua própria máquina e perguntar: “O que essa coisa está fazendo de verdade? O que está enviando para casa?” Houve muitos casos em que impressoras 3D e até máquinas de café foram comprometidas e passaram a enviar grandes quantidades de dados da sua rede para alguma origem da qual você não tinha conhecimento. Certo, então os pontos importantes. Três coisas. Primeiro, a questão legal. Não sou advogado. Isto não é aconselhamento jurídico, mas a engenharia reversa para fins de interoperabilidade

07:28 geralmente tem sido protegida, então é algo que, em certa medida, você pode fazer. Mas muitos aplicativos têm termos de serviço que a proíbem expressamente. E burlar DRM ou criptografia é um problema jurídico totalmente separado. Seus próprios aplicativos, binários open source, desafios de segurança e coisas que você tem autorização para testar são território seguro. O aviso legal da própria OREA diz que você é responsável. A segunda coisa é que isto não é uma sandbox. Se você submete um alvo à captura em tempo de execução, ele roda com as suas permissões. Então, não o aponte para qualquer binário aleatório que você baixou de um fórum e mantenha os prompts de aprovação do seu agent

08:01 ativados, para saber o que ele está fazendo. Quem sabe que tipo de prompt injection pode haver ali. E outra coisa é que este repo parece estar avançando extremamente rápido. Muitas mudanças incompatíveis, uma energia incrível, mas espere que ele mude continuamente. Então, não deixe de atualizá-lo com frequência. Agora, como engenheiro de software, estas são algumas coisas para as quais eu consideraria isso muito útil. Aprender como ótimos aplicativos para desktop lidam com coisas como sincronização offline, áreas de transferência e busca, e depois criar minha própria versão. Eu usaria isso para auditar aplicativos Electron na minha máquina, dos quais tenho tantos agora, e também para recuperar a lógica das minhas próprias versões compiladas, caso o código-fonte tenha desaparecido. O que eu

08:35 não faria é simplesmente apontar isso para um concorrente e clonar o produto. É algo juridicamente arriscado e não entende o ponto. O que você quer fazer é compreender a ideia e criar algo melhor, porque nunca vai conseguir igualar o marketing daquela empresa de qualquer maneira. E agora tudo gira em torno da distribuição. Então, fiquei curioso: se você pudesse apontar isso para um recurso de um aplicativo, qual seria? Conte para mim nos comentários. Se quiser se aprofundar na criação com agents, MCPs e coisas desse tipo, é exatamente isso que fazemos na Switch Dimension, o curso e a comunidade. As inscrições estão fechadas no momento, mas a lista de espera está aberta, e o link está na descrição. E, se isso foi útil, inscreva-se no canal. Falo sobre as ferramentas de agent que realmente importam e deixo de lado as que

09:06 não importam. Em seguida, confira este vídeo sobre skills.

Transcrição original

[00:00] Okay, so there’s a new open-source repo that lets your code the agent that might be Claude Code, Cursor, Codex, whatever you use, look inside an app that it has no source code for, figure out how a feature works, show you the evidence, and then build you a version. People are doing this for games, for software. They’re cracking desktop applications that have been closed source for the last 20 years. So, it’s called REA, which stands for reverse engineer anything. And it’s one of the fastest rising repos on GitHub right now, something like 7 or 8 thousand stars in a single day and growing by the minute.

[00:32] I’m Rob from Suite Dimension, 20 years as a software developer and product manager, and on this channel we build real stuff with AI agents. And I want to do two things in this video. First, show you what REA actually does, because most of the posts that I’m seeing about this are getting it really wrong. And second, explain why I think it changes something really big for anyone who ships software. And I’m going to actually show you working on some source code that I built and threw away the key to see if we can actually get it back again. Is this thing all hype or does it actually work? So, here’s the pitch from the readme, and it’s basically this. You see a feature in an app that you want in

[01:04] your own product. You go and ask the agent to investigate it, and it can do that without the actual source code of the app. It’s able to look inside and break it down. Under the hood, it’s basically an MCP server and a CLI, which you can easily plug into Claude Code, Codex, Cursor, whatever you want, basically anything that speaks MCP, and that’s a lot now. And this isn’t just Electron apps where we could see some of the source code before. I’m talking about native binaries on Mac, Windows, and Linux. This is a huge chunk of the desktop apps that you use every day. .NET, Android APKs, firmware, websites,

[01:36] even smart contract bytecode. Now, here’s where people are getting a little bit confused. It doesn’t just hand you the original source code. Nothing can do that. When an app is compiled, the original code is gone. What you’re going to get back from this investigation is pseudo code, assembly, module maps, call paths, and network activity with some evidence attached to show you why the agent thinks it’s built this way. And the evidence gives you back is really interesting. Every finding comes back with where it came from, how confident the model is, and what it couldn’t figure out itself. This is the kind of thing you would have spent an awful lot of money on and a huge amount of time to

[02:09] do previously. So, the architecture is really simple. So, Riya itself isn’t a decompiler. It’s nothing revolutionary or special. It’s basically wrapping the serious tools reverse engineers already use, which is things like Ghidra, which is free and from the NSA, Hopper on the Mac, and Pro, which is the expensive industry standard. So, all of this reverse engineering was possible before with enough time and enough money. The difference now is the friction has been removed. So, these tools are all incredibly powerful and also notoriously

[02:40] hard to learn. What Riya does is give your agent dozens of plain text intent tools on top of them. Things like open this binary, find the strings, follow the function callers, so it can find its way through and understand the code. Setup is super simple. It’s just NPX Riya-agent-setup. It shows you a plan of what it’s going to change. It backs up your config, adds the MCP server, and a skill that teaches your agent how to do the investigation. And then it asks before touching anything critical. Coding agents often finish a session telling you everything is working great, but in reality there

[03:13] are multiple issues, particularly when it hits production. This video is sponsored by longtime friends Test Right. It’s an AI testing agent that writes end-to-end tests and then runs them against your real running app. So, an end-to-end test is exactly that. Not just a simple test, it’s actually impersonating a user to see if the app really works. The bit I like is it plugs straight into your coding agent. There’s an open source CLI and an MCP server. So, in Cloud Code I just say, “Hey, help me test the checkout flow.” It writes 12 tests, it runs them in a real browser

[03:44] and in the cloud, and I can set this up to run on a schedule. Maybe a test fails, like the promo code isn’t coming off the order total. The failure comes back with the failing step. It gives you a screenshot and the root cause. So, the agent fixes it then reruns and we get 12 out of 12 passing tests. And those tests are kept, so they run on every single change. You can try it for free, link in the description. Install the CLI. Next time your agent finishes and says it’s done, get Test Right to prove it. Now, as always, I’m totally holding my hands up here. Be so careful with this. This is really powerful. You’re going to be

[04:16] using this tool to inspect all these binaries and tools that you have no idea what’s inside of. There could be hidden malicious in instructions for your AI. Run this stuff in a sandbox. Be very careful. Okay, so let’s actually use it. And I wanted to do a fair test, not a kind of a, you know, trust me, bro, it worked. So, I built my own app for this. I can’t run this against an existing proprietary app out there or I will get sued. So, I just built my own one so you can see how this works. Okay, so it’s called a vault. You type in an unlock code and it either lets you in or it doesn’t. Somewhere inside I’ve got a rule for what a valid code is. And then this hidden message appears only when

[04:49] you get it right. Because it’s my app, there’s no license key to worry about and I’ve got the perfect answer key, the source code, which I am now going to put away. So, I also built this the way a real app ships, which is optimized with every function name stripped out. So, check unlock code is now just a function at this address, which is a lot more realistic. Now for the agent, I’ve got Ghidra set up in my agent here with Ghidra beside it, the free one from the NSA. So, it opens up the binary and it gets back 242 plus functions. Every one of them is just called fun and an

[05:22] address. And it then it starts to decompile, turning machine code back into something a bit like the language C. So, within a handful of calls it’s actually found the one that matters. So, the big question, does it actually work? Well, it wrote me a little generator and gave me a code, A G N T dash 1 0 0 1. And I’m in. Big thing people are missing here is it’s not pulling out the source code. It’s basically generating itself or breaking it down and reverse engineering it. It didn’t copy the code. It understood the logic and then wrote something completely new, a code generator, which my app doesn’t even

[05:54] have. So, I guess the big thing for software development, for years there’s been this kind of unspoken protection that software has been afforded. Sure, you could always reverse engineer app. It’s not that this wasn’t possible before, but it was slow, specialized, and really expensive. So, almost nobody ever bothered doing it. That friction of reverse engineering was the protection and REA and REA basically deletes all that friction. Now, I’ve seen a lot of people post about how planes are going to start falling out of the sky because they can be reverse engineered and hacked. I really don’t think that is the

[06:24] case. There are still so many hurdles and layers that you need to get to before you can compromise many systems. But, in this world, if you ship a desktop app, a browser extension, a game, a mobile app, or a big client-side JavaScript bundle, you should now assume that anyone’s agent can map out how it works. We’re going to see some interesting GTA 6 mods coming up in the next few months. And look, I don’t think this is a disaster like so many people are saying on a lot of posts that I’m seeing. I just think it’s a bit of a correction. Code was never really the moat in the first place. Well, not for

[06:54] most of us anyway. Your moat really is in your data, your users, your your cloud security, how fast you ship, your taste, and the stuff that runs on your servers, where basically nobody else can inspect it. Good security flip side to this, you can point this at apps on your own machine and ask, “What is this thing actually doing? What is it sending home?” There have been lots of cases where 3D printers and even coffee machines have been compromised under sending tons of data off your network back to some source that you were not aware of. Okay, so the important bits. Three things. One, legal. I am not a lawyer. This isn’t legal advice, but reverse engineering for interoperability

[07:28] had generally been protected, so it’s something you’re kind of allowed to do. But, a lot of apps have terms of service that exclusively ban it. And breaking DRM or encryption is a whole separate legal problem. Your own apps, open source binaries, security challenges, and things you’re authorized to test are the safe ground. OREA’s own disclaimer says you are responsible. Second thing is, this isn’t a sandbox. If you run a target through its runtime capture, it runs with your permissions. So, don’t point it at any random binary you downloaded off a forum, and make sure you’re keeping your agent’s approval

[08:01] prompts which on, so you know what it’s doing. Who knows Who knows what kind of prompt injection could be in there. And the other thing is, this repo seems to be moving extremely fast. Lots of breaking changes, amazing energy, but expected to change continuously. So, make sure you’re updating it constantly. So, as a software engineer, things that I would find this really useful for. So, learning how great desktop apps handle things like offline sync, clipboards, and search, and then go and build my own version. I’d be using it to audit electron apps on my machine, which I have so many of now, and then recovering logic from my own builds, where that source maybe has gone missing. What I

[08:35] wouldn’t do is just point this at a competitor and clone the product. It’s a legally risky thing to do, and it misses the point. What you want to do is understand the idea and build something better, because you’re never going to match that company’s marketing anyway. And now it’s all about distribution. So, I’m curious. If you could point this at one feature in one app, what would it be? So, tell me in the comments. If you want to go deeper on building with agents, MCPs, and things like this, that’s exactly what we do in Switch Dimension, the course and community. It’s closed at the moment, the waitlist is open up, and the link is in the description. And if this was useful, hit subscribe. I cover the agent tools that actually matter, and skip the ones that

[09:06] don’t. Next, check this one out on skills.