Autor Beitrag
[/user]
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Di 30.05.06 21:02 
Hallo!

Wollte mal fragen wie ich es schaffe das Konstanten nicht offen in der exe stehen. Verschlüsselung würde theoretisch auch gehen (da hätte ich schon eine) (weil in diesem Fall aus den Konstanten eh bald Variablen werden).

Hat da jemand eine Idee?


:wave:
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 30.05.06 22:32 
Moin und :welcome: im Forum!

Da reicht doch schon ein simples xor, damit man das nicht sofort wiederfindet. ;) Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
const
  MY_CRYPT_CONST = $486E0C22; // = $12345678 xor $5A5A5A5A

function Decode(const Secret: Integer): Integer;
begin
  Result := Secret xor $5A5A5A5A;
end;

Edit1.Text := IntToHex(Decode(MY_CRYPT_CONST),8);

Musst das aber in eine Funktion verpacken, sonst optimiert der Compiler das wieder raus. ;)

Richtig sicher geht´s aber nur schlecht, denn selbst wenn du sowas wie RC4 nimmst, brauchst du in der EXE ja auch den Schlüssel... :? irgendwo beißt sich das ganze dann immer wieder in den Schwanz. :|

Andere Variante: die Werte "verteilen", also die Daten (Konstanten) in Teilen wild durcheinander deklarieren und dann erst beim Benutzen wieder zusammensetzen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Mi 31.05.06 18:33 
Da ich in diesem Programm schon RC4 benutze, bietet sich es an auch für die verschlüsselung meiner Konstanten zu benutzen.

Jetzt muss ich nur noch wissen wie ich die verschlüsselten Daten am besten abspeicher (denn es können ja auch Zeichen wie #13 bei der Verschlüsselung entstehen).

Danke schonmal :)


:wave:
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 08:00 
Weiß keiner was? :cry:
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 02.06.06 08:11 
Moin!

user profile icon[/user] hat folgendes geschrieben:
Jetzt muss ich nur noch wissen wie ich die verschlüsselten Daten am besten abspeicher (denn es können ja auch Zeichen wie #13 bei der Verschlüsselung entstehen).

Ich kapier deine Frage nicht :gruebel: kannst du keine Konstanten deklarieren, oder was? :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 08:25 
Moin!
Ist das nicht egal, ob bei der Verschlüsselung Steuerzeichen wie eben lfs oder crs entstehen? die können in deinem restlichen code ja auch entstehen, dort störts ja auch nicht imho. Oder seh ich das falsch oder versteh ich die Frage auch net? :D
:rizla:
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 08:31 
Ich glaub ihr versteht mich falsch :D ;)

Also ein Beispiel: Ich habe 2 RichEdits. Ich verschlüssel den Text des 1. und gebe ihn im 2. aus. Wenn ich jetzt es wieder entschlüssle, klappt das wunderbar. Wenn ich aber den Text vom RichEdit2 (Verschlüsselter Text) in die Zwischenablage kopiere und ihn dann irgendwo einfüge (1. RE), gehen Zeichen verloren und wenn ich ihn dann entschlüsseln will kommt der Text nicht mehr richtig heraus..

Und wie soll ich denn eine Konstante deklarieren die #13 enthält? Ok ich kann machen XXX = 'hallo'#13'test';

#10 kann sie auch enthalten, aber das ist eigentlich garnicht mehr das Problem da ich die 2 Zeichen mir einfach via StringReplace anzeigen lasse..


:wave:
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 08:34 
Ah, jetzt macht das Sinn, klang vorher a bissl anders die Frage.
Ja, das ist tatsächlich ein Problem mit dem lf dann.
Was genau für ein Stringreplace machst du denn? (Ist ernst gemeint die Frage!)
.:°rizla°:.

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 08:38 
Meinst du jetzt die Parameter? [rfReplaceAll]?

Also ich mache es im moment so, dass ich #13 mit '#13' ersetze... soll ich das jetzt so mit allen nicht darstellbaren Zeichen machen? :shock:

Welche zeichen sind denn nicht darstellbar? #0 - #31 ?


:wave:
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 08:45 
Ich frage aus folgendem Grund: Was passiert denn, wenn dein plaintext zu folgendem ciphertext wird: '#13' ? Ist kein joke, das kann passieren - und wenn du das mit allen Steuerzeichen machst, ergibt der entschlüsselte Code keinen Sinn mehr, unter Umständen.
Verstehst, was ich meine?
~*rizla*~

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 08:50 
Jup ich weiß, aber gibt es denn eine andere Möglichkeit?

Also ich kann bei diesen 3 (je ca 40 Stellen langen) Strings eigentlich sicher sein, dass dort der verschlüsselte Text kein #13 enthält.
Ich mache es dann so, dass ich mit StringReplace mir die Sachen anzeige (also in dem extra Programm mit den 2 REs) und in den Konstanten aber dann richtig Schreibe: 'blablubb'#8#12#13'lalala'

Also welche Zeichen muss ich dann alles ersetzen?

:wave:
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 09:01 
Ja, die sind halt die Steuerzeichen, einige sind darstellbar, andere piepen (bel), andere machen einen Tab :wink:
Also ersetzt am besten alle SZ - dann biste uff der sicheren Seite. Warum bist Du dir so sicher, dass kein '#13' rauskommt? :zwinker:
o0rizla0o

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 09:09 
user profile iconrizla hat folgendes geschrieben:
Also ersetzt am besten alle SZ

Und welche sind das?

user profile iconrizla hat folgendes geschrieben:
Warum bist Du dir so sicher, dass kein '#13' rauskommt?

Naja ich hab die 3 Strings verschlüsselt und nirgens kam '#13' aus :D
Also kann ich mir ja sicher sein ;)

:wave:

[EDIT]Habs jetzt geschafft, #0-#31 sind die Steuerzeichen ;) Danke an alle![/EDIT]
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 09:43 
Wie von dir selbst gesagt: nimm #0 - #32, ersetz sie durch dein '#XX' muster, dann ist gut!
Aber wenn Du sagst, Du hast die 3 Strings verschlüsselt, es kam kein #13 raus, sind das denn nun die 3 Strings, die Du verschlüsselt haben willst? :?!?:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 10:02 
Ja, sind nur die 3 Strings ;)

:wave:

PS: bis #31 natürlich ;) #32 ist ja ein leerzeichen :)
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 10:15 
Ah! Dann macht das alles Sinn und die Frage meine ganzen letzten Aussagen wett, denn Du kannst doch einfach n anderen Schlüssel nehmen, der keine Steuerzeichen erzeugt :wink:
Oder nen anderen Algo..
Ich dachte, Du würdest aktiv mit der Verschlüsselung arbeiten, hatte net erkannt, dass Du einfach nur 3 verschlüsselte Zeichenketten brauchst.
:autsch:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 02.06.06 10:16 
Da ich die Erfahrung noch nicht gemacht habe, wollte ich mal fragen:

In TStrings gibt es doch einen Wert (Bezeichner entfallen), der alle Zeilen eines TRichEdit od. TMemo als ein einziger String mit Steuerzeichen repräsentiert. Wenn ich diesen String in die Zwischenablage kopiere und anschließend wieder in ein TStrings (ob nun unter TRichEdit oder TMemo) einfüge, dann gehen die Steuerzeichen in der Zwischenablage "verloren"?

Oder geht es nicht um die Zwischenablage, sondern darum, dass TRichEdit und TMemo einen Steuerzeichen behafteten String nach der Zuweisung formatieren und nicht unterstützte Steuerzeichen entfernt werden?

Diese Frage ist mir sehr ernst.
[/user] Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 30



BeitragVerfasst: Fr 02.06.06 10:21 
user profile iconrizla hat folgendes geschrieben:
Ah! Dann macht das alles Sinn und die Frage meine ganzen letzten Aussagen wett, denn Du kannst doch einfach n anderen Schlüssel nehmen, der keine Steuerzeichen erzeugt :wink:
Oder nen anderen Algo..
Ich dachte, Du würdest aktiv mit der Verschlüsselung arbeiten, hatte net erkannt, dass Du einfach nur 3 verschlüsselte Zeichenketten brauchst.
:autsch:


RC4 hat sich eben angeboten da ich das in diesem Programm schon drin habe (deswegen vielleicht die Verwirrung ;) ).
Klappt jetzt alles wunderbar :)


@Neurologic Scientist: Du meinst wohl einfach TStringList.Text, oder?

Die Steuerzeichen 10 und 13 gehen nicht verloren so weit ich weiß, aber andere wie #8 (Backspace) etc.


:wave:


Edit: Da brauchst du aber keine Angst haben, denn normalerweise kann man kein Backspacezeichen schreiben :lol:
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 02.06.06 11:06 
Dachte ich's mir doch! Das mit #10+#13 wusste ich, iss ja der Zeilenumbruch.
THX.