Tópicos › IA generativa na engenharia reversa
27 conversas · anos 7 a 9 do grupo

No ano 7 (2023-2024), o uso de IA generativa apareceu no grupo sobretudo em experimentos de RicBit. Ele criou o "MSX Debugger", um GPT customizado que controla o openMSX pelo modo --control stdio (cadeia ChatGPT → Flask → XML → Tcl → openMSX), recebe trechos resumidos do MSX Red Book e foi usado para desassemblar e comentar o Antarctic Adventure. A conversa registrou os erros do modelo: tratar um LDIR como cópia quando era preenchimento e errar a aritmética de endereços. Decidiu-se então passar a aritmética para o servidor. RicBit também apresentou um emulador de MSX que lê por OCR o texto japonês da tela e mostra legendas em português. A tradução era feita pelo Google Translate, e o teste com um LLM melhorou a qualidade, mas trouxe latência alta. Mais tarde ele contou que o projeto estava parado: a tradução custava cerca de US$ 3 por dia de uso e precisaria de um cache, difícil de chavear quando o LLM mantém contexto entre telas. No mesmo ano, RicBit treinou um modelo que gera imagens compatíveis com o screen 2 do MSX1 e mostrou model sheets em pixel art geradas com GPT-4. Felipe "Juca" Sanches procurou ferramentas de IA para interpretar disassembly e encontrou um assistente para o Ghidra, ainda não avaliado, e um artigo no arXiv. Paralelamente, o grupo falou do Ghidra para ROMs de MSX, e Pedro de Medeiros 👾 indicou um módulo de TLCS-900/H para o Ghidra.
No ano 9 (2025-2026), o assunto virou tema próprio e gerou vários debates. Felipe "Juca" Sanches publicou o tlcs900asm, um assembler gerado com IA que ainda não funcionava por completo. Ele relatou ter corrigido 1300 bytes da ROM do KN5000 e explicou como usa skills para dar contexto ao agente. Macabeus defendeu os LLMs na descompilação, onde o match oferece um critério objetivo. Erin Pinheiro 🐿, Anne Isabelle e Pedro de Medeiros 👾 criticaram o uso por razões técnicas, sociais e ambientais, e Felipe pediu uma pausa no tema. Em debates posteriores, RicBit apontou a desigualdade de acesso a modelos pagos. Alexandre Villares citou estudos sobre perda de habilidades e a falta de vagas para iniciantes, e Robson França levantou o risco de treinar modelos com conteúdo gerado por modelos. Shideravan se preocupou com o vibe-coding em projetos de descompilação, e Macabeus falou em débito cognitivo. RicBit disse que não teria feito o emulador de 4 KB sem IA. Felipe descreveu seu método de ciclos de expansão e filtragem: explorar, refatorar, fatiar em commits e revisar antes de abrir PRs pequenos. Em resposta a um artigo sobre a comunidade de descompilação, propôs notas em Markdown num repositório auxiliar, TDD com verificação byte a byte e nomes de símbolos baseados nessa documentação. Disse ainda que sua meta é documentar no MAME toda a família de teclados e sintetizadores Technics. Felipe também avaliou que os recomps feitos com IA vão gerar processos ou desestruturar a legislação de copyright, e Shideravan citou o port para PC de Marvel's Wolverine; discutiu-se ainda o papel das cartas de cease and desist e de possíveis travas nos modelos diante desses projetos.
Ainda no ano 9, circularam vários projetos feitos com IA: - o disassembly de Wizard of Wor para Atari 800, feito por Benj Edwards com o Claude Opus 4.5; - o início da engenharia reversa do G-Force 2 Super Deluxe por Felipe, que em cerca de meia hora obteve o motorpcb.asm e um site de documentação; - uma tentativa de Felipe de gerar um modelo 3D do gabinete do Thunder Blade, com resultado limitado; - o port de Ms. Pac-Man para o Apple IIgs; - o Cepecdbr, um emulador de TRS Color em C que Robson França pediu ao Claude.
O grupo também discutiu o REA e o que ele acrescenta aos MCPs de Ghidra e IDA Pro. Shideravan, Felipe e Robson França (com o Karateka do Apple II) relataram recusas do Claude, incluindo o Opus 5.5, em tarefas de engenharia reversa, e Shideravan comparou o Gemini 4 e o GLM como alternativas. RicBit disse que seu sistema, que não usa o REA, continuava funcionando. O grupo também apontou conteúdo gerado por IA com erros. Um vídeo do YouTube dava a entender que Zuffo (pai) coordenou o Patinho Feio; Felipe pediu que o grupo o reportasse, e depois a descrição foi corrigida para citar Hélio Guerra Vieira. Um post de blog parafraseava com erros a história da engenharia reversa do KN5000. Foram compartilhados ainda o artigo "Claude's Cycles" de Donald Knuth, a live "Oldplayers chat 10: Uso da IA na retrocomputação", com participação de Felipe, e textos críticos ao conteúdo gerado por IA nos hobbies.
RicBit criou o GPT "MSX Debugger", que controla o openMSX, e o usou para comentar o Antarctic Adventure, com erros documentados. Ele também apresentou um emulador de MSX que traduz automaticamente o texto da tela, depois parado (a tradução custava cerca de US$ 3 por dia de uso), além de um modelo que gera imagens em screen 2 do MSX1. Felipe "Juca" Sanches procurou ferramentas de IA para interpretar disassembly.
RicBit criou um GPT customizado que controla o openMSX e o usou para desassemblar e comentar o Antarctic Adventure. A conversa tratou dos erros do modelo e das limitações de contexto.
RicBit criou um GPT customizado, o "MSX Debugger", que controla o openMSX por meio de uma interface Python e do modo --control stdio (cadeia ChatGPT → Flask → XML → Tcl → openMSX). O modelo recebia trechos resumidos do MSX Red Book e foi usado para desassemblar e comentar o Antarctic Adventure. A conversa tratou da janela de contexto pequena, da memória externa via webhook, dos erros do modelo (tratar LDIR como cópia quando era preenchimento, errar a aritmética de endereços) e da decisão de passar a aritmética para o servidor. RicBit indicou a documentação de GPT Actions para quem quisesse montar algo parecido.
O emulador reconhece o texto japonês por OCR e mostra legendas traduzidas. Depois, RicBit contou que o projeto estava parado: a tradução custa cerca de US$ 3 por dia de uso e precisaria de um cache, cuja chave é difícil de definir quando o LLM mantém contexto entre telas.
RicBit apresentou um emulador de MSX que reconhece por OCR o texto japonês na tela e mostra legendas em português geradas pela API do Google Translate. O grupo discutiu a falta de contexto entre telas e a ideia de execução especulativa: emular uns 300 quadros adiante, mantendo vários save-states. RicBit também testou um LLM, que melhorou muito a tradução mas tem latência alta, e calculou o custo das chamadas de API, que considerou inviável para uso por outras pessoas sem otimização. Discutiu-se ainda como deduzir o encoding do texto na memória a partir do OCR. Na VRAM de Undeadline, RicBit observou uma animação feita por color cycle.
RicBit contou que o tradutor automático do emulador estava parado. A tradução custa cerca de US$ 3 por dia de uso e precisaria de cache, mas o uso de LLM para manter contexto entre telas dificulta definir a chave desse cache.
RicBit treinou um modelo que gera imagens compatíveis com o screen 2 do MSX1 e mostrou model sheets em pixel art geradas com GPT-4.
Shelton Ribeiro divulgou o pedido de um programador que tem uma engine própria em C++ para um shoot 'em up de Dreamcast em 320x240 e procura um artista 2D para fazer 3 ou 4 fases. RicBit sugeriu usar IA e mostrou model sheets em pixel art geradas com GPT-4, incluindo o prompt usado. João Carlos notou que a IA se perdeu na numeração das etapas.
RicBit treinou um modelo de IA que gera imagens com a paleta do MSX1 e encaixa as cores nos blocos de 8 pixels do screen 2. As saídas, convertidas com o mifui sem error diffusion, ficaram quase iguais às originais, e ele as comparou também em screen 4 e screen 5. L. e RicBit discutiram o uso de um borrado de CRT ou de uma GAN para melhorar o resultado.
RicBit abriu uma ROM de MSX no Ghidra, e Felipe procurou ferramentas de IA para interpretar disassembly. Pedro de Medeiros indicou um módulo do Ghidra para TLCS-900/H.
RicBit contou que aprendeu a usar o Ghidra e que ele abriu uma ROM de MSX. L. comentou que há plugins para muitas CPUs e que o Ghidra é mais fácil de usar que o radare, e Anne Isabelle concordou.
Felipe "Juca" Sanches procurou ferramentas de IA para ajudar a interpretar disassembly. Ele encontrou um assistente de engenharia reversa para o Ghidra, ainda não avaliado, e um artigo no arXiv sobre o tema. RicBit aprovou a ideia.
Pedro de Medeiros compartilhou a fonte OpenType Z80 Sans, que faz o disassembly de instruções Z80. Também indicou a Felipe "Juca" Sanches um módulo de processador TLCS-900/H para o Ghidra, e Felipe disse que iria testá-lo.
A IA virou tema próprio, com debates sobre IA na preservação a partir do tlcs900asm, a perda de habilidades, o vibe-coding em descompilação, os recomps e os direitos autorais. Circularam projetos feitos com IA (Wizard of Wor, G-Force 2 Super Deluxe, Ms. Pac-Man para Apple IIgs, Cepecdbr), relatos de recusas do Claude em engenharia reversa e casos de conteúdo gerado com erros sobre o Patinho Feio e o KN5000.
Em vários momentos, membros discutiram a utilidade dos LLMs na engenharia reversa, a perda de habilidades e o débito cognitivo. Os debates trataram ainda dos recomps e dos direitos autorais e das tensões na comunidade de descompilação. Felipe descreveu seu método de ciclos de expansão e filtragem.
Felipe publicou o tlcs900asm, assembler gerado com IA que ainda não funcionava por completo, e disse ter dúvidas sobre o vibe-coding. Macabeus defendeu LLMs para descompilação, em que há critério objetivo de match, e citou textos sobre o tema; Erin Pinheiro, Anne Isabelle e Pedro de Medeiros criticaram o uso de LLMs por razões técnicas, sociais e ambientais. Felipe pediu uma pausa, moderou uma mensagem e se comprometeu a evitar o tema por enquanto. Ele relatou ter corrigido 1300 bytes da ROM do KN5000 e explicou o uso de skills para dar contexto ao agente.
A partir de uma imagem crítica à IA postada por Lord Spy, Felipe "Juca" Sanches defendeu sua utilidade para engenharia reversa. RicBit apontou a desigualdade de acesso a modelos pagos; Alexandre Villares mencionou estudos sobre perda de habilidades e a falta de vagas para iniciantes; Robson França levantou o risco de modelos treinados com conteúdo gerado por modelos.
Shideravan se preocupa com a quantidade de vibe-coding nos projetos de descompilação. Ele elogia projetos que se posicionam contra, como o DK64Recomp e o SymphonyRecomp, e cita o risco de o código ficar difícil de manter. RicBit diz que não teria feito o emulador de 4 KB sem IA, por falta de paciência. Macabeus fala em débito cognitivo. Felipe descreve seu método de ciclos de expansão e filtragem: - explorar com a IA sem muito filtro; - refatorar; - fatiar o resultado em commits; - revisar o código antes de abrir PRs pequenos. Ele tem 3 ou 4 desses ciclos em paralelo.
Felipe "Juca" Sanches avaliou que os recomps feitos com IA vão gerar processos ou desestruturar a legislação de copyright. Shideravan citou o port para PC do Marvel's Wolverine, que, pelo que entendeu, é obra de uma única pessoa. Felipe comparou esse ritmo com o seu disassembly dos teclados Technics, que ainda está longe de completo.
Shideravan argumentou que ferramentas como REA e ScarletNX tornam os recomps tão acessíveis que as empresas não conseguem agir antes dos lançamentos. Pedro de Medeiros lembrou que cartas de cease and desist são enviadas antes dos lançamentos. RicBit avaliou que basta a Anthropic colocar travas contra engenharia reversa para esse volume de projetos desaparecer.
Macabeus compartilhou um artigo sobre as discussões da comunidade de descompilação em torno da IA. Felipe "Juca" Sanches contestou alguns pontos: propôs notas estruturadas em Markdown num repositório auxiliar, TDD com verificação byte a byte do binário recompilado e nomes de símbolos atribuídos com base nessa documentação. Disse ainda que sua meta é documentar toda a família de teclados e sintetizadores Technics no MAME.
O grupo discutiu o que o REA acrescenta aos MCPs de Ghidra e IDA Pro. Depois relatou recusas do Claude Opus 5.5 em tarefas de engenharia reversa e comparou modelos alternativos.
Marcelo compartilhou o README do REA, e Danilo Bento indicou a documentação sobre binários crus, observando que REA com Ghidra parece uma combinação interessante, inclusive para 6502. Paulo questionou o que ele acrescenta aos MCPs de Ghidra e IDA Pro. Shideravan defendeu que o valor está na orquestração do fluxo de trabalho do agente; Paulo prefere fluxos montados pelo próprio agente para cada projeto.
Shideravan relatou que o Claude deixou de dar suporte ao REA e passou a filtrar pedidos de engenharia reversa, e comparou o Gemini 4 e o GLM como alternativas. Felipe "Juca" Sanches mostrou o Claude Code com Opus 5.5 recusando tarefas, e Robson França relatou uma recusa parecida com o Karateka do Apple II. RicBit disse que seu sistema, que não usa o REA, continua funcionando.
Um vídeo com roteiro gerado por IA atribuía a coordenação do Patinho Feio a Zuffo (pai), e um post de blog parafraseava com erros a história do KN5000.
Felipe denunciou um vídeo do YouTube com roteiro gerado por IA que dava a entender que Zuffo (pai) coordenou o Patinho Feio, pediu ao grupo que comentasse e reportasse o vídeo e citou também a controvérsia do projeto Caninos Loucos. Depois, a descrição do vídeo foi corrigida e passou a citar o professor Hélio Guerra Vieira, e as partes do vídeo que citavam Zuffo aparentemente foram cortadas.
Felipe encontra um post de blog de cerca de dois anos antes, que o grupo considera gerado por IA. O post parafraseia a história da engenharia reversa do KN5000, em que RicBit identificou uma compressão 'parecida com LZW': mistura as histórias do KN5000 e do KN7000, inverte os papéis das pessoas envolvidas e usa a foto de um KN6000. Pedro de Medeiros sugere que bots garimpam grupos de mensageiro para gerar posts desse tipo, e Felipe concorda que provavelmente foi isso.
Circularam o disassembly de Wizard of Wor, o port de Ms. Pac-Man para Apple IIgs e um emulador de TRS Color. Felipe mostrou o início da engenharia reversa do G-Force 2 Super Deluxe e uma tentativa de modelo 3D do Thunder Blade, e foi compartilhada uma reportagem sobre firmware de equipamentos musicais.
Guilherme Ranoya compartilhou o disassembly e a análise completos de Wizard of Wor para Atari 800, feitos por Benj Edwards com o Claude Opus 4.5. Felipe previu que projetos assim ficarão mais frequentes.
Felipe "Juca" Sanches mostrou como iniciou um projeto de engenharia reversa e, em cerca de meia hora, obteve um disassembly (motorpcb.asm) e um site de documentação do G-Force 2 Super Deluxe, que compartilhou. Ismael Luceno comentou que o Claude Sonnet 4.6 basta para esse tipo de análise.
Felipe "Juca" Sanches usou imagens do manual de serviço do gabinete deluxe do Thunder Blade para gerar com o Claude um modelo 3D, com resultado limitado. RicBit sugeriu ferramentas de IA de modelagem 3D, como o Hunyuan 3D.
Felipe "Juca" Sanches compartilhou um vídeo do port do Ms. Pac-Man para o Apple IIgs feito com IA, e Pedro de Medeiros indicou o repositório da remontagem do código Z80.
Robson França compartilhou o Cepecdbr, um emulador de TRS Color 100% em C que pediu ao Claude.
Felipe "Juca" Sanches compartilhou uma reportagem do The Verge sobre o uso de vibe coding para modificar firmware de equipamentos musicais.
Foram compartilhados o artigo "Claude's Cycles" de Donald Knuth, a live Oldplayers sobre IA na retrocomputação e textos críticos ao conteúdo gerado por IA nos hobbies.
Felipe "Juca" Sanches compartilhou o artigo "Claude's Cycles" de Donald Knuth; Hugo brincou que agora Knuth conseguiria terminar o TAOCP.
Felipe divulga a live 'Oldplayers chat 10: Uso da IA na retrocomputação', na qual também apresentou sua pesquisa sobre o Telebradesco. Macabeus diz que gostou da live e que a acompanhou ao vivo, comentando no chat.
Alexandre Villares compartilhou uma postagem de Christine Lemmer-Webber e o artigo do Aftermath "All My Hobbies Are Getting Slopped Up, And It's Exhausting", sobre conteúdo gerado por IA nos hobbies de software e emulação.
Índice escrito por agentes Claude que leram o log completo de cada período. Um segundo agente conferiu cada conversa contra as mensagens, e um terceiro conferiu os resumos do ano e dos temas contra as conversas. Pode conter imprecisões: cada item leva às mensagens originais. Para procurar palavras específicas, use a busca.