Einzelnen Beitrag anzeigen

endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

TResourceStream ver/entschlüsseln

  Alt 4. Mai 2007, 10:17
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
  Mit Zitat antworten Zitat