Entwickler-Ecke

Sonstiges (Delphi) - [S] Kombo/Tool damit der Kompiler automatic Var-Names ändert


Biarchiv - Mi 24.06.09 12:22
Titel: [S] Kombo/Tool damit der Kompiler automatic Var-Names ändert
Hallo!

Ich suche Eine Komponente, Unit, Tool, ...? das ich in Delphi so einbauen kann, dass es beim compilieren der erzeugten EXE alle Integer, Strings, Doubles,.... die Namen verschleiern kann. Dieses sollte per Zufallsgenerator Wörter generiert werden.
Es geht mir darum das beim Decompilen/Debuggen nicht alles in Klartext stehen soll.

ZB:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
MySecretString: string;

begin
MySecretString := 'XXXXXX';
end;



macht aus compilierter EXE:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
DGDFGDERTE: string;

begin
DGDFGDERTE := 'XXXXXX';
end;


jaenicke - Mi 24.06.09 12:31

Die Variablennamen werden ohnehin nicht in die Exe übernommen, das sind dort nur noch Sprungadressen... (jedenfalls wenn man ohne Debuginfos kompiliert)
Übernommen werden nur Namen von Komponenten usw.


BenBE - Mi 24.06.09 14:01

@jaenicke: Das stimmt so nicht ganz: In der RTTI stehen die Namen im Klartext ... Das geht aber auch nicht anders, da diese Informationen benötigt werden, damit das Programm richtig läuft.

Außerdem: Die üblichen verdächtigen bzgl. EXE-Crypter, EXE-Packer und Obfuscatoren erhöhen die Gefahr einer (False-)Positive-Erkennung erheblich, weshalb von deren Einsatz dringend abzuraten ist. Und selbst dann ist das Reverse-Engineering immer noch möglich, nur halt etwas aufwändiger.


Biarchiv - Mi 24.06.09 14:26

Hallo,

auch Funktionennamen, Prozeduren, usw kann alles im Klartext gelesen werden. Ich meinte nur so gibts ein Programm was diese Werte vorm compilieren per Zufallswort abändern kann. Das Programm würde ja trozdem laufen, weil er ja alle diese richtig ändert. Und alle die gleich sind nur wieder gleich abändert. Ja, das mit den Exe-Tools ist ein großes Problem.


BenBE - Mi 24.06.09 14:42

Prozeduren und Funktionen, die zu keinem Objekt gehören stehen nicht in der RTTI. Wenn du ohne Debug-Symbole arbeitest tauchen die also auch nicht in der EXE auf. Um trotzdem zu debuggen gibt's Dinge wie OmMAP ...