Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Alle Resourcen aus fremder EXE richtig entfernen (https://www.delphipraxis.net/84927-alle-resourcen-aus-fremder-exe-richtig-entfernen.html)

Zacherl 23. Jan 2007 17:33


Alle Resourcen aus fremder EXE richtig entfernen
 
Hi,

wie kann ich alle Resourcen eiener fremden EXE Datei entfernen? Mittels BeginUpdateResource(Filename, true) geht dies zwar, allerdings ist die Datei noch genau so groß wie vorher, wenn auch die Resourcen nicht mehr da sind.

Kann man irgendwie die komplette Resourcen Section entfernen oder sowas?

Florian

Zacherl 25. Jan 2007 06:20

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
*push*

ErazerZ 25. Jan 2007 15:29

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Downloade dir madshi's madRes herunter (ist OpenSource) und dann benutze folgendenen Code um eine Resource aus der Anwendung zu löschen.
Delphi-Quellcode:
var
  hUpdate: THandle;
begin

  hUpdate := madres.BeginUpdateResourceW(PWideChar(WideString(sFilename)), False);
  if hUpdate <> INVALID_HANDLE_VALUE then
  begin
    madres.UpdateResourceW(hUpdate, 'TYP', 'NAME', 0, nil, 0);
    madres.EndUpdateResourceW(hUpdate, False);
   end;

Zacherl 25. Jan 2007 15:43

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Ah vielen Dank, das geht wunderbar! :thumb:

Zacherl 25. Jan 2007 16:43

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Mh wie mache ich es, dass alle Resourcen einer Datei entfernt werden. Ich liste die auf mit EnumResourceNames. Allerdings wird dort ein PChar Wert übergeben und kein PWideChar. Zudem kann der PChar ein Pointer auf einen Integer aber auch auf einen String Wert sein ..

ErazerZ 25. Jan 2007 17:28

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
schaue dir das Beispiel weiter unten an, das habe ich einmal gemacht um alle Icons zu extrahieren, hat auch mit Namen und Nummern funktioniert, sollte nicht schwer sein das umzuschreiben.
http://www.delphipraxis.net/internal...=411613#411613

Olli 25. Jan 2007 17:46

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Florian, um sie zu entfernen, musst du selbstverfreilich die PE-Datei selber modifizieren. Lies dich dazu in den entsprechenden Dokus von MS und Luevelsmeyer erstmal schlau. Danach musst du entscheiden, ob du die Ressourcen nur ausnullen oder wirklich entfernen willst (letzteres ist zu empfehlen). Was unter Umstaenden bedeutet, dass du Sektionen der PE verschieben und RVAs anpassen musst usw. Alles in allem absolut nicht trivial.

Die entsprechenden "Update"-Funktionen existieren nur fuer NT und, soweit ich mich entsinne, erlauben auch nur das ausnullen, wenn man Ressourcen entfernen will.

Zacherl 25. Jan 2007 19:49

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Ah mist .. ist wohl zu kompliziert, dafür, dass ich das ohne Beispielcode hinbekommen würde .. und die Update Funktionen tun wirklich nur ausnullen.

Die aus der madRes bekommen es sogar hin, dass einige z.B. RCDATA richtig entfernt werden, aber auch nciht alle.

@ErazerZ: So mach ichs auch, nur will mein Code nicht recht, warum weiß ich leider auch nicht.

Olli 25. Jan 2007 19:52

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Zitat:

Zitat von Florian Bernd
Ah mist .. ist wohl zu kompliziert, dafür, dass ich das ohne Beispielcode hinbekommen würde .. und die Update Funktionen tun wirklich nur ausnullen.

C'mon, du willst mir doch nicht erzaehlen, dass du deswegen aufgibst? Immerhin wuerdest du mit dieser Einstellung nie weiterkommen, denn es gibt noch vieles zu entdecken ...

Zacherl 25. Jan 2007 20:03

Re: Alle Resourcen aus fremder EXE richtig entfernen
 
Aufgeben nicht, nein .. allerdings habe ich z.B. einen Beispielcode gefunden, wie man die .reloc Section entfernen kann. Allerdings scheint dies recht kompliziert, zumal es zu Fehlern im Programm kommt, wenn man einfach die .rsrc Section komplett tilgt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz