AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RC4 Verschlüsslung für Delphi

Ein Thema von Berlinermauer · begonnen am 26. Mai 2009 · letzter Beitrag vom 27. Mai 2009
Antwort Antwort
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#1

RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 20:01
Hi Leute,
um den Code meines Programmes zu schützen, wollte ich es gerne RC4 verschlüsseln.

Zum Verschlüsseln nutze ich den Code aus der CL, ich habe den link gerade nicht parrat.

Mit der folgenden Funktion lese ich ersteinmal das Binär-File ein :

Delphi-Quellcode:
function FileToString(const AFilename: string; StartPos: Integer=0; EndPos: Integer=0): string;
var
  FileStream : TFileStream;
  wlCount: Integer;
begin
  if FileExists(AFilename) then
  begin
    if StartPos < 0 then
      StartPos := 0;

    FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
    try
      if (EndPos <= StartPos) or (EndPos > FileStream.Size) then
        EndPos := FileStream.Size;
      wlCount := EndPos - StartPos;
      if FileStream.Size > StartPos then
      begin
        SetLength(Result, wlCount);
        FileStream.Seek(StartPos, soFromBeginning);
        FileStream.Read(Result[1], wlCount);
      end;
    finally
      FileStream.Free;
    end;
  end
  else
    Result := '';
end;
Der Author hat darauf hingewiesen, dass es zu Fehlern kommen kann, joar und das ist aufgetreten.

MyCode := FileToString(MeineBinärDateiDa);
RC4Init(MyContext,'MeinPasswort'); // Passwort
RC4Code(MyContext,MyCode, MyCryptCode,Length(MyCode)); // Verschlüsseln
RC4Done(MyContext);

So nun bekomme ich eine AccessViolation. Und zwar beim RC4Code.

Lasse ich mir "MyCode" ShowMessagen kommt auch nur "LMZ"

Wie gehe ich das besser an?
Marc S.
  Mit Zitat antworten Zitat
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#2

Re: RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 20:33
Mich interessiert das Ganze auch. Und zwar verwende ich den Code von hier: http://www.delphipraxis.net/internal...&highlight=rc4

Wenn man binäre Dateien also verschlüsseln will, kann man dann direkt TMemoryStream verwenden? Ich denke nicht, aber bis jetzt sieht mein Code so aus:
Delphi-Quellcode:
var FileToEncrypt, EncyptedFile: TMemoryStream;
    EncryptingFile: TRC4Context;
begin
  RC4Init(EncryptingFile,'Passwort');
  RC4Code(EncryptingFile, FileToEncrypt, EncyptedFile, FileToEncrypt.Size);
  Rc4Done(EncryptingFile);
end;
Ich werde auch nicht ganz schlau aus dem Verschlüsselungsalgorithmus, wird nur ein Zeichen von Source verschlüsselt oder die ganze Datei? Und die Datei mit oben genannter Funktion in einen String umzuwandeln wird auch nicht das wahre sein, dabei treten bestimmt Fehler auf...

Edit: Wir arbeiten an dem gleichen Problem, deshalb wird es wohl ok sein wenn wir im gleichen Thread schreiben.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 20:52
Zum Thema Datei verschlüsseln:
http://www.delphi-forum.de/viewtopic...=563921#563921
Da wurde gerade vor ein paar Minuten eine entsprechende Unit gepostet, die direkt mit Streams arbeitet.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#4

Re: RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 21:19
Danke bei mir funktioniert es jetzt.

Richtig toll dass ihr immer helft


Edit: Sorry, beim decrypten nen kleiner Fehler :

Delphi-Quellcode:
  RC4Init(MyContext, ProgramKey);
  RC4Code(MyContext, ProgramCode, ProgramOrginalCode, Length(ProgramCode));
  RC4Done(MyContext);
Code:
  [DCC Fehler] Project1.dpr(23): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Marc S.
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#5

Re: RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 22:18
oder kann es daran liegen dass ich versuche es mit ExeMod als String reinzuschreiben?

Wäre es klüger "Add2Exe" oder so zu benutzen? also kein String sondern das File?
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 23:01
Für Dateien siehe dieses Beispiel:
http://www.delphi-forum.de/viewtopic...=563952#563952

Und wie meinst du das zuletzt? An die Exe anhängen?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#7

Re: RC4 Verschlüsslung für Delphi

  Alt 27. Mai 2009, 00:33
ok habs rausgefunden.

Nur noch ein Problem :

Exemod!
Ich möchte die Daten anhängen,
und das funktioniert auch recht gut,
nur wenn ich AddFile2Exe mache, dann fügt er sie zu dem jetztigen hinzu.
D.H. Er modifiziert nicht file b, sondern file a.

Leider habe ich aber auch keinen einfluss darauf, welches File genommen wird.

Ich habe versucht ReadExe nen parameter zu verpassen, aber das gibt das totale chaos
DH gibt es ne Möglichkeit ReadExe und AlterExe auf eine Andere Datei anzupassen als Application.Exename

Oder Stream2Exe, dies modifiziert nur wieder sich selbst.

Das möchte ich aber nicht.
Marc S.
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#8

Re: RC4 Verschlüsslung für Delphi

  Alt 27. Mai 2009, 09:51
ohje wenn ich jetzt lese was ich da gestern noch zusammengeschrieben hab ^^:

Also das Problem ist das folgende, dass ExeMod manche Methoden nur auf sich selbst (also die Anwendung die gerade läuft), ausführt.

Diese heißen dann immer "XXXXXXX2Exe", bsp. "AddFile2Exe", so nun wollte ich aber sowas wie "AddFile2File",da ich dort angeben kann,
in welche Datei das rein soll. Technisch dürfte das kein Problem sein, denn wenn man strings in andere exen schreiben kann warum nich dateien?

Dann habe ich noch gesehen es gibt ein "Stream2Exe", das wäre mir am liebsten, wenn ich damit "fremde" Dateien modifizieren könnte
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: RC4 Verschlüsslung für Delphi

  Alt 27. Mai 2009, 11:36
Nimm doch einfach zwei FileStreams und kopiere es selbst (zusammen mit anderen Daten ggf.) rein (CopyFrom), bei einer fremden Exe ist das doch sowieso kein Problem.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#10

Re: RC4 Verschlüsslung für Delphi

  Alt 27. Mai 2009, 11:39
naja ich hätte schon gerne den ExeMod weil ich es damit wieder gut auslesen kann
Marc S.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.
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