Engenharia reversa e IA

A inteligência artificial está mudando a forma como softwares são desenvolvidos. Além de criar código do zero, ela também pode ajudar a reconstruir programas existentes. Com agentes de IA, tarefas como entender o funcionamento de um sistema e reproduzir suas funcionalidades se tornam mais rápidas e acessíveis.

A técnica por trás desse processo, conhecida como engenharia reversa, não é nova. Consiste em estudar um produto ou sistema para entender como ele funciona. Na computação é utilizada para investigar vulnerabilidades, recuperar sistemas e permitir compatibilidades entre plataformas. A novidade está no uso da IA para acelerar parte desse trabalho, que exige conhecimento técnico especializado e bastante esforço manual.

Como a IA acelera a engenharia reversa

O código escrito por um desenvolvedor passa por um processo chamado compilação, que o transforma em instruções executáveis pelo computador. O resultado pode ser um arquivo executável, cujo conteúdo é mais difícil de compreender do que o código original.

É nessa fase que entra a descompilação pelas IA’s, técnica que tenta transformar esse conteúdo em uma representação mais próxima do código-fonte, facilitando sua análise. Nem sempre é possível recuperar o código original exatamente da forma como foi escrito, mas é possível descobrir parte de sua lógica e funcionamento.

Reconstrução e questões jurídicas

Um exemplo dessa abordagem é o ArtCraft, projeto que busca desenvolver alternativas de código aberto para aplicativos profissionais como Photoshop, Premiere Pro e After Effects.

A iniciativa utiliza IA para auxiliar na criação de aplicações com funcionalidades semelhantes às dos programas já existentes e consolidados no mercado. O desafio vai além de reproduzir uma interface com “carinha” conhecida: é preciso fazer com que recursos como camadas, filtros e efeitos funcionem corretamente.

Essa abordagem levanta questões jurídicas, nas quais ainda não foram atualizadas após a expansão das IA ‘s. Criar uma implementação com funcionalidades semelhantes não é “automaticamente ilegal”, mas a análise depende dos métodos utilizados, dos elementos reproduzidos e da legislação aplicável.

Jogos e preservação digital

A engenharia reversa também tem aplicações interessantes em jogos. Um exemplo é o mod ER Mario, que coloca “o nosso famoso encanador” dentro de “Elden Ring”. O projeto mostra como a engenharia reversa pode facilitar a reutilização de componentes, embora não signifique que o mod tenha sido criado por IA.

Outro caso é P.T., uma demonstração do famoso jogo de terror “Silent Hill” que foi cancelado. Após ser retirada da distribuição oficial, ele recentemente ganhou da comunidade uma portabilidade nativa para PC, que permite executar diretamente no computador e sem depender de um emulador. O projeto reconstrói partes necessárias para seu funcionamento e utiliza arquivos de uma cópia original fornecida pelo próprio desenvolvedor, sem distribuir os recursos originais junto com o código.

O caso ilustra o potencial da engenharia reversa para a preservação digital. Quando um software deixa de ser distribuído ou fica restrito a uma plataforma antiga, reconstruir seu funcionamento pode ajudar a manter essa experiência “viva”.

Porém, isso não elimina questões relacionadas a direitos autorais, licenças e ao uso dos arquivos originais.

A IA pode reconstruir um software inteiro sozinha?

Ainda existe uma diferença entre criar uma demonstração convincente e reproduzir um programa de maneira confiável. Uma aplicação pode parecer funcionar corretamente, mas apresentar falhas e produzir resultados diferentes dos esperados.

A IA pode acelerar a escrita e a correção do código, mas testes e validação continuam essenciais. Não é o fim da engenharia de software, mas a redução do tempo e do esforço necessários para algumas tarefas, tornando elas mais dinâmicas.

Se a IA já consegue reconstruir parte de softwares existentes, qual seria o próximo passo na maneira como desenvolvemos e mantemos programas?

De olho nos dados

32% de assertividade (19 de 60), esse foi o melhor resultado no estudo Behavior2Code, da Turing, que testou a reconstrução de programas com 6 modelos avaliados e cada um deles possuía três tentativas por programa. Resultado interessante, mas ainda longe do ideal.

A biblioteca “SM64”, usada no ER Mario, possui 8,9 mil estrelas no Github, mostrando o interesse da comunidade por projetos de descompilação e engenharia reversa deste tipo.

Deixe um comentário

Rolar para cima