Ist es möglich, zu dekompilieren ein .dll/.pyd-Datei zu extrahieren, Python-Source-Code?
Gibt es irgendwelche Möglichkeiten, um eine dll zu dekompilieren und/oder ein .pyd-Datei um extrahieren von Quellcode, geschrieben in Python?
Vielen Dank im Voraus
Ja. Und es ist gefragt worden, bevor ich abstimmen, um diese zu schließen und hier eine Referenz - stackoverflow.com/questions/5287253/...
ist nicht dieselbe Frage(dll nicht .pyc-Datei ) ! Meine Idee, Nein können Sie nicht ! Vielleicht konvertieren Assembler-code, aber wie man die Daten/Funktion-Baum ?
Vielen Dank für deine Hilfe.
dies ist in der Tat nicht die gleiche Frage, pyd Dateien sind produziert von Cython. Im Gegensatz pyc/bytecode, der pyd Dateien sind Binärdateien, die nicht enthalten die original-python source. Obwohl es nicht den Schutz von reverse-engineering, es macht es viel schwieriger, und verhindert, dass jemand von der Erlangung der genauen ursprünglichen Quellen Ihres Codes.
ist nicht dieselbe Frage(dll nicht .pyc-Datei ) ! Meine Idee, Nein können Sie nicht ! Vielleicht konvertieren Assembler-code, aber wie man die Daten/Funktion-Baum ?
Vielen Dank für deine Hilfe.
dies ist in der Tat nicht die gleiche Frage, pyd Dateien sind produziert von Cython. Im Gegensatz pyc/bytecode, der pyd Dateien sind Binärdateien, die nicht enthalten die original-python source. Obwohl es nicht den Schutz von reverse-engineering, es macht es viel schwieriger, und verhindert, dass jemand von der Erlangung der genauen ursprünglichen Quellen Ihres Codes.
InformationsquelleAutor Youssef Imam | 2016-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich davon ausgehen .pyd/.dll Dateien erstellt wurden, in Cython, nicht Python?
Sowieso, in der Regel ist es nicht möglich, es sei denn, es ist ein decompiler, die speziell für die Sprache der Datei war ursprünglich zusammengestellt aus. Und obwohl ich weiß, über C, C++, Delphi, .NET und einige andere decompilers, ich habe noch zu hören, über Cython decompiler.
Natürlich, was Cython macht ist, konvertieren Sie Ihre Python - [artige] - code in C-code erste, was bedeutet, dass Sie möglicherweise mehr Glück bei der Suche einen C decompiler und dann vorausgesagt dem ursprünglichen Python-code auf der Basis von C-code dekompiliert. Zumindest diese Weise werden Sie den Umgang mit der übersetzung von einer (relativ) high-level-Sprache in die andere.
Worst-case-Szenario, müssen Sie einen disassembler. Jedoch, Neuerstellung der Python-code vom disassembler-output ist nicht zu leicht (ziemlich ähnlich der Wünschelrute den biologischen Funktionen des Gehirns von chemischen Formeln von Proteinen, aus denen es-Zellen).
Könnte man auf diese Frage auf Ideen und Anregungen zu verschiedenen decompilers und Zerleger, und gehen Ihrer Untersuchung von dort.
Ich bin nicht einverstanden mit dieser Antwort, siehe meine Antwort stackoverflow.com/a/41075212/1422096
Lesen Sie die Updates für Ihre Antwort, es scheint, dass
.pyd
Dateien zusammengestellt von Cython nicht mit source-code eingebettet in Ihnen, nachdem alle. Wenn man zeigen könnte es anders sein, wäre ich wirklich interessiert, aber bis dahin werde ich stehe zu meiner Antwort.Du hast Recht @Lav.
ist es möglich, reverse Engineering C-code, dann gibt es diese software, die ich brauche, um reverse Engineering), es ist in Python geschrieben und hat .pyd Dateien in es.
InformationsquelleAutor Lav
Ich bin nicht einverstanden mit der akzeptierten Antwort, es scheint, dass ja, der Inhalt der Quell-code ist zugänglich, auch in einer
.pyd
.Lassen Sie uns sehen Sie zum Beispiel, was passiert, wenn eine Fehlermeldung kommt:
1) Erstellen Sie diese Datei:
whathappenswhenerror.pyx
2) Kompilieren Sie es mit
python setup.py build
:setup.py
3) importieren Sie Jetzt die .pyd-Datei in einem standard-python-Datei:
testwhathappenswhenerror.py
4) wir führen es mit
python testwhathappenswhenerror.py
. Hier ist die Ausgabe:Wie Sie sehen können die code-Zeile
print 1/0 # this will generate an error
das war in der.pyx
source-code wird angezeigt! Auch der Kommentar angezeigt wird!4 bis) Wenn ich löschen (oder verschieben irgendwo anders) das original .pyx-Datei, bevor Schritt 3), dann den original-code
print 1/0 # this will generate an error
wird nicht mehr angezeigt:Aber bedeutet das, dass es nicht in der .pyd? Ich bin mir nicht sicher.
pyx
zeigt, dass die Traceback-verwendet eine Art link von derpyd
(so
in Linux), um Zeilen in derpyx
. Der code ist nicht in derpyd
.wenn der pyx-Datei ist im gleichen Ort und wenn Sie tun
import whathappenswhenerror
, wie Sie wissen, es ist Import.pyd
und nichtpyx
? Wahrscheinlich ist es das importierenpyx
und damit die code-Anzeige auf den Fehler.Man kann sagen, dass es mit der
pyx
- Datei, indem man die traceback (File "whathappenswhenerror.pyx", line 4
)InformationsquelleAutor Basj