Inteligência artificial, sem ruído.
Pesquisa e Ciência2 min

Chisel usa IA para recuperar código C de binários com 79,8% de acerto

Framework assistido por IA recupera código C de binários, com 79,8% de acerto no conjunto de teste e 96,1% dos candidatos recompilando.

Chisel usa IA para recuperar código C de binários com 79,8% de acerto

Recuperar código-fonte de binários com IA

Reverter um binário compilado de volta para código-fonte legível é uma das tarefas mais difíceis da engenharia reversa — e uma das mais valiosas para segurança e manutenção de sistemas legados. Um novo framework assistido por IA, chamado Chisel, reportou recuperar candidatos em C que combinaram com as funções originais em cada entrada de um conjunto de teste em 79,8% dos casos, com 96,1% dos candidatos retornados recompilando com sucesso.

Um loop de feedback em torno do pseudo-C

O Chisel funciona sem um conjunto de teste fornecido: ele reescreve repetidamente o pseudo-C derivado do Ghidra e usa feedback do compilador e de um fuzzer diferencial para guiar as melhorias. O núcleo é um loop de feedback em torno de cada reescrita, que combina feedback estático do compilador com fuzzing diferencial guiado por cobertura, além de observáveis mais ricos, memória de divergência entre iterações e retenção do melhor candidato.

Para isolar a contribuição de cada componente, o estudo usou seis versões encenadas do sistema, adicionando em etapas: geração LLM de uma passada, checagens de compilador e fuzzer, observáveis mais ricos, memória entre iterações e retenção de melhor candidato.

Como foi avaliado

A avaliação começou dando a cada função um conjunto de 1.000 pares entrada-saída de referência. Após filtrar funções com pelo menos 200 casos de teste funcionais, restaram 120 funções do ExeBench, compiladas como binários x86-64 em níveis de otimização O0 a O3, tanto com símbolos quanto sem eles. Os experimentos usaram o Ollama com Gemma4:31b em quantização int-4.

As duas métricas medem obstáculos diferentes: recompilabilidade significa que o código retornado pôde ser compilado, enquanto re-executabilidade significa que ele bateu com o original em cada entrada do conjunto de teste. O artigo pontuou um único candidato retornado, então os números refletem a saída escolhida pelo sistema, não uma seleção posterior entre vários candidatos.



Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.