Autor Beitrag
moddin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Mo 19.02.07 17:46 
hiho alle zusammen

wollte in mein ultrakrasses netzwerkprogramm eine transparente verschlüsselung einbauen
hierzu eignet sich die RC4 Verschlüsselung hervorragend

ich hab jetzt die verschlüsselung so eingebaut aber das funktioniert nicht
hat jemand ahung was da falsch ist?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function mysend(s: dword; var Buf; len, flags: Integer): Integer; stdcall;
begin
  RC4Code(globalrc4,buf,buf,len);
  result := nextSend(s,buf,len,flags);
end;

function mysendto(s: dword; var Buf; len, flags: Integer; var addrto: dword;
  tolen: Integer): Integer; stdcall;
begin
  RC4Code(globalrc4,buf,buf,len);
  result := nextSendTo(s,buf,len,flags,addrto,tolen);
end;


Moderiert von user profile iconraziel: Quote- durch Delphi-Tags ersetzt

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 19.02.07 18:36 
Muss das nicht noch entschlüsselt werden? :wink:
(Oder haste das nur weggelassen?)

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Di 20.02.07 00:13 
kk

hier das ganze nochmal vereinfacht/edler

also die kommunikation funktioniert

aber

die verschlüsselung funktioniert, aber die daten werden nicht wieder entschlüsselt


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
procedure Encrypt(var Source;len:integer);
var p:pointer; globalrc4:trc4context;
begin
  GetMem(p,len);
  RC4Init(GlobalRC4,'Test');
  Rc4Code(globalrc4,Source,p^,len);
  RC4Done(GlobalRc4);
  Move(p^,Source,len);
  Freemem(p,len);
end;

//========================================================||
// Local WinSock H00k \\==================================||
function myrecvfrom(s: dword; var Buf; len, flags: Integer;
                      var from: dword; var fromlen: Integer): Integer; stdcall;
begin
  Encrypt(Buf,len);
  result := nextrecvfrom(s,buf,len,flags,from,fromlen);
end;

function myrecv(s: dword; var Buf; len, flags: Integer): Integer; stdcall;
begin
  Encrypt(Buf,len);
  result := nextrecv(s,buf,len,flags);
end;

function mysend(s: dword; var Buf; len, flags: Integer): Integer; stdcall;
begin
 Encrypt(Buf,len);
  result := nextSend(s,buf,len,flags);
end;

function mysendto(s: dword; var Buf; len, flags: Integer; var addrto: dword;
  tolen: Integer): Integer; stdcall;
begin
  Encrypt(Buf,len);
  result := nextSendTo(s,buf,len,flags,addrto,tolen);
end;

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
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 20.02.07 00:21 
Moin!

Ist RC4 nicht positions-kontextsensitiv? :gruebel: Kannst du denn sicherstellen, dass deine Hooks die Daten immer in exakt der gleichen Reihenfolge durch den RC4-Filter laufen lassen? Nur dann kannst du die Daten nämlich wieder korrekt entschlüsseln.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Di 20.02.07 01:13 
Zitat:
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!


LOL, das hört sich nach der Metro in Caracas an, Klimaanlage funktioniert nur, wenns draussen auch kalt ist und wer es nicht schafft, bauch und Hintern gleichzeitig einzuziehen, hat eh keine Chance mitgenommen zu werden :D

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Di 20.02.07 19:07 
user profile iconNarses hat folgendes geschrieben:
Moin!

Ist RC4 nicht positions-kontextsensitiv? :gruebel: Kannst du denn sicherstellen, dass deine Hooks die Daten immer in exakt der gleichen Reihenfolge durch den RC4-Filter laufen lassen? Nur dann kannst du die Daten nämlich wieder korrekt entschlüsseln.

cu
Narses


daran hab ich auch schon gedacht und ein paar tests gemacht (alle hooks werden aufgerufen)

also mit rc4 kann auch einzelne teile eines strings/daten entschlüsseln
zb in 2 teile teilen und beide einzeln entschlüsseln

zudem, wenn man den text auf serverseite ganz billig
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
begin
s := Socket.ReceiveText;
Encrypt(pchar(s)^,length(s));
Edit2.Text := s;
end;


(ohne hook-entschlüsseln) richtig entschlüsseln

[DEBUG]
affenhausF / /// edit1.text
+-,So? //send hook
+-,So? //yreive hiook
affenhaut //edit2.text
[/DEBUG] lol affenhaus wird zu affenhaus - not bad imho - man beachte das alle strings nur in HTML gleich aussehene

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
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 20.02.07 19:44 
Moin!

user profile iconmoddin hat folgendes geschrieben:
daran hab ich auch schon gedacht und ein paar tests gemacht (alle hooks werden aufgerufen)

Es geht nicht darum, ob sie aufgerufen werden, sondern wann und mit welchem RC4-Kontext! :mahn: ;)

Lass doch mal RC4 weg und mach nur ein xor $AA oder sowas, und dann schau mal, ob das klappt. Wenn es damit klappt, dann liegt es an einem Fehler in der Anwendung von RC4! :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Mi 21.02.07 00:39 
nope es liegt anscheinend nicht an RC4 oder ich bin zu dumm das richtig
zu implementiern :P (was natürlich nicht sein KANN ^^ )

egal

ich verwende jetzt diese simple routine

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure Encrypt(var Source;len:integer);
type tarray = array[0..0of byte;
     pArray=^TArray;
var p:pointer; x:integer;
begin
  GetMem(p,len); Move(Source,p^,len);
  Form1.Memo.Lines.Add(pchar(p));
  FreeMem(p,len);
  // ===== ENCRYPTION ====
  for x := 0 to len-1 do // muss das nicht eigentlich bis zu len hochzählen???
    begin
      pArray(@Source)^[x] := pArray(@Source)^[x] XOR 5;
    end;
  // =====================
  GetMem(p,len); Move(Source,p^,len);
  Form1.Memo.Lines.Add(pchar(p));
  FreeMem(p,len);
end;


das ergebniss ist immer noch dasselbe -

affenhaus // MySend - davor
dcc`kmdpv // MySend - danach
dcc`kmdp // MyReceive - davor
affenhau // MyReceive - danach

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 24.02.07 14:57 
Moin!

user profile iconmoddin hat folgendes geschrieben:
das ergebniss ist immer noch dasselbe
ausblenden Quelltext
1:
2:
3:
4:
affenhaus // MySend - davor
dcc`kmdpv // MySend - danach
dcc`kmdp  // MyReceive - davor
affenhau  // MyReceive - danach

Scheint, als hättest du beim Senden oder Empfangen ein Bereichsproblem... ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.