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 de código fonte; Um decompiler tentativas de reverter esse processo.
Um decompiler é uma versão especializada de um disassembler. Enquanto um desmontador converte código executável para montagem língua, um decompiler tentativas de ir mais longe e converter o código executável para código fonte em uma linguagem de nível superior, tais como C ou C + +.
Decompilers
Boomerang
O objetivo é o Boomerang projeto é uma tentativa de desenvolver uma verdadeira decompiler para código de máquina através de programas a comunidade de fonte aberta. Um decompiler toma como entrada um arquivo executável, e as tentativas para criar um nível elevado, compilável, possivelmente até mesmo manter arquivo fonte que faz a mesma coisa. Por isso, é o oposto de um compilador, que tem uma fonte e faz um arquivo executável. No entanto, um decompiler geral não tentará inverter cada acção do decompiler, e não se transforma a entrada programa repetidamente até que o resultado é elevado nível de código fonte. É, portanto, não irá recriar o arquivo fonte original; provavelmente nada como ele. Não importa se o arquivo executável tem símbolos ou não, ou foi compilado a partir de um determinado idioma. (No entanto, linguagens como ML declarativa, não são consideradas.)
A intenção é criar um retargetable decompiler (ie uma que pode descompilar diferentes tipos de arquivos com código de máquina modesta esforço, por exemplo, x86-janelas, sparc-Solaris, etc). Também foi destinado a ser altamente modular, de forma a que as diferentes partes do decompiler pode ser substituído por módulos experimentais. Foi destinado a eventualmente tornar-se interactivo, a la IDA Pro, porque algumas coisas (e não apenas nomes variável e comentários, embora estas sejam obviamente muito importante) exigir intervenção especializada. Se pertence a interatividade na decompiler ou em uma ferramenta separada permanece incerto.
Ao transformar a semântica de cada uma das instruções, e usando técnicas como a poderosa Estático Único Cessão dataflow análise, deverá ser Boomerang (grande parte) independente do comportamento exato do compilador que se passou a ser utilizado. Otimização não deverá afectar os resultados. Assim, o objetivo geral é um decompiler.
Bookmark O que é um decompiler?



