Juuuhu =)
ich bin grad auf der suche nach einer möglichkeit
binärdaten in einem TResourceStream zu ver/entschlüsseln.
bisher leider ohne großen erfolg. mit folgenden beiden
methoden füge ich resource daten in eine exe datei hinzu
bzw extrahiere sie wieder. irgendwie müßte ich da nun
noch eine ver/entschlüsselung einbauen, nur wie?
Delphi-Quellcode:
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
Res: TResourceStream;
begin
Result := False;
if FindResource(hInstance, PChar(Resname), RT_RCDATA) <> 0 then
begin
Res := TResourceStream.Create(hInstance, Resname, RT_RCDATA);
try
Res.SavetoFile(ResNewName);
Result := True;
finally
Res.Free;
end;
end;
end;
function AddRes(SourceFile, Location: String): Boolean;
var
FS: TFileStream; ResourceHandle: THandle;
DataLength: DWord; Data: PBuffer; Ok: Boolean;
begin
Result:= False;
ResourceHandle := BeginUpdateResource(pChar('Setup.exe'), False);
if (ResourceHandle <> 0) then
begin
FS := TFileStream.Create(SourceFile, fmOpenRead);
FS.Seek(0, soFromBeginning);
DataLength := FS.Size;
GetMem(Data, DataLength);
FS.Read(Data^, DataLength);
FS.Free;
Ok := True;
if (not UpdateResource(ResourceHandle, RT_RCDATA, pChar(Location), LANG_NEUTRAL {MakeLangID(LANG_NEUTRAL, SUBLANG_NEUTRAL)}, Data, DataLength)) then Ok := False;
if (not EndUpdateResource(ResourceHandle, False)) then Ok := False;
if (Ok) then Result:= True;
FreeMem(Data);
end;
end;
ich hab schonmal ein wenig nach möglichkeiten gesucht
einen stream zu verschlüssen aber hinbekommen hab ich es
bisher leider nicht. die verschlüsselung an sich
muß auch nicht sehr sicher sein, es geht nur darum
das niemand mit einem reshacker an brauchbare daten kommt.
mfg