Wie schwer zu reverse Engineering .pyd Dateien?
Nach der Lektüre Wie Schütze ich Python-code? , habe ich beschlossen, zu versuchen eine wirklich einfache Erweiterung-Modul unter Windows. Ich erstellte meine eigene extension module unter Linux vor, aber dies ist das erste mal, dass ich es kompiliert auf Windows. Ich hatte erwartet, zu bekommen .dll Datei, aber stattdessen bekam ich einen .pyd-Datei. Docs sagt, Sie sind irgendwie gleich, aber es muss eine init[insert-module-name]()
Funktion.
Ist es sicher anzunehmen, es ist so schwer zu reverse engineer Sie als dll-Dateien. Wenn nicht, was ist Ihre Härte zu reverse Engineering in einer Skala von .pyc-Datei zu .dll-Dateien?
Wenn Sie sagt, "ja, .pyd Dateien sind dll ' s," was ist der Punkt in der Frage, ob Sie weniger hart, reverse Engineering als dll-Dateien? Das ist immer noch native code...
Ich bin schwer zu verstehen, wie unterschiedlich Sie eigentlich sind. Zum Beispiel .pyc Dateien sind kompilierte code auch, aber Sie sind einfacher zu reverse-Engineering als dll-Dateien.
Dateien sind nicht systemeigenen code aber.
Ich bin schwer zu verstehen, wie unterschiedlich Sie eigentlich sind. Zum Beispiel .pyc Dateien sind kompilierte code auch, aber Sie sind einfacher zu reverse-Engineering als dll-Dateien.
Dateien sind nicht systemeigenen code aber.
InformationsquelleAutor yasar | 2012-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind, wie Sie bereits erfahren haben, entspricht DLL-Dateien mit einer bestimmten Struktur. Prinzipiell sind Sie ebenso schwer zu reverse-Engineering, Sie sind in der Maschine code, benötigen sehr wenig Metadaten, und der code kann optimiert wurden, bis zur Unkenntlichkeit.
Jedoch, die erforderliche Struktur und das wissen, dass viele Funktionen wird die Handhabung
PyObject *
s und andere gut definierte CPython-Typen, kann eine gewisse Wirkung haben. Es wird nicht wirklich helfen, die mit der Zuordnung der Assembler-code nach C (wenn überhaupt, es wird immer schwieriger, aufgrund der CPython-spezifische Makros). Code, der meist in Wechselwirkung mit Python-Typen wird ganz anders Aussehen, code Manipulation von C-structs und vergleichsweise aufgebläht). Dies kann machen es noch schwieriger zu verstehen, oder kann es verschenken-code, welcher nichts tut, interessant und ermöglicht es einem reverse Engineering zu überspringen und zu erhalten, um Ihre Geschäftsgeheimnisse früher.Keines dieser Bedenken gelten für die Teile des Codes, die reinen C-code (also nicht die Interaktion mit Python). Und Sie haben wahrscheinlich eine Menge von diesen. Also sollte es nicht einen erheblichen Unterschied in der end.
InformationsquelleAutor
Sind Sie grundsätzlich native code. Aber da jeder Funktion haben komische Argumente, es könnte schwieriger sein, zu sehen, was jede Funktion bedeutet. Ich würde sagen, Sie sind so hart wie die dll, wenn nicht härter.
InformationsquelleAutor quantum