![]() |
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 |
Re: Alle Resourcen aus fremder EXE richtig entfernen
*push*
|
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; |
Re: Alle Resourcen aus fremder EXE richtig entfernen
Ah vielen Dank, das geht wunderbar! :thumb:
|
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 ..
|
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.
![]() |
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. |
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. |
Re: Alle Resourcen aus fremder EXE richtig entfernen
Zitat:
|
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. |
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