Is er een C++ decompiler?

Ik heb een programma waarin ik de C++ broncode ben kwijtgeraakt. Zijn er goede C++ decompilers die daar zijn?

Ik heb al boemerang .


Antwoord 1, Autoriteit 100%

u kunt ida pro door hex-stralen . Je krijgt meestal geen goede C++ uit een binary, tenzij je samenvoegt in foutopsporingsinformatie. Bereid je voor om een ​​Partition van handmatige arbeid door te brengen die de code omkeert.

Als je de binaries niet hebt gestreept, is er enige hoop, omdat Ida Pro C-alike-code kan produceren om mee te werken. Meestal is het echter erg ruw, althans toen ik het een paar jaar geleden gebruikte.


Antwoord 2, Autoriteit 30%

Informatie wordt weggegooid in het compilatieproces. Zelfs als een decompiler de logischequivalent-code met klassen en alles kan produceren (het kan het waarschijnlijk niet), het zelfdocumenterende deel is verdwenen in geoptimaliseerde releasecode. Geen variabele namen, geen routinematige namen, geen klassennamen – gewoon adressen.


Antwoord 3, Autoriteit 23%

Ja, maar geen van hen zal erin slagen om leesbaar genoeg code te produceren om de moeite waard te zijn. Je zult meer tijd doorbrengen met het lezen van de ontcompegeerde bron met assembler blokken binnen, dan het opnieuw herschrijven van je oude app.


Antwoord 4, Autoriteit 7%

Ik heb geen decompilers gezien die C++ -code genereren. Ik heb een paar experimentele gezien die een redelijke poging doen om C-code te genereren, maar ze hadden de neiging om afhankelijk te zijn van het matchen van de codegeratiepatronen van een bepaalde compiler (die misschien zijn veranderd, het is een tijdje geleden dat ik dit laat in het laatst geweest ). Natuurlijk zal elke symbolische informatie verdwenen. Google voor “Decompiler”.


Antwoord 5, Autoriteit 4%

Afhankelijk van hoe groot en goed geschreven de originele code was, kan het de moeite waard zijn om opnieuw te beginnen in je favoriete taal (die misschien nog steeds C++ is) en te leren van eventuele fouten die in de laatste versie zijn gemaakt. Heeft iemand niet eens gezegd dat je er een moet schrijven om weg te gooien?

nb. Het is duidelijk dat als dit een enorm product is, het de tijd misschien niet waard is.

Other episodes