A eficácia inesperada da descompilação única com Claude

A eficácia inesperada da descompilação única com Claude


A eficácia inesperada da descompilação única com Claude (via) Chris Lewis descompila jogos N64. Ele escreveu sobre isso anteriormente em Usando agentes de codificação para descompilar jogos do Nintendo 64, descrevendo seus esforços para descompilar Snowboard Kids 2 (lançado em 1999) usando um processo de “correspondência”:

O processo de descompilação correspondente envolve analisar o assembly MIPS, inferir seu comportamento e escrever C que, quando compilado com o mesmo conjunto de ferramentas e configurações, reproduz o código exato: mesmos registradores, slots de atraso e ordem de instruções. (…)

Uma boa correspondência é mais do que apenas código C compilado nos bytes certos. Deveria parecer algo que um desenvolvedor da era N64 teria escrito: fluxo de controle C simples e idiomático e estruturas de dados sensíveis.

Chris estava obtendo alguns resultados úteis de agentes de codificação anteriormente, mas esta nova postagem descreve como a mudança para um novo processamento Claude Opus 4.5 e Claude Code acelerou enormemente o projeto – conforme demonstrado por este gráfico na página decomp.dev de seu projeto:

A eficácia inesperada da descompilação única com Claude

Aqui está o prompt que ele estava usando.

O grande aumento de produtividade foi desbloqueado ao passar a usar o Claude Code no modo não interativo e fazer com que ele lidasse primeiro com as funções menos complicadas (também conhecidas como o fruto mais difícil). Aqui está o código relevante do script Bash de condução:

simplest_func=$(python3 tools/score_functions.py asm/nonmatchings/ 2>&1)
# ...
output=$(claude -p "decompile the function $simplest_func" 2>&1 | tee -a tools/vacuum.log)

score_functions.py usa algumas heurísticas para decidir quais das funções restantes sem correspondência parecem ser menos complexas.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *