![]() |
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 |
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. |
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. |
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 |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Dann fallen aber alle Sparchen flasch, welche RTTI unterstützen ( .Net/Java dann sowieso)
|
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Zitat:
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: |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Zitat:
|
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Zitat:
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) |
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:
weitere Infos hierzu:
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
![]() |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Zitat:
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: |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Hallo,
@himitsu: Ich denk schon, dass du das richtig verstanden hast. Bei Embarcadero steht: Zitat:
Ciao Chris |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Na da isses gut :angel:
Hat denn schonmal jemand diese Schalter ausprobiert? Also was mich interessieren würde: Arbeitet dieser {$RTTI ...}-Schalter global oder nur in der Unit, wo er deklariert ist? |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Moin, moin,
Zitat:
Für Programme im Eigenvertrieb ist das genau so! Bei Anwendungen in Kundenauftrag spielt das keine Rolle, aber hier ist der Kunde der Lizenzpartner für die Entwicklungstools und ich eher der "Scharuber" der die Software mitplant und nach Vorgaben entwickelt. Bei Inhouseanwendungen ist das meistens irrelevant. Grüße // Martin |
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
@himitsu: Soweit ich das gesehen habe, leider nur lokal. Das heißt, wenn du die extended RTTI komplett deaktivieren willst, musst du in alle RTL und VCL Units von Delphi diese Direktive inkludieren und dann alles neu builden.
|
Re: D2010 - RTTI- Komplettes Reverse Engineering möglich?
Das leider ist für mich jetzt erstmal gut X'D
so kann man dieses in seinen selbstprogrammierten Komponenten/Units gezielt abschalten, ohne gleich die ganze Application zu beeinflussen :angel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz