Ach ich glaube ich lasse es jetzt auch sein und belasse es beim Hash am Ende der Datei.
Nur damit ihr wisst wo ich dran bin:
Mein RawByteString: _TESTTESTTEST_1234AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5678_TESTTESTTEST_
Mein Code
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
aByteStream, aByteStream2: TBytesStream;
iPosRawByte: Int64;
sHash: string;
begin
aByteStream := TBytesStream.Create;
try
aByteStream.LoadFromFile(aFileName);
iPosRawByte := Pos(RawByteString(a), RawByteString(aByteStream.Bytes));
if iPosRawByte > 0 then
begin
iPosRawByte := iPosRawByte + 4;
aByteStream2 := TBytesStream.Create;
try
aByteStream2.Write(aByteStream.Bytes[0], iPosRawByte - 1);
aByteStream2.Write(aByteStream.Bytes[iPosRawByte + Length(a) - 9], aByteStream.Size - (iPosRawByte + (Length(a) - 9)));
ShowMessage('"' + Trim(TEncoding.ANSI.GetString(aByteStream2.Bytes)) + '"');
sHash := System.hash.THashSHA2.GetHashString(Trim(TEncoding.ANSI.GetString(aByteStream2.Bytes)));
Move(AnsiString(sHash)[1], aByteStream.Bytes[iPosRawByte - 1], Length(a) - 8);
aByteStream.SaveToFile(aFileName);
finally
aByteStream2.Free;
end;
end;
finally
aByteStream.Free;
end;
end;
// Das mit dem -8 und -9 ist einfach nur rumexperimentiere da ich keine Ahnung hab wie es richtig geht.
In der Datei kommt an:
Zitat:
_TESTTESTTEST_12340e9b25c3947ef8f165223ac1ab447011cbf6196533678552da 4d19447552cbd5678_TESTTESTTEST_
Am Ende des Hashs steht
cbd, korrekt wäre aber
cbd1.