O que é um Decompiler?
Um decompiler é um programa que tem código executável e produz o código-fonte dele.
Um compilador gera código executável em código fonte; Um decompiler tentativas de reverter esse processo.
Um decompiler especializada é uma versão de um disassembler. Enquanto um disassembler converte código executável a linguagem assembly, um decompiler tenta ir mais longe e converter o código executável de código fonte em uma linguagem de nível superior, como C ou C + +.
Decompilers
Boomerang
A meta é a Boomerang projeto é uma tentativa de desenvolver um verdadeiro código máquina decompiler para programas através da comunidade de fonte aberta. Um decompiler toma como entrada um arquivo executável, e tenta criar um alto nível, compilável, possivelmente até mesmo manter arquivo fonte que faz a mesma coisa. É, portanto, o oposto de um compilador, que tem um arquivo de origem e faz um executável. No entanto, um decompiler geral não tenta inverter a cada acção do decompiler, mas sim um programa transforma a entrada várias vezes até que o resultado é elevado nível de código fonte. É, portanto, não irá recriar o arquivo fonte original; provavelmente nada parecido. Não importa se o arquivo executável tem símbolos ou não, ou foi compilada a partir de uma determinada língua. (No entanto, linguagens declarativas como ML não são considerados.)
A intenção é criar um decompiler retargetable (ou seja, um que pode descompilar diferentes tipos de arquivos com código máquina modesta esforço, por exemplo, X86-janelas, sparc-solaris, etc.) Também foi destinado a ser altamente modular, de forma que diferentes partes do decompiler pode ser substituído por módulos experimentais. Foi destinado para eventualmente tornar-se interactivo, um la IDA Pro, porque algumas coisas (não apenas variável nomes e comentários, embora estas sejam, obviamente, muito importante) exigem perito intervenção. Se pertence a interatividade na decompiler ou em uma ferramenta separada permanece obscura.
Ao transformar a semântica de cada uma das instruções, e usando técnicas como a poderosa Static Single Assignment dataflow análise, deve ser Boomerang (principalmente) independente do comportamento exato do compilador que aconteceu a ser utilizado. Otimização não deverá afectar os resultados. Assim, o objetivo geral é um decompiler.
|
Bookmark O que é um Decompiler?

