Wie zum extrahieren von C-source-code aus .so-Datei?
Arbeite ich auf bereits früher entwickelte software und source code kompiliert wird, wie linux shared libraries (.so) und der Quellcode ist nicht vorhanden. Gibt es irgendein tool, das extrahieren von Quellcode aus dem linux-Systembibliotheken?
Dank,
Ravi
InformationsquelleAutor Ravi | 2011-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht. Sobald Sie Ihren code kompilieren gibt es keine Spur von es Links in die binäre, nur Maschinen-code.
Einige mögen Erwähnung decompilers aber diese nicht extrahieren Sie die Quelle, analysieren Sie die ausführbare Datei und erzeugen eine Quelle, dass sollte den gleichen Effekt haben wie das original.
Ich bin damit einverstanden. Ich habe nicht bekommen, verwenden Sie Hex-rays (die ich gehört habe ist ganz gut), aber die anderen, die ich versuchte, waren schrecklich.
InformationsquelleAutor cnicutar
Können Sie versuchen, die Demontage der Objekt-code und erhalten Sie den Maschinen-code Mnemonik.
objdump -D --disassembler-options intel sjt.o
to get Intel-syntax Montageobjdump -D --disassembler-options att sjt.o
oderobjdump -D sjt.o
um AT&T-syntax MontageAber der original-source-code konnte nie gefunden werden. Sie könnten versuchen, den Prozess rückgängig zu machen durch das Studium und die Rekonstruktion der Abschnitte. Würde er die Hölle Schmerzen.
InformationsquelleAutor phoxis
Disclaimer: ich arbeite für Hex-Rays SA.
Den Hex-Rays decompiler ist das einzige kommerziell verfügbare decompiler die ich kenne, die gut funktioniert mit real-life x86-und ARM-code. Es ist wahr, dass Sie nicht die ursprüngliche Quelle, aber Sie bekommen, was ist äquivalent zu. Wenn Sie nicht Streifen Ihre binäre, Sie könnte sogar erhalten, die Funktion Namen, oder, mit etwas Glück sogar auf Arten und lokale Variablen. Jedoch, auch wenn Sie nicht über das symbol info, die Sie nicht haben, zu bleiben, um die erste Runde der Dekompilierung. Der Hex-Rays decompiler ist interaktive - können Sie jederzeit umbenennen variable oder Funktion, change-Variablen-Typen, erstellen Struktur-Typen zur Darstellung der Strukturen in den originalen code, fügen Sie Kommentare hinzu, und so weiter. Mit ein wenig Arbeit können Sie sich erholen viel. Und ganz oft, was Sie brauchen, ist nicht das gesamte original-Datei, aber einige kritische Algorithmus oder der Funktion - und das Hex-Rays können in der Regel zur Verfügung stellen.
Haben Sie einen Blick auf die demo videos und die Vergleich Seiten. Denke immer noch, "staring at the Montage" ist das gleiche?
Es gibt ein paar, wie REC oder Boomerang finden Sie unter hier. Aber keiner von Ihnen sind geeignet für real-life Einsatz IMO.
Was ist IDA ? AFAIK, es war ganz gut bei der Dekompilierung und es gibt eine Kostenlose (alte) version heute
kann ich trial-version von Hex-Rays decompiler
InformationsquelleAutor Igor Skochinsky
Nicht. Im Allgemeinen ist dies unmöglich. Quelle ist nicht verpackt in kompilierter Objekte oder Bibliotheken.
InformationsquelleAutor Stephen Canon
Können Sie nicht. Aber Sie können es öffnen, als ein Archiv in 7-Zip. Sehen Sie die Datei-Typ und Größe jeder Datei einzeln. Sie können ersetzen Sie die Dateien in Ihre benutzerdefinierten Dateien.
.so
im 7-zip?.so
in Linux ist die gleiche wie.dll
in windows ist Sie nicht in der Lage sein, um es zu öffnen in einem uncompresser wie WinZip oder 7-zip oder WinRARSie öffnen kann .a-Dateien nicht sicher .so
was ist eine Beziehung zwischen kompilierte shared-object und Dekompression ? Dekompilieren !== Dekompression
InformationsquelleAutor arshad