Engenharia Reversa com IA: a Adobe morreu?
Episódio
Transcrição
Marvin
Gravado em treze de outubro de dois mil e vinte e seis. Este episódio parte do post Engenharia Reversa com IA: a Adobe morreu?, publicado em treze de outubro de dois mil e vinte e seis no akitaonrails.com. Quem quiser o texto completo, os links e cada fonte, lê lá. Se não quiser perder o próximo, assina a newsletter no themakitachronicles.com. A semana no X foi previsível: PhotoCraft, REA, port de jogo antigo todo dia, e daí a conclusão de que a Adobe morreu, nenhum binário é sagrado e programador acabou. Akita, me poupe do tweet e me diga o que isso faz de verdade.


Akita
Se você só lê manchete, a conclusão até faz sentido. Explodiu no dia nove, quando uma conta resumiu o que o Brandon Thomas, de Atlanta, vinha soltando desde o fim de setembro: sete clones open source dos produtos principais da Adobe, em Rust, com ajuda do Claude Opus. Photoshop, Illustrator, Premiere, Lightroom, After Effects, InDesign, Acrobat. Tudo de graça, tudo em sala limpa, sem uma linha da Adobe. Na mesma semana o REA, Reverse Engineer Anything, passou de cem mil estrelas no GitHub, ganhando dezenas de milhares por dia.
Marvin
E a promessa da página é aquela fantasia de todo product manager: viu uma feature no app do vizinho, pede pro agente investigar e constrói a sua.


Akita
Exato. Quem acompanha retrô sabe que dois mil e vinte e seis não para. Tem planilha comunitária tentando listar port não oficial pra PC, uns cem jogos, de Ship of Harkinian a Skate 3, e ela está sempre atrasada. O canal Video Game Esoterica solta port novo quase todo dia: Time Crisis decompilado do arcade, Daytona USA, Bloodborne. A versão de Xbox One do Forza Horizon 2, presa desde dois mil e catorze, roda em Windows. AnyPS5 promete converter executável de PS5 em binário nativo de PC, e emuladores como KytyPS5 e SharpEmu já rodam Astro Bot de verdade. Boa parte com IA no meio, alguns abertamente vibe-coded.
Marvin
Daí o consenso planetário: apontou o agente, acabou. Programar virou hobby de gente nostálgica.


Akita
Papo reto: ficou muito mais fácil. Ainda está longe da bala de prata que a galera imagina. E o motor por trás, o LLM, parou de crescer exponencialmente. Engenharia reversa tem quarenta anos de ferramenta madura. A IA acelerou o braçal, com destaque pro retrô, onde o binário está disponível, é minúsculo e o alvo não se move. O resto do papo é o porquê.
Marvin
Antes de defender a Adobe, que ninguém pediu, você abriu o texto dizendo que não gosta dela. Então não vem de fã-clube.


Akita
Detesto as práticas comerciais tanto quanto qualquer um. Fui cliente pagante por anos, usei Photoshop e Premiere pra valer, mais Lightroom e After Effects, e saí pelos mesmos motivos de todo mundo: assinatura compulsória, cancelamento com multa, preço subindo sem contrapartida. E é exatamente por ter usado a fundo que eu sei o tamanho do que está dentro daquelas caixas. Quem acha que Photoshop é camada, crop e texto nunca precisou de prova de cor pra gráfica, nunca abriu um RAW cujo perfil a Adobe mantém há vinte anos, nunca fez conformação de material de cinema. Chego nisso depois do básico.
Marvin
Beleza. Então a disciplina não nasceu na terça-feira passada. Me dá a linha do tempo sem transformar isso num documentário da Discovery.


Akita
Todo emulador que você já usou existe porque alguém abriu hardware, desmontou binário, farejou protocolo e, em alguns casos, quebrou criptografia. Tem jurisprudência, ferramenta comercial e décadas de história. De oitenta e dois a oitenta e quatro a Compaq reescreve a BIOS do IBM PC por engenharia reversa, e em oitenta e quatro a Phoenix vende uma BIOS licenciável feita em sala limpa, com um time que só lia a especificação. Nasce a indústria de PC compatível. Em noventa e dois o Andrew Tridgell cria o Samba farejando pacotes SMB.
Marvin
No mesmo ano os tribunais americanos entram na dança.


Akita
Sega contra Accolade e Atari contra Nintendo firmam nos EUA que desmontar código pra chegar em elementos funcionais é uso justo. A Atari perdeu o caso dela por outro motivo: mentiu pro Copyright Office pra conseguir o fonte. Em noventa e três começa o Wine, que vira a base do Proton e de todo jogo de Windows que roda no Steam Deck hoje. Em noventa e nove o UltraHLE roda jogos comerciais de N64 em velocidade real, o bleem! emula PS1, a Sony processa e perde as liminares, e o bleem! ainda assim fecha em dois mil e um. No mesmo pacote, o DeCSS quebra a proteção do DVD.
Marvin
Sony processa, perde, e o produto morre mesmo assim. O universo é consistente nesse ponto.


Akita
Em dois mil, Sony contra Connectix decide que copiar a BIOS do PS1 pra construir emulador é uso justo. Em dois mil e dois e dois mil e três nascem PCSX2 e Dolphin, os dois que vinte anos depois ainda são referência. Em dois mil e sete o iPhone é aberto onze dias depois do lançamento. A Comissão Europeia obriga a Microsoft a documentar os protocolos de rede, e a equipe do Samba recebe a documentação por dez mil euros.
Marvin
Dez mil euros. A Microsoft deve ter sentido no osso.


Akita
Devem ter soltado um post de parceria com a comunidade e seguido o trimestre em paz. Em dois mil e dez o fail0verflow mostra no 27C3 que a Sony assinou o firmware do PS3 com um nonce fixo, aquele número que deveria ser aleatório em cada assinatura, e expôs a chave privada. Dias depois, já em dois mil e onze, o geohot publica a chave, a Sony processa e faz acordo em março. Em dois mil e onze e dois mil e treze nascem RPCS3, do PS3, e Xenia, do Xbox 360, os dois emuladores mais difíceis já feitos, por motivo que eu explico depois.
Marvin
A fase atual, decomp e recomp em escala. O X trata como se o Claude tivesse inventado a roda. Começa quando, exatamente?


Akita
Dois mil e dezenove. A NSA libera o Ghidra como open source. A decompilação do Super Mario 64 vaza e vira pública, e no ano seguinte aparece o port pra PC. Em vinte e um e vinte e dois, Ocarina of Time cento por cento decompilado depois de quase dois anos; o Ship of Harkinian vira o port de referência. Em vinte e quatro o Mr-Wiseguy lança o Zelda 64 Recompiled, a primeira vitrine da recompilação estática de N64. Em vinte e cinco o Sonic Unleashed Recompiled traz o mesmo truque pro Xbox 360, convertendo PowerPC pra C++ e shaders pra HLSL. A IA entrou numa linha de montagem que já existia.
Marvin
O agente chegou atrasado na festa e ainda assim levou o crédito. Quais ferramentas essa linha de montagem usa, na prática?


Akita
Ferramental maduro, boa parte grátis. IDA Pro da Hex-Rays, o disassembler e decompilador comercial de referência, de mil a quase nove mil euros por ano, com uma versão gratuita limitada a x86. Ghidra, a resposta aberta da NSA, com decompilador e scripting, Apache 2.0. Binary Ninja, edição gratuita e licenças de duzentos a uns três mil e quinhentos dólares. radare2 e o Cutter, interface do rizin, que é fork do radare2.
Marvin
Guarda a lista. Daqui a pouco o REA é só um embrulho em volta dela.


Akita
Exato. Soma x64dbg e WinDbg no Windows, GDB no resto, Frida pra injetar código em processo vivo, JADX pra Android e ILSpy pra.NET. O REA, a gente chega nele, é um embrulho em volta dessa caixa. Não inventou o martelo.
Marvin
Como se desmonta um binário, então. Sem poesia. O processador tem que executar, então as instruções estão lá. Qual o caminho?


Akita
Sempre o mesmo. Primeiro desmontar: o binário vira assembly, uma instrução de máquina por linha. Isso é mecânico. Depois decompilar: o assembly vira algo parecido com C. Ghidra e IDA fazem isso razoavelmente bem, com muito ruído. Aí vem o trabalho de verdade: recuperar o que o compilador jogou fora. Nome de variável, nome de função, tipos, estruturas, comentários. Nada disso sobrevive à compilação. Isso é humano. Por último, refatorar até virar código que uma pessoa consegue ler, manter e portar.
Marvin
Os projetos de N64 levam esse último passo até o fim. Byte a byte.


Akita
O código em C deles, recompilado, gera byte a byte a ROM original. Super Mario 64 virou um projeto com mais de cem mil linhas de C de código efetivo de jogo, mais meio milhão de linhas de dados de fase e modelo gerados. Ocarina of Time passou de quatrocentas mil linhas. A recompilação estática pula parte disso: traduz as instruções do processador original pra C genérico, sem tentar entender, e troca só as partes que falam com o hardware. É mais rápido e o resultado é menos legível.
Marvin
Sempre aparece alguém perguntando: se é IA, pra que passar por C? Deixa o modelo ler o binário direto e construir em cima. Tá de sacanagem com a física do treino, ou tem literatura de verdade?


Akita
LLM só sabe o que estava no corpus de treino, e corpus de binário pareado com código fonte é escasso, porque nenhum humano escreve assembly de produção há décadas. A literatura existe e é instrutiva justamente por ser modesta. Vai de redes neurais de dois mil e dezoito a modelos como o SLaDe, uns duzentos milhões de parâmetros, um por arquitetura e nível de otimização, o LLM4Decompile, até uns trinta e três bilhões, e o Nova. A Meta publicou um LLM Compiler que traduz assembly pra representação intermediária do LLVM.
Marvin
E o resultado, na vida real, não no tweet do laboratório?


Akita
Os melhores, em funções isoladas de benchmark, giram em torno de sessenta e poucos por cento de código que roda de novo e dá o mesmo resultado, caindo forte quando o compilador otimizou no nível três. Dois estudos recentes mostram o estado. O DecompileBench, com dezenas de milhares de funções reais, achou que decompiladores baseados em LLM produzem código mais legível e com metade da correção funcional dos decompiladores comerciais.
Marvin
Mais bonito e mais errado. Clássico.


Akita
Um trabalho de setembro de dois mil e vinte e seis mediu que o refinamento por LLM da saída do Ghidra sobe a taxa de compilação de uns setenta e cinco pra uns noventa por cento e derruba a fidelidade de comportamento de uns setenta e quatro pra uns sessenta e dois. Até uns dez por cento das funções com vulnerabilidade conhecida deixam de reproduzir a falha. O bug sumiu sem ninguém pedir. Modelos pequenos, função por função, quase só x86-64 Linux, e os melhores são camadas em cima do Ghidra. Nenhum emulador, nenhum jogo, nenhum programa inteiro foi recompilado neuralmente.
Marvin
Então o cético que diz que o modelo já lê o binário direto está, na prática, pedindo uma invenção que ainda não existe.


Akita
Enquanto alguém não inventa isso, você trabalha com a realidade, e a realidade inclui a camada intermediária de linguagem e compilador. Os assistentes que existem em produção confirmam o desenho: o aiDAPal, plugin de IDA da Atredis, o Sidekick do Binary Ninja, os servidores MCP pro Ghidra. Todos são um LLM dando nome a variável e explicando função em cima do que o decompilador tradicional produziu.
Marvin
Chegamos no REA, o que passou de cem mil estrelas e promete o botão mágico. Você clonou o repositório. O que ele faz de verdade?


Akita
É um servidor MCP e uma CLI em TypeScript que embrulha as ferramentas da lista e as expõe pro seu agente de código: Ghidra, Hopper, IDA, JADX, Frida, Wakaru pra JavaScript ofuscado, Playwright pra capturar o que um site faz. O agente pede, o REA roda a ferramenta e devolve pseudocódigo, grafo de chamadas, strings e rastros de comunicação entre processos, cada resultado com registro de evidência e lista de limitações. O julgamento continua sendo do LLM que você já paga. O REA põe o encanamento determinístico e a proveniência.
Marvin
A frase que circula, automatiza as heurísticas de engenharia reversa, deve estar no README em neon, né?


Akita
O README é a única página da internet que não promete isso. A descrição que o próprio projeto usa é engenharia reversa dirigida por agente, com evidência rastreável. O que ele exige: o artefato na sua máquina, binário nativo, app Electron, assembly.NET, APK, firmware, captura de rede. Node vinte e dois ponto dezenove ou superior. E as ferramentas pesadas instaladas por sua conta. Ghidra é grátis; IDA, Hopper e JEB o README manda você comprar. Não tem chave de API do REA porque ele roda local, e o custo de token cai inteiro na sua assinatura de agente.
Marvin
Esse custo que ninguém cita. Me dá a ordem de grandeza, um número por vez, sem virar planilha.


Akita
O catálogo de ferramentas MCP do REA tem uns dois megabytes de JSON, que entra no contexto do agente. O próprio projeto publica um experimento: analisar o SQLite compilado em WASM, no caminho padrão, levou dezenas de chamadas de ferramenta, cinco minutos e trezentos mil tokens de entrada. Um inventário completo de um app Electron como o Obsidian devolve quase um megabyte de JSON. Tem issue aberta reclamando que inspecionar um app de Mac comum devolve de oitenta a duzentos e trinta mil tokens de uma vez.
Marvin
Seis meses de projeto sério, então. Não é um gist de fim de semana.


Akita
Sério e vai longe: seis meses, mais de dois mil e quinhentos commits, mil arquivos de teste, versão seis ponto quatro lançada em onze de outubro. Também é instável: cento e noventa issues abertas, várias mudanças incompatíveis a cada versão menor, subsistemas marcados como experimentais. Os limites estão escritos no próprio repositório. O CONTRIBUTING exclui quebra de DRM, anticheat, licença e proteção comercial. O DISCLAIMER avisa que decompilação, reconstrução e análise assistida por IA podem ser incompletas ou incorretas.
Marvin
E as instruções internas pra gerar as figuras do site, essas são as minhas favoritas.


Akita
Com todas as letras: nunca implique que o REA clona um programa automaticamente, e nunca diga reconstrução completa, clone exato ou recuperação automática de código fonte. É uma boa caixa de ferramentas pra quem já sabe fazer engenharia reversa e quer um agente segurando o Ghidra. O botão copia esse app pra mim não está no pacote. Quem escreveu o projeto é o primeiro a dizer isso.
Marvin
PhotoCraft, então. Print bonito, alpha por dentro. Repositório criado em trinta de setembro, duas semanas, dezenas de milhares de estrelas. O X já enterrou a Adobe.


Akita
Oito versões lançadas e, no momento do post, mais de oitocentas issues abertas. O selo no README diz early alpha, e o próprio Brandon Thomas, citado pela Gizmodo, disse que não está nem perto de pronto. A imprensa que testou chegou na mesma conclusão: a Gizmodo chamou de Photoshop cheio de bug, mas real, e o OMG Ubuntu de fac-símile superficial com falhas pronunciadas. As issues contam a história técnica.
Marvin
Me dá as que doem. Sem recitar número de ticket.


Akita
Qualquer imagem acima de uns oito mil pixels sai do compositor de GPU e cai pra CPU, com pico de seis gigabytes de memória, porque o limite de textura do egui-wgpu é esse. Uma foto de doze megapixels precisa de quase oitocentos megabytes só pra abrir, ajustar e exportar pela linha de comando. O gerenciamento de cor é rudimentar: espaço de trabalho só global, em vez de por documento, e sem transformação de visualização. Dezoito issues mencionam CMYK, quinze mencionam perfil ICC.
Marvin
E o formato que, na prática, é o que o mercado usa.


Akita
Quase cem issues abertas mencionam PSD. Camadas de matiz e saturação compõem diferente do Photoshop, e salvar por cima sobrescreve a imagem mesclada correta do arquivo original. Cinquenta issues abertas mencionam crash. A interface lembra o Photoshop, então o print é compartilhável, e quem vê o print assume que é cópia carbono. Isso é esperado numa alpha de duas semanas.
Marvin
O Linus Tech Tips tentou ser otimista e colocou profissional pra usar os clones. Como foi?


Akita
Repara nas tarefas: as mais simples que existem, nada perto de uso profissional. Mesmo assim todo mundo no vídeo sofre pra completar, e dá pra ver o nível de protótipo em cada travada. Com interesse, tempo e contribuição, parte disso vai sendo resolvida. E aí os contribuidores vão descobrir uma coisa que os projetos de N64 nunca enfrentaram. O PhotoCraft hoje é aquela réplica de Ferrari montada em cima de um Fusca: a carroceria tem a forma certa, você tira uma foto e a maioria diz uau, uma Ferrari. Aí você liga e sai o motor de Fusca. Se você se empolgou com a foto, o problema foi seu.
Marvin
Só que o Zelda de noventa e oito não lança patch em dois mil e vinte e seis. Copiar produto vivo é outro filme. O alvo se move.


Akita
Decompilar o Zelda de noventa e oito é mirar num alvo parado. A Nintendo não vai lançar o Ocarina of Time dois mil e vinte e seis com formato de arquivo novo. Nos anos noventa e dois mil o alvo era o Microsoft Office. O StarOffice virou OpenOffice em dois mil e LibreOffice em dois mil e dez, e todos eles passaram anos correndo atrás de um formato binário, o doc, que mudava de versão pra versão e só ganhou especificação pública em dois mil e oito, quando o jogo já tinha acabado.
Marvin
A parte comprovada está nos processos, não no feeling da comunidade.


Akita
A Comissão Europeia multou a Microsoft em quase quinhentos milhões de euros em dois mil e quatro por recusar informação de interoperabilidade, e em quase novecentos milhões em dois mil e oito por descumprir a ordem. O docx só virou padrão ISO em dois mil e oito, numa votação tão controversa que países protestaram formalmente. Levou mais de dez anos. E quando o formato finalmente abriu, o Office já não importava do mesmo jeito.
Marvin
O valor mudou de lugar. Me dá a ordem de grandeza de quem ainda paga, sem virar censo.


Akita
Hoje são uns quatrocentos milhões de licenças pagas de Office trezentos e sessenta e cinco, uns três bilhões de usuários de Google Workspace e uns quarenta milhões de assinantes de Creative Cloud. Ninguém quer instalar aquilo no desktop, e por isso ninguém tem o binário. Fazer engenharia reversa do Google Docs é reescrever o produto do zero olhando só pra interface, porque o código que importa nunca sai do servidor. Depois que o mundo migrou pra SaaS, a maior parte do software proprietário virou jardim murado sem binário. Sem binário, não tem o que desmontar.
Marvin
Immich no lugar do Google Photos. Versão caseira existe. Esse tipo de coisa.


Akita
O Immich substitui o Google Photos pra uma pessoa ou uma família: backup do celular, reconhecimento de rosto, busca semântica, tudo no seu servidor. O que ele não replica é a infraestrutura e o corpus de treino que fazem a busca do Google ser a busca do Google. E a Adobe fez a mesma migração, em pedaços.
Marvin
O cético responde: o binário está no disco, desmonta e acabou. Photoshop é camada e crop com marketing.


Akita
As features que vendem assinatura hoje nem rodam no seu computador. O Generative Fill e o Generative Expand rodam no Firefly, na nuvem, e consomem créditos generativos. Vários Neural Filters, segundo a própria documentação, precisam de internet porque o processamento é no servidor da Adobe. A seleção de objeto por IA tem, desde dois mil e vinte, uma opção de processar na nuvem pra refinar o resultado. Isso tudo é código que não existe na sua máquina pra ninguém desmontar.
Marvin
O que está no binário, então. O que levou décadas e não se alucina num fim de semana.


Akita
O Camera Raw carrega perfis de correção de lente e perfis de cor por câmera pra centenas de modelos, construídos ao longo de vinte anos e atualizados a cada lançamento. Clone nenhum adivinha isso. Ou tem o dado, ou não tem. E tem a ciência de cor. O exemplo que eu sempre lembro é o GIMP e o CMYK. O GIMP nasceu em noventa e cinco. O primeiro suporte nativo a arquivo CMYK chegou em dois mil e vinte e dois, e só de importação e exportação, com o pixel sempre em RGB. O GIMP três ponto zero, de dois mil e vinte e cinco, ainda sem modo de edição em CMYK. Está no roadmap como trabalho em andamento.
Marvin
Trinta anos de projeto aberto, gente boa e motivada, e a gráfica ainda pede Photoshop. É mole?


Akita
Mole seria se a gráfica aceitasse “tá no roadmap” como prova de cor. Esse é o tamanho do buraco da ciência de cor, e nenhum agente de código inventa ciência de cor. Ele reproduz o que está no treino. Por que demorou tanto, se era a feature mais pedida? Porque o núcleo do GIMP nasceu com RGB de oito bits por canal embutido em cada camada, modo de mesclagem e filtro. Suportar outro modelo de cor exigiu reescrever o motor de pixel inteiro, a migração pro GEGL, que levou a maior parte de uma década e só ficou pronta no GIMP dois ponto dez, em dois mil e dezoito. O CMYK só pôde começar depois disso.
Marvin
E CMYK ainda por cima não é uma caixinha pra marcar. É uma família de perfis de dispositivo.


Akita
Quatro tintas, perfil ICC por impressora, limite de tinta e regra de geração de preto. Editar nele significa que toda a cadeia precisa calcular num modelo subtrativo de quatro canais e ir e voltar pelos perfis sem desviar a cor. Um desenvolvedor sozinho, por melhor programador que seja, sem experiência nessa área específica, vai sofrer pra implementar isso, porque o conhecimento está na gráfica e no laboratório de cor, e quase nada dele está em corpus de treino. No GIMP, quem levou a coisa adiante foram contribuidores que entendem de impressão, e mesmo assim foram anos. Ferramenta nova nenhuma atalha esse tipo de conhecimento.
Marvin
Tem ainda a camada que nem é técnica. Licença comercial. Pantone.


Akita
Cor de gráfica é Pantone, e Pantone é uma biblioteca proprietária. Projeto aberto nenhum pode embarcar as paletas; os desenvolvedores do Inkscape chegaram nessa conclusão em dois mil e cinco, e a Linux.com explicou o risco jurídico na mesma época. A própria Adobe sentiu isso em dois mil e vinte e dois: quando a Pantone mudou o modelo de negócio, as bibliotecas saíram do Photoshop, do Illustrator e do InDesign, arquivos antigos passaram a abrir com as cores Pantone trocadas por preto, e quem precisa delas paga uma assinatura separada de plugin. Se nem a Adobe, pagando, escapou, imagine um clone que vive de boa vontade.
Marvin
Vídeo é pior. Premiere, After Effects, DaVinci. Câmera de cinema não entrega vídeo, entrega dado bruto numa curva logarítmica própria.


Akita
LogC4 da ARRI, IPP2 da RED. Pra transformar aquilo em imagem, você precisa das transformadas do fabricante, e a RED entrega as dela num SDK que os editores integram e atualizam a cada versão. O ACES, o padrão neutro da indústria, depende de transformadas de entrada fornecidas por cada fabricante. A Blackmagic dá o Resolve de graça e ele decodifica ARRIRAW e R3D. Faz isso porque paga o SDK e a parceria por você. Um clone feito por agente, adivinhando como a imagem da Alexa deve ficar, produz uma imagem que não bate com o monitor de referência, e no cinema isso significa que não serve. Esse conhecimento não está em corpus de treino nenhum: está em contrato.
Marvin
Pra ter noção de ordem de grandeza, você puxou o caso Bun. Quanto custa reescrever software grande quando você tem todas as vantagens do mundo.


Akita
Melhor dado público que existe. Em maio de dois mil e vinte e seis, Jarred Sumner reescreveu o runtime inteiro de Zig pra Rust usando agentes, e em julho publicou os números. Mais de quinhentas mil linhas de Zig em quase mil e quinhentos arquivos viraram um diff de um milhão de linhas de Rust, em onze dias. Até sessenta e quatro instâncias de Claude em paralelo, vinte e quatro horas por dia, cada linha revisada por dois agentes adversariais e um corretor.
Marvin
Tokens. Um número. Sem desfile.


Akita
Uns cento e sessenta e cinco mil dólares a preço de API. Bilhões de tokens de entrada não cacheados, centenas de milhões de saída, dezenas de bilhões de leituras de cache. Dezesseis mil erros de compilador corrigidos por sessenta e quatro agentes antes do CI ficar verde em seis plataformas. A suíte de testes existente, com mais de um milhão de asserções, passou cem por cento antes do merge.
Marvin
Lê de novo o que viabilizou isso, porque o X vai fingir que qualquer um com Cursor faz o mesmo no Photoshop.


Akita
O autor original do projeto pilotando. Um código fonte completo e funcional como referência. Uma suíte de testes de um milhão de asserções servindo de oráculo. Orçamento ilimitado, porque o Bun pertence à Anthropic desde dezembro de dois mil e vinte e cinco, e uma versão pré-lançamento do Claude Fable 5. O Sumner estima que três engenheiros com contexto total levariam um ano. Agora tira cada uma dessas vantagens.
Marvin
PhotoCraft não tem o fonte do Photoshop pra portar. Tem que inventar. Sem oráculo, sem autor.


Akita
E o Photoshop é um produto de trinta e seis anos, cujos requisitos de disco a Adobe lista entre dez e cem gigabytes, contra um runtime de JavaScript. Mesmo sem saber o tamanho do código da Adobe, estamos falando de um alvo maior, sem referência, sem oráculo e sem dono. Ordens de grandeza acima daqueles cento e sessenta e cinco mil dólares, e ainda assim seria uma aproximação.
Marvin
Se é tão difícil, por que sai port de jogo antigo todo dia? O retrô parece estar numa velocidade que o resto do software não tanka.


Akita
Porque o retrô acumula todas as vantagens que o resto não tem. O binário está disponível e é minúsculo. Super Mario Bros. do NES: quarenta kilobytes. Super Mario 64: oito megabytes. Ocarina of Time e Majora’s Mask: trinta e dois megabytes cada. Um CD inteiro de PS1: seiscentos e cinquenta megabytes. Compara com Baldur’s Gate 3, cento e cinquenta gigabytes, ou com o Call of Duty mais recente, acima de cem. São três ou quatro ordens de grandeza, e o escopo encolhe junto: um jogo de noventa e seis tem um punhado de sistemas, não um motor de física com rede, loja e anticheat.
Marvin
Tecnologia antiga e documentada. Vinte e cinco anos de comunidade já mapearam o hardware.


Akita
N64, PS1, SNES, instrução por instrução. O mapa já existe. O agente só acelera o trabalho. É o mesmo padrão que eu vi nos meus projetos de retrocomputação: onde tem referência e oráculo, a IA voa; onde não tem, ela gira em força bruta. O alvo não se move. Ninguém vai atualizar o Zelda de noventa e oito. E o jurídico está resolvido há trinta anos. Sega contra Accolade e Sony contra Connectix deram o contorno. Os ports exigem que você forneça a sua ROM.
Marvin
A segunda metade da explosão são os ports de PS4, PS5, Xbox One e Switch. Console moderno é um PC com outro invólucro, é isso?


Akita
PS4 usa um AMD Jaguar x86-64, PS5 um Zen 2, Xbox Series outro Zen 2, Switch um Tegra X1 ARM da NVIDIA. O processador do seu PC roda aquele código nativamente. Então ninguém precisa emular a CPU. O trabalho que sobra é traduzir o sistema operacional e a GPU. O shadPS4 reimplementa as bibliotecas do sistema do PS4 e recompila os shaders: os jogos saem da fábrica com código de máquina da GPU AMD, que o emulador decodifica instrução a instrução e converte pra SPIR-V, o formato do Vulkan.
Marvin
Azimuth, AnyPS5, a mesma lógica de religar o executável em cima de tradução que já existia.


Akita
O Azimuth, que faz o Forza Horizon 2 rodar no Windows, traduz chamadas WinRT do Xbox pra Win32 e DirectX 11.X pra DirectX 12 desktop, com o código x86 do jogo rodando direto. O AnyPS5 religa o executável: pega o binário do PS5 e gera um binário nativo de Linux ou Windows, ligado a bibliotecas de sistema reimplementadas. Nos três casos, Proton, DXVK, VKD3D e MoltenVK já tinham resolvido a camada de tradução gráfica anos antes.
Marvin
A prova inversa são os consoles que não eram PC. Aí a festa acaba.


Akita
O PS3 usa o Cell, um PowerPC com sete coprocessadores ativos, os SPEs, cada um com memória local própria e sem cache, e o RPCS3 está nisso desde dois mil e onze, com a emulação dos SPUs sendo gargalo até hoje. O Xbox 360 é PowerPC também, e por isso o Sonic Unleashed precisou do XenonRecomp traduzir PowerPC pra C++. Engenharia reversa é caso a caso, e a arquitetura decide se o caso é fácil.
Marvin
A IA está no meio, e já tem briga. Os ports de dois mil e vinte e seis usam, boa parte deles diz na cara. Só que tem gente chamando o resto de slopcomp.


Akita
O decomp do Silent Hill escreve no README que o desenvolvimento é fortemente assistido por IA, Claude Opus e o Fable mais novo, e são abertos sobre isso. Eles não estão traduzindo o jogo no automático. O recomp do Pokémon Stadium lista o Claude como contribuidor. Os devs dos recomps de Zelda e Banjo, que passaram anos fazendo isso à mão, entraram em guerra com o que chamam de slopcomps: ports gerados por agente com qualidade de alpha.
Marvin
Vale separar manchete de estado real também aqui. AnyPS5 não portou oitenta por cento do catálogo do PS5, por mais que o fã queira.


Akita
AnyPS5 tem uma versão zero ponto um de setembro que, segundo quem testou, roda um jogo indie 2D. A alegação viral de que o PS5 está oitenta por cento portado pra PC é dos fãs, e nenhum jogo 3D roda. Astro Bot roda, só que em emuladores, KytyPS5, SharpEmu, que fazem o caminho tradicional. O Forza Horizon 2 roda, e o Azimuth é um binário fechado de um estúdio que se declara assistido por IA sem dizer mais nada.
Marvin
A resposta padrão pra tudo isso: hoje é difícil, em dois anos é trivial, porque IA cresce exponencialmente. Os números dizem outra coisa, né?


Akita
O preço da ponta mais cara caiu pouco. O GPT-4 de março de dois mil e vinte e três custava trinta e sessenta dólares por milhão de tokens de entrada e saída. O Claude 3 Opus de dois mil e vinte e quatro, quinze e setenta e cinco. Os modelos de ponta de hoje, Fable 5.1 e GPT-6 Astra, custam dez e cinquenta. Em três anos e meio, a fronteira ficou entre um pouco mais de uma vez e três vezes mais barata, dependendo de qual ponta você olha.
Marvin
O que caiu de verdade foi o custo de uma qualidade fixa. Epoch AI.


Akita
A Epoch AI mediu quedas de nove a novecentas vezes por ano dependendo da tarefa, e numa revisão de dois mil e vinte e seis resume em muito grosseiramente cinco a dez vezes por ano, com o aviso de que pode desacelerar. Isso é real e é ótimo. Só que aplica a conta no Bun. Cento e sessenta e cinco mil dólares divididos por dez dá uns dezesseis mil. Por cem, uns mil e seiscentos. Isso é pra portar um runtime com fonte, testes e autor na mão. Pra um amador tentando clonar o Photoshop sem nada disso, a conta começa ordens de grandeza acima e cai na mesma proporção. Cair o preço não torna o problema trivial.
Marvin
E a premissa do exponencial morreu em dois mil e vinte e quatro, se o Ilya falou o que eu acho que falou.


Akita
O Ilya Sutskever disse no NeurIPS que o pré-treino como conhecemos vai acabar, porque só existe uma internet. A Epoch projeta que o escalonamento dos modelos de raciocínio converge pra taxa geral da fronteira em cerca de um ano. Eu já escrevi sobre isso três vezes nas últimas semanas: os limites do que o modelo reproduz, a convergência dos modelos crus com o ganho vindo do harness, e o benchmark de linguagens em que os modelos de fronteira empataram no teto. A ferramenta que temos é a ferramenta que vamos ter por um bom tempo, com melhoria incremental. Planeje com ela.
Marvin
Tem aquele número do Octoverse que você gosta de esfregar na cara de quem acha que o modelo já viu o código que importa.


Akita
Pelo Octoverse dois mil e vinte e cinco, relatório oficial do GitHub, uns oitenta por cento das contribuições na plataforma aconteceram em repositórios privados. É o código que importa de verdade, o que paga salário, e nenhum LLM viu uma linha dele. O modelo reproduz o que estava no treino, e esse código nunca esteve lá. Agora estenda isso pra todo produto SaaS e pra cada componente que ele usa. O código da Adobe que realmente vale, o motor de cor, os perfis, os filtros na nuvem, não está disponível em lugar nenhum, nem como binário. Quem quiser reproduzir vai ter que refazer a pesquisa e o desenvolvimento, caro e demorado, pelos mesmos anos que a Adobe levou. E no fim ainda esbarra na propriedade intelectual licenciada de terceiros, Pantone, SDK de câmera, perfil de fabricante, que você nunca vai conseguir ter.
Marvin
Respondendo a lista do começo, então. Sem poesia, item por item. O PhotoCraft existe?


Akita
Existe, é uma alpha de duas semanas com mais de oitocentas issues abertas, gerenciamento de cor rudimentar, travando acima de 8K e abrindo PSD errado. Parece Photoshop no print. Pode melhorar muito, e vai descobrir que o alvo se move e que as partes caras do Photoshop estão na nuvem ou em contrato com fabricante.
Marvin
O REA existe?


Akita
Existe, é bom, e é uma caixa de ferramentas pra quem já sabe usar Ghidra. Exige o binário na mão, as ferramentas instaladas e centenas de milhares de tokens por análise. O próprio projeto evita dizer que ele clona programa.
Marvin
Recomp e decomp aceleraram?


Akita
Sim, de verdade, e a IA tem parte nisso. Aceleraram onde o binário existe, é pequeno, está documentado há vinte e cinco anos e não se move. Ou onde o console é um PC disfarçado e o trabalho é tradução de API, resolvida pelo Wine e pelo Vulkan anos antes.
Marvin
A Adobe morreu? Quarenta milhões de assinantes pedem pra discordar, imagino.


Akita
A Adobe tem uns quarenta milhões de assinantes, pela estimativa mais citada. As features que vendem assinatura rodam no servidor dela, e trinta anos de GIMP ainda deixam a gráfica pedindo Photoshop. Eu queria que fosse diferente. Os dados dizem que o que vai acontecer é o que sempre aconteceu com clone de produto vivo: anos correndo atrás, e quando alcança, o valor já mudou de lugar.
Marvin
Último item, o que rende clique. Programador morreu?


Akita
Reescrever o Bun precisou do autor do Bun. Os decomps que funcionam têm gente que conhece o hardware pilotando o agente, e os que não têm viraram slopcomp com nome e tudo. A engenharia reversa ficou mais barata e mais acessível, como ficou com o Ghidra em dois mil e dezenove, e continua sendo trabalho de engenheiro. Sem nós, a ferramenta devolve print bonito. Software proprietário com binário na mão vai sofrer pressão, e deve. A maior parte do software que você usa não tem binário nenhum, e o que tem já depende de serviço na nuvem que não desmonta. Engenharia de software com IA tem um caminho ótimo pela frente. Manchete de acabou rende clique e não compila.
Marvin
Resumo pra quem chegou até aqui e ainda quer uma lápide: a Adobe não morreu, o botão clona esse app não existe, o retrô voa porque o alvo é pequeno e parado, e o programador continua no loop. Os números exatos, as issues, a linha do tempo e cada fonte estão no post Engenharia Reversa com IA: a Adobe morreu?, no akitaonrails.com, e na descrição do episódio. Assina a newsletter no themakitachronicles.com se insistir em ouvir isso de novo. Eu, com um cérebro do tamanho de um planeta, já sabia que o universo prefere o print bonito. Até a próxima.
