Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Ich bekomme jetzt zwar eine Ausgabe aber die sieht in etwa so aus
¶•tø–ÙØçèØ¡ŠœÀ!xéâ¬*†W³`Y´ÞÎüX™©é¾NÞ–ˆÕ*ºµàrC¶'bJTEÂ
usw.
Das Ur-alt-Originalprogramm ist übrigens in Delphi geschrieben. Dummerweise wurde das Repo gelöscht!
Die Exe habe ich noch.
Eine sekunde bitte ich muss mir gerade die Edits durchlesen.
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Res: TBytes;
Hier mal alles
Kann das vielleicht daran liegen, weil ich Res auf Länge 4096 setze? Ich hab das einfach mal so groß gesetzt weil ich nicht weiß wieviel da rein muss.
procedure TFormMain.Button4Click(Sender: TObject);
const
keyBytes: array of Byte = ($2A, $5F, $CB, $17, $91, 210, $2F, $B6, 2, $45, $B3, $D8, $36, $9E, $D0, $B2, $C2, $73, $71, $56, $3F, $BF, $1F, 60, $9E,...
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Entweder bin ich zu dumm dafür oder Delphi kann das nichtm (was ich nicht glaube).
AES_CBC_Init_Decr(keyBytes, 128, aesblck, ctx);
SetLength(Res, 4096); // irgendeine große Nummer weil ich keine Ahnung habe wie groß das Ergebnis sein soll?
AES_CBC_Decrypt(@EncryptedData, @Res, length(EncryptedData), ctx);
Ergebnis in einen TBytesStream schreiben, der dann von TZDecompressionStream...
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Das muss man scheinbar. Wenn wenn ich den IV im Context nicht setze, dann ist der übergebene Context leer.
for i := 1 to 16 do
aesblck := Byte(initVector);
ctx.IV := aesblck;
AES_CBC_Init_Decr(initVector, 128, aesblck, ctx);
AES_CBC_Decrypt(@EncryptedData, @Res, Length(EncryptedData), ctx);
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Der AESContext ist folgendermaßen deklariert
TAESContext = packed record
RK : TKeyArray; {Key (encr. or decr.) }
IV : TAESBlock; {IV or CTR }
buf : TAESBlock; {Work buffer }
bLen : word; {Bytes used in buf }
Rounds : word; {Number of...
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Aufbauend auf beider eurer Beispiel habe ich das hier erweitert.
var
ctx: TAESContext;
aesblck: TAESBlock;
i: Integer;
Res: RawByteString;
begin
// Das ist scheinbar notwendig ( https://www.delphipraxis.net/1208740-post21.html )
for i := 1 to 16 do
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Der Ehrlichkeit halber hier mal erbärmlicher Versuch von vorher. Mehr als da ist bei mir nicht drin
iv := MemoryStream.Read(iv^, 36, 16);
Nur damit ich das richtig verstehe. Ist der IV der Schlüssel zum Entschlüsseln?
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Ganz ehrlich? Schon bei Punkt 2 kann ich aussteigen :D
Forum: Programmieren allgemein
by DieDolly,
16. Jun 2019
Ich habe hier C# Code den ich gerne nach Delphi portieren möchte aber ich verstehe speziell die Array-Sachen nicht.
Könnt ihr mir helfen? Alles was unwichtig ist habe ich rausgenommen. Ist das in Delphi überhaupt möglich? Als Entschlüsselungsmechanik würde ich Wolfgang Erhardts Bibliothek nutzen.
byte bytes = LoadFileToMemory(file_to_load);
byte buffer = new byte;
byte keyBytes = new...