
Situation: Vor langer Zeit habe ich einige Codes in C und C++ entwickelt, indem ich sie in *.SO-Dateien konvertiert habe. Anschließend habe ich diese C- und C++-Dateien gelöscht.
Problem: Ich möchte die *.SO-Dateien zur Codeaktualisierung erneut in C- und C++-Dateien konvertieren. Bitte geben Sie mir eine Anleitung zum Verfahren und senden Sie mir ein Tutorial und Verfahren zur erneuten Konvertierung.
Antwort1
Diese Frage wurde hier schon einmal gestellt:https://stackoverflow.com/questions/2306972/is-there-any-way-to-decompile-linux-so.
Wie dem auch sei, Sie können Ihren ursprünglichen Code nicht zurückbekommen, oder um Carlos Gutiérrez zu zitieren: „Aus einer Kuh kann man Hamburger machen, aus Hamburgern aber keine Kuh".
Eine *.so-Datei ist ein kompiliertes, gemeinsam genutztes Objekt (entspricht ungefähr einer DLL in Windows). Sie enthält alle Informationen für eine Funktion in einer Sprache, die der Computer versteht. Dies muss nicht unbedingt die gleiche Sprache sein, in der sie geschrieben wurde. Wenn das Original keine reine Assemblersprache war, ist es mit ziemlicher Sicherheit nicht dieselbe Sprache. Obwohl es also möglich ist, genügend Informationen zurückzubekommen, um eine Funktion zu erstellen, die dasselbe tut, ist es nicht möglich, zum ursprünglichen Quellcode zurückzukehren.