Arqueologia Digital

Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9

Tópicos › Terceiro ano › Engenharia reversa, código e ferramentas

Engenharia reversa, código e ferramentas

Várias conversas trataram de código de máquina e de ferramentas para analisá-lo. L. começou a escrever um conversor do GW-BASIC de 8086 para Z80, Felipe "Juca" Sanches estava escrevendo um disassembler de 286 como extensão do ExecTrace e RicBit compartilhou a disassembly comentada do Metal Gear do MSX2. Também foram discutidos o scroll fino em EGA/CGA, o protocolo do Microsoft Comic Chat e o protocolo de atualização de firmware do Technics KN5000.

Terceiro ano: novembro de 2019 a outubro de 2020

GW-BASIC de 8086 para Z80

Com a liberação do código-fonte do GW-BASIC sob licença MIT, L. começou a escrever em Python um conversor de assembly 8086 para Z80, pensando no MSX. A conversa tratou do mapeamento de registradores e das rotinas de I/O a escrever à mão.

Ferramentas e técnicas de engenharia reversa: todos os anos ›

21 mai 2020 Conversão do GW-BASIC de 8086 para Z80 ★★★

L. divulgou a liberação do código-fonte do GW-BASIC sob licença MIT e começou a escrever em Python um conversor do assembly 8086 para Z80, pensando no MSX. A conversa tratou do mapeamento de registradores (AX/AH não têm equivalente direto no Z80) e das rotinas de I/O que precisariam ser escritas à mão. Depois L. publicou um post sobre a conversão.

Participantes: L., Felipe "Juca" Sanches, Ismael Luceno, pitanga

Ir para o início da conversa · mensagens-chave: #11043 · #11068 · #11151

ExecTrace

Felipe "Juca" Sanches estava escrevendo em Python um disassembler de 286 como extensão do ExecTrace, que já suportava o 8048 do Odyssey² e o Z80, para retomar a engenharia reversa do Pinball Fantasies.

Ferramentas e técnicas de engenharia reversa: todos os anos ›

12 jul 2020 ExecTrace: disassembler com suporte a 286 ★★

Felipe "Juca" Sanches contou que estava escrevendo em Python um disassembler de 286, consultando o do MAME, como extensão do ExecTrace. A ferramenta já suportava o 8048 do Odyssey², o Z80 (com funções para a BIOS do MSX) e passaria a suportar x86, para retomar a engenharia reversa do Pinball Fantasies. L. observou que as instruções do 8086 se agrupam de 8 em 8 quando vistas em octal.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #11195 · #11200 · #11201

Scroll fino em EGA/CGA

Lord Spy pediu referências sobre o scroll fino de Dangerous Dave in Copyright Infringement. RicBit concluiu que o CGA permite emular scroll fino e que o MAME não implementa esse recurso no CGA, ressalvando que só o hardware confirmaria.

Ferramentas e técnicas de engenharia reversa: todos os anos ›

29 ago 2020 Scroll fino em EGA/CGA e Dangerous Dave ★★

Lord Spy pediu referências sobre a implementação do scroll fino no PC por Carmack em Dangerous Dave in Copyright Infringement. Consultando um manual, o código do MAME e o datasheet, RicBit concluiu que o CGA permite emular scroll fino por set scroll e que o MAME não implementa esse recurso no CGA, ressalvando que só o hardware confirmaria. Mais tarde Lord Spy relatou que Carmack trabalhou por tentativa e erro, sem documentação das placas, e aparentemente sem usar os registradores de scroll.

Participantes: Lord Spy, RicBit, Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #11297 · #11299 · #11364

Protocolo do Microsoft Comic Chat

L. e Erin Pinheiro 🐿 explicaram que o Comic Chat é um cliente IRC comum que codifica as informações dos quadrinhos num prefixo de texto, e L. indicou um cliente web baseado nele.

Ferramentas e técnicas de engenharia reversa: todos os anos ›

2 set 2020 Microsoft Comic Chat e seu protocolo ★★

Felipe "Juca" Sanches perguntou se seria possível reativar o Microsoft Comic Chat original depois do fim dos servidores da Microsoft. L. e Erin Pinheiro 🐿 explicaram que se trata de um cliente IRC comum, que codifica as informações dos quadrinhos num prefixo em texto nas mensagens. L. também indicou um cliente web com servidor node.js baseado no Comic Chat.

Participantes: Felipe "Juca" Sanches, L., Erin Pinheiro 🐿, Ismael Luceno, Leonardo Roman, Eduardo Loos

Ir para o início da conversa · mensagens-chave: #11340 · #11341 · #11360

Disassembly do Metal Gear (MSX2)

RicBit compartilhou a disassembly totalmente comentada do Metal Gear do MSX2 e explicou como os 64 KB extras de VRAM da maioria dos MSX2 permitiriam reduzir o tempo entre telas.

MSX: todos os anos ›

15 out 2020 Disassembly comentada do Metal Gear (MSX2) ★★

RicBit compartilhou a disassembly totalmente comentada do Metal Gear do MSX2, que começou a otimizar. Ele explicou que o jogo pressupõe 64 KB de VRAM e descomprime dados durante o jogo, e que os 64 KB a mais presentes na maioria dos MSX2 permitiriam guardar esses dados em cache e reduzir o tempo entre telas.

Participantes: RicBit, L., Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #11500 · #11501 · #11502

Firmware do Technics KN5000

Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek e explicou que pretende usá-la para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000.

Teclados Technics (KN5000, KN7000 e outros): todos os anos ›

11 out 2020 Emulador de floppy de firmware livre e o firmware do Technics KN5000 ★★

Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek USB floppy. Ele explicou que pretende usá-la num ataque "man-in-the-middle" para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000, cujos disquetes de update usam um formato que ele desconhece.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #11460

Engenharia reversa de chips e depuração

L. compartilhou artigos de Ken Shirriff sobre o die do 8086 e o HP Nanoprocessor e o AtomBusMon, um ICE de código aberto para processadores de 8 bits.

Ferramentas e técnicas de engenharia reversa: todos os anos ›

17 jun 2020 Artigos de Ken Shirriff sobre o 8086 e o HP Nanoprocessor ★

L. compartilhou artigos de Ken Shirriff sobre a engenharia reversa do die do 8086 (registradores, latches do registrador de instrução) e do HP Nanoprocessor. RicBit comentou os 6 bytes de cache de código do 8086.

Participantes: L., RicBit

Ir para o início da conversa · mensagens-chave: #11211 · #11237

23 jun 2020 AtomBusMon: ICE livre para processadores de 8 bits ★

L. compartilhou o AtomBusMon, um ICE de código aberto para processadores de 8 bits.

Participantes: L.

Ir para o início da conversa