Entwickler-Ecke
Sonstiges (Delphi) - Was macht Result?
spoof - So 10.11.13 01:11
Titel: Was macht Result?
Ich hab eine Frage, wo man denken könnte google doch oder wie auch immer was ich auch gemacht hab aber ich versteh es einfach nicht.
Was macht dieses Tag Result? Ich hab es nun schon öfters gesehen aber versteh es nicht. Es wird niergends deklariert sondern einfach benutzt, was kann dieses Result und wo setzt man es ein?
Delete - So 10.11.13 01:44
Result ist eine lokale Variable innerhalb jeder Funktion, die deren Endergebnis aufnimmt. Statt Result := ErrechneterWert; könntest auch schreiben MeineFunktion := Errechneter Wert;.
spoof - So 10.11.13 12:19
Hab ich das richtig verstanden, bei folgendem Code(Hardwareid):
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: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90:
| unit Unit1;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
function getHWID(): String; var SerialNum,A,B: DWord; C: array [0..255] of Char; Buffer: array [0..255] of Char; begin if GetVolumeInformation(pChar('C:\'), Buffer, 256, @SerialNum, A, B, C, 256) then Result := inttostr(SerialNum * Cardinal(-1)) else Result := ''; end;
function RC4(Expression, Password: string): string; var RB : array[0..255] of Integer; X, Y, Z: longint; Key : array of byte; ByteArray : array of byte; Temp: byte; Counter: integer;
begin If (Length(Expression) = 0) then Exit; If (Length(Password) = 0) then Exit; If (Length(Password) > 256) then Password := Copy(Password, 1, 256); SetLength(Key, Length(Password)); for Counter := 0 to Length(Password) - 1 do Key[Counter] := ord(Password[Counter + 1]); for X := 0 to 255 do RB[X] := X; X := 0; Y := 0; Z := 0; for X := 0 to 255 do begin Y := (Y + RB[X] + Key[X mod Length(Password)]) mod 256; Temp := RB[X]; RB[X] := RB[Y]; RB[Y] := Temp; end; X := 0; Y := 0; Z := 0; SetLength(ByteArray, Length(Expression)); for Counter := 0 to Length(Expression) - 1 do ByteArray[Counter] := ord(Expression[Counter + 1]); for X := 0 to Length(Expression) do begin Y := (Y + 1) mod 256; Z := (Z + RB[Y]) mod 256; Temp := RB[Y]; RB[Y] := RB[Z]; RB[Z] := Temp; ByteArray[X] := ByteArray[X] xor (RB[(RB[Y] + RB[Z]) mod 256]); end; for Counter := 0 to Length(Expression) - 1 do begin Result := Result + chr(ord(ByteArray[Counter])); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text:= getHWID; end;
end. |
Mit Button Click steht im Edit der Wert von getHwid, das Programm nimmt also das Result von getHwid. Erstmal stimmt das?
Dann, wo springt das Programm in den RC4 Code? Denn durch das Edit wird doch das getHWID ausgelesen aber ich seh im getHWID nicht dass er in RC4 springt wie macht das tool das?
spoof - So 10.11.13 13:50
Die Sache is die, das is der Gesamte Code xD
Deswegen wunder ich mich ja wo die Function RC4 benutzt wird :D
Aber wenn ich jetz anstelle von getHWID, RC4 anspreche beim Button, dann schreibt er mir:
Nicht genügend wirckliche Parameter.
Was meint er damit?
Ich sollte dazusagen dass das ein copypasted Hardwareid code ist, also ich versuche den atm erstmal zu verstehen, ich dachte die Fuction RC4 wäre für die Verschlüsselung zuständig.
Edit: Ok es liegt glaub ich an
function RC4(Expression, Password: string): string;
an Expression, Password: string
Die 2 variablen müssen wohl erstmal verwendet werden bevor sie in der function bearbeitet werden können wenn ich das richtig sehe.
Mathematiker - So 10.11.13 14:10
Hallo,
eigentlich wollte ich mich nicht äußern, da ich keine Lust habe, mich durch Deine katastrophale Rechtschreibung und Ausdrucksweise zu quälen, aber na ja ...
spoof hat folgendes geschrieben : |
Die Sache is die, das is der Gesamte Code xD |
Dann ist der Code unvollständig. Entweder Du suchst noch einmal die Originalquelle oder Du kannst es nicht nutzen.
spoof hat folgendes geschrieben : |
Aber wenn ich jetz anstelle von getHWID, RC4 anspreche beim Button, dann schreibt er mir:
Nicht genügend wirckliche Parameter. |
Das ist logisch. getHWID verlangt keine Parameterübergabe, die RC4-Prozedur
Delphi-Quelltext
1:
| function RC4(Expression, Password: string): string; |
aber zwei Strings, nämlich Expression und Password.
Es tut mir leid, Dir das sagen zu müssen, aber so wirst Du kaum etwas lernen. Dir fehlen die absoluten Grundlagen zur Verwendung von Prozeduren usw.
Arbeite Dich erst einmal durch die von
Perlsau angegebenen Tutorials durch. Hier in der EE bekommst Du natürlich auch Hilfe, aber es wäre wirklich schön, wenn Du Dir erst einmal die Grundlagen erarbeitest.
Beste Grüße
Mathematiker
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!