Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi D2010 - RTTI- Komplettes Reverse Engineering möglich? (https://www.delphipraxis.net/141452-d2010-rtti-komplettes-reverse-engineering-moeglich.html)

Ralf Kaiser 9. Okt 2009 08:44


D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Halli Hallo,

Ist es eigentlich mit den neuen RTTI-Funktionen auch möglich den Code von Methoden zu rekonstruieren?

In .NET gibt es ja die Möglichkeit ein Programm, wenn es nicht "obfuscated" wurde, z.B. mit der Software "Reflector" komplett wieder herzustellen. Dabei lassen sich mittles "Reflector" auch fertig compillierte Programme öffnen und analysieren.

Geht das mit der neuen RTTI jetzt auch? (zumindest an das Analysieren fon fertigen Exen kann ich bei Delphi nicht so recht glauben...)

Leider habe ich (noch) kein D2010 und meine Trial ist bereits abgelaufen, kann also selbst nicht testen was da alles möglich ist.

Ciao,
Ralf

Bernhard Geyer 9. Okt 2009 08:50

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Es wäre mir neue wenn der D2010-Compiler in eine IL (Intermediate Language) Kompiliert und diese dan per JIT zu laufzeit übersetzt.
Du bekommst den Code immer noch nur als Assemble per Reverse Enginieering zu gesicht.

himitsu 9. Okt 2009 08:59

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Ich würde aber zumindestens erwarten, daß wenn man mit diesen neuen Infos Reverse Engineering betreibt, daß dan zumindestens etwas noch brauchbarere Ergebnisse entstehen.

Klar, aktuell macht es ja ja probleme den Codeoptimierten Inhalt (Quellcodes) der Prozeduren aus dem ASM zu rekonstruieren,

Aber es gibt doch jetzt viel mehr Debuginformationen und auch auch der Aufbau von Typen/Klasen ist viel detailierter, daß sich zumindestens an einigen inzwischen wohl zumindestens genauer sagen läßt was ein welcher Stelle liegt.

mschaefer 9. Okt 2009 09:00

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Das ist auch gut so!

Der Investitionsschutz ist gerade das Argument für die Anschaffung und das Arbeiten mit Delphi.
Wenn Sie den Exe-Analysator gleich mitliefern, dann kaufe ich jedenfalls kein Delphi mehr . . .

Grüße in die Runde // Martin

mkinzler 9. Okt 2009 09:03

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Dann fallen aber alle Sparchen flasch, welche RTTI unterstützen ( .Net/Java dann sowieso)

Ralf Kaiser 9. Okt 2009 09:03

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Zitat:

Zitat von Bernhard Geyer
Es wäre mir neue wenn der D2010-Compiler in eine IL (Intermediate Language) Kompiliert und diese dan per JIT zu laufzeit übersetzt.

Darum hatte ich ja auch geschrieben, dass ich nicht glauben kann, dass man das selbe wie mit Reflector unter .NET bei Delphi erreichen kann... :wink:

Aber wäre es denn im Prinzip möglich aus einer fertigen Exe zumindest Klassennamen, Methodennamen oder Proertynamen (also nicht den Code) auszulesen? In einem solchen Fall sollte man seine Auswertung für Lizenzinformationen eventuell nicht unbedingt "DecodeRegistrationNumber()" nennen. :wink:

Bernhard Geyer 9. Okt 2009 09:03

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Zitat:

Zitat von mschaefer
Der Investitionsschutz ist gerade das Argument für die Anschaffung und das Arbeiten mit Delphi.
Wenn Sie den Exe-Analysator gleich mitliefern, dann kaufe ich jedenfalls kein Delphi mehr . . .

Falls noch mehr möglich ist wird ein Delphi.Win32 Obuscator nötig ...

Ralf Kaiser 9. Okt 2009 09:11

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Zitat:

Zitat von mkinzler
Dann fallen aber alle Sparchen flasch, welche RTTI unterstützen ( .Net/Java dann sowieso)

Bei .NET fand ich das schon ziemlich erschreckend (mit Java hab ich es nie ausprobiert). Da habe ich mal (nur als Test) aus den fertigen Assemblies unserer Webanwendung den Quelltext komplett wieder hergestellt. Mit Reflctor kann man dabei sogar die Programmiersprache wählen die als Ausgabe dienen soll.

Gut, bei einer Webanwendung hat man sowieso ein Sicherheitsproblem auf dem Server wenn jemand an die Assemblies drankommt, dann ist das dekodieren nur ein Folgeproblem. Aber bei Desktop-Apps... (dafür gibt es dann die Obfuskatoren)

Daniel 9. Okt 2009 09:13

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Für ein Release hat man auf jeden Fall die Möglichkeit, mittels der folgenden Direkive die Generierung der RTTI-Informationen abzuschalten:
Delphi-Quellcode:
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
weitere Infos hierzu:
http://docwiki.embarcadero.com/RADSt...ctive_(Delphi)

himitsu 9. Okt 2009 09:35

Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
 
Zitat:

Zitat von Daniel
Für ein Release hat man auf jeden Fall die Möglichkeit, mittels der folgenden Direkive die Generierung der RTTI-Informationen abzuschalten:

Man kann auch die vcPublished abschalten.

Oder werden da doch nur die neuen Funktionen deaktivert und die "alten" Listen existieren noch?
Die ganze VCL baut doch darauf auf, daß man da einiges auslesen kann (für die Serialisierung/Speicherung unc Co.)

Ich hoffe es jetzt aber mal so verstanden zu haben, daß nur das Neue dann weg ist. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz