Autor Beitrag
DelphMan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: Mi 11.10.06 14:51 
Hallo,


ich habe ein Programm in Delphi 2005 PE.
Wenn ich es kompiliere, sieht man in der
"EXE-Datei" noch die Namen meiner Klassen
und Methoden (Debugging-Info=AUS!).

Wie kann ich die aus dem Kompilat entfernen
(Compiler Options?).

Irgendwelche TForms sind mir egal, aber die
Namen meiner eigenen Klassen/Methoden sind
lesbar, das will ich nicht.



Danke!

DelphMan

PS: Laufzeitpacker zum Verschleiern der EXE will ich nicht nutzen.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Mi 11.10.06 20:00 
Die einzige Möglichkeit die es gibt wäre ein Obfuscator (de.wikipedia.org/wiki/Obfuscator). Ich kenne aber keinen für Delphi.

Ansonsten ist es nötig das diese Infos in der Exe stehen (jedenfalls für alle TComponent-Nachfolger) damit das Formularstreaming funktioniert.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.10.06 21:17 
Und warum willst du das nicht? Glaubst du deine Anwendung ist so innovativ, dass sie schützenswert wäre?

Es gibt Programme, die die Exe verschlüsseln. Sie werden aber meist als Viren erkannt. Aber die Exe liegt natürlcih auch wieder unverschlüsselt im Arbeitsspeicher vor. Und mit einem Debugger kommt man dann auch wieder an die Informationen.

Schalg dir das also am besten aus dem Kopf.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Do 12.10.06 12:03 
user profile iconDelphMan hat folgendes geschrieben:
Hallo,


ich habe ein Programm in Delphi 2005 PE.
Wenn ich es kompiliere, sieht man in der
"EXE-Datei" noch die Namen meiner Klassen
und Methoden (Debugging-Info=AUS!).

Wie kann ich die aus dem Kompilat entfernen
(Compiler Options?).

Irgendwelche TForms sind mir egal, aber die
Namen meiner eigenen Klassen/Methoden sind
lesbar, das will ich nicht.
Danke!

DelphMan
PS: Laufzeitpacker zum Verschleiern der EXE will ich nicht nutzen.


Hallo,

das ist bei modernen Sprachen unvermeidlich, siehe DLLs, OLE und .NET. Wenn dein Programm unbedingt geheim bleiben muss, wirst du es in Assembler schreiben müssen: da bleibt nichts zurück. Allerdings darfst du dabei keine DLLs oder sonstige Libraries verwenden.

Gruss Reinhard
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Do 12.10.06 12:07 
Außerdem was kann man anhand Deiner Klassennamen schon ableiten???

Oder sind es doch die Klassen anderer? :wink:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 12.10.06 12:28 
Erstens: Wenn du den Zweck einer Methode vor anderen verschleiern willst, dann nenn die Methode eben nicht so, dass man den Sinn der Methode erraten kann.

Zweitens: Wenn das sowas wie ein Verschlüsselungsschutz sein soll: Vergiss es! Ein guter Programmierer (Assembler meine ich) erkennt auch anhand des Assembler-Codes was eine Methode macht...

Und wenn du eine geknackte Version einer Komponente benutzt (das will ich nicht unterstellen, aber da du den Sinn deines Alieges nicht erwähnt hast, KANN ich ja nur raten), dann erkennt man die auch, wenn die Methodennamen und Klassennamen geändert wurden...
DelphMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: Fr 13.10.06 19:24 
Nein, hier ist alles legal!

Mich stört es, dass man selbt mit dem PE-Explorer alle Funktionen/Methoden
auf dem Silbertablett serviert bekommt und darunter schön gestückelt den
Assemblercode.

Von C-Programmen kenne ich das so, dass man nur noch HEX-Sprungmarken
zu Gesicht bekommt.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 13.10.06 19:43 
Bei C-Programmen gibt es aber auch keine VCL, keine bequeme Programmierung, keine Klassen, kein Streaming. Delphi ist eben eine höhere Programmiersprache, und kein Makroassembler.

Wenn Du keine Klassen verwendest, dann sieht man doch auch nichts in Delphi.

Ungeachtet dessen solltest Du davon Abstand nehmen, mir über das Aussehen der EXE gedanken zu machen. Jedes gute kommerzielle Programm sieht -so gesehen- genau so aus wie Deins, also muss Dir das nicht peinlich sein.

Der Sinn eines PE-Explorers ist genau das, was Du unverständlicherweise bemängelst.

_________________
Na denn, dann. Bis dann, denn.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Fr 13.10.06 20:33 
Auch solltest Du nie für .NET ein Programm entwickeln (jedenfalls nicht ohne obfuscation).

Dort kann man sogar den kompletten Quellcode angezeigt bekommen (mit passenden Tools).