Jak napisać program, który edytuje zasoby w jakimś pliku EXE?

Jak napisać program, który edytuje zasoby w jakimś pliku EXE?
autorem artykułu jest Damian Daszkiewicz

W swojej książce Vademecum Hakera. Edycja plików binarnych dość dokładnie opisałem program Resource Hacker. Program ten potrafi edytować zasoby w pliku EXE (np. można podmieniać ikony, bitmapy, napisy itp.). Niektórzy chcieliby napisać własny program podobny do programu Resource Hacker. Inni z kolei chcieliby napisać pseudo kompilator, który by generował plik EXE (skompilowany wcześniej w jakimś znanym nam języku programowania) z dodanym do tego pliku EXE jakimś kodem. Tak działają różne programy konwertujące np. pliki MP3 do plików EXE które mają za zadanie odtwarzać muzykę. Pewnym problemem jest właśnie podmiana zasobu w dowolnym pliku wykonywalnym.

Sam dość długo poszukiwałem rozwiązania tego problemu. A problem jest ciekawy gdyż windowsy z linii NT (tj. XP/200x/NT) posiadają w pliku kernel32.dll odpowiednie funkcje API które wykonują czarną robotę. Natomiast windowsy z linii 9x (95/98/ME) posiadają uboższą wersję pliku kernel32.dll bez owych funkcji API. Na stronie microsoftu znalazłem bibliotekę unicows.dll która zawiera owe funkcje API, ale nie działa ona pod windowsami z lini NT. Dlatego należy stworzyć dla identyczne programy różniące się jedynie deklaracjami funkcji API dla dwóch różnych rodzajów systemów operacyjnych windows. W załączonym programie skorzystałem z kompilacji warunkowej (zmieniając jedną stałą jest tworzony plik dla odpowiedniej wersji systemu operacyjnego). Oczywiście należałoby w owym programie dać jakiś mechanizm kontroli który sprawdzałby czy pod windowsem XP nie został odpalony program w wersji dla Windowsa 9x, ale nie chciałem zaciemniać kodu.

Pobierz przykładowy program napisany w Microsoft Visual Basic 6.0 (120 KB)

W archiwum są dwa programy. Pierwszy (EdytowanyPlik.exe) ma za zadanie wyświetlić zasób o numerze 101 który jest w tym pliku (w programie Resource Hacker znajdziesz ten zasób w gałęzi CUSTOM). Drugi program (EdytorZasobow.exe) prosi użytkownika i wpisanie jakiegoś tekstu i ten tekst wkompilowuje w plik EdytowanyPlik.exe.

--
Autorem artykułu jest Damian Daszkiewicz

Artykuł pochodzi z serwisu www.Artelis.pl
 

Damian Daszkiewicz - książki & ebooki

 
programowanie, internet, komputery, C++, PHP Damian Daszkiewicz
PHP dla zielonych. rawdopodobnie najbardziej przystępny kurs PHP w internecie.
 
 

Najnowsze wpisy premium

  • Udane wakacje

    Przygotowanie do wakacji nie jest wcale trudne. Przede wszystkim musimy wiedzieć po co wybieramy się na urlop...

  • Zarządzanie własnym czasem

    Czas to pieniądz. Ale co zrobić, by odpowiednio nim zarządzać?

Zobacz wszystkie wpisy.

Dodaj wpis »

Odwiedzający tę stronę szukali: vademecum hakera. edycja plików binarnych kup teraz, vademecum hakera edycja plików binarnych ebook.