Een decompiler neemt als input een uitvoerbaar bestand, en pogingen om een hoog niveau, compileerbaar, misschien zelfs onderhoudbaar bronbestand dat hetzelfde doet creëren.
Daarom is het tegenovergestelde van een compiler, die een bronbestand draait en maakt een executable. Echter, een algemeen decompiler niet proberen om elke actie van de decompiler te keren, in plaats transformeert zij de ingang programma totdat het resultaat is van hoge niveau van de broncode. Het zal dus niet de originele bronbestand herscheppen; waarschijnlijk niets als het.
Het maakt niet uit of het uitvoerbare bestand symbolen of niet, of is samengesteld uit een bepaalde taal. (Echter, declaratieve talen zoals ML worden niet beschouwd.)
De bedoeling is om een retargetable decompiler (dwz één dat verschillende soorten machine code bestanden kunnen decompileren met een bescheiden inspanning, bijvoorbeeld X86-ramen, sparc-solaris, etc) te maken. Het was ook bedoeld zeer modulair te zijn, zodat verschillende delen van de decompiler kan worden vervangen door experimentele modules. Het was de bedoeling om uiteindelijk interactief geworden, a la IDA Pro, want sommige dingen (niet alleen variabele namen en opmerkingen, hoewel deze zijn uiteraard zeer belangrijk) vereisen deskundige interventie. Of de interactiviteit thuishoort in de decompiler of in een apart instrument blijft onduidelijk.
Met de omzetting van de semantiek van individuele instructies en met behulp van krachtige technieken zoals Static Single Opdracht dataflow analyse moet Boomerang zijn (voornamelijk) onafhankelijk van de exacte gedrag van de compiler die toevallig gebruiken. Optimalisatie mag geen invloed op de resultaten. Vandaar dat het doel is een algemeen decompiler.
Beperkingen:
· In het geval dat u wilt proberen Boomerang zoals het is als een decompiler (in tegenstelling tot het experimenteren met het, of te verbeteren), zich bewust zijn van de ernstige beperkingen. Vanaf begin 2004 zal Boomerang alleen decompileren X86 (Linux / X86 of Windows PE), SPARC (Solaris, of vermoedelijk Linux / SPARC) of Power PC (Linux / PPC of Mac OS / X) programma. In het bijzonder rekening mee dat het niet DOS of NE (Windows 3.1) programma zal decompileren. Het toevoegen van een andere processor is een groot (enkele maanden) onderneming.
· Het zal alleen het genereren van C, niet C ++. Het zal decompileren C ++ programma's natuurlijk (en alle soorten programma's, waaronder assembler). U kunt in staat zijn om de hand sommige C ++ programma's in bruikbare C ++ broncode bewerken. Voor MSVC gecompileerde programma's, op dit moment moet je de decompiler spoonfeed en vertel het dat er een register parameter (thiscall calling conventie). De schakelaars te bedienen hiervan zijn complex; zien met de -sf switch.
Software informatie:
Versie: alpha 0.3
Upload datum: 3 Jun 15
Licentie: Gratis
Populariteit: 182
Reacties niet gevonden