Pliki .exe, jak się dokopać do zasobów?

0

Witajcie!
Podjąłem się dziwnego zadania, w ramach mojego projektu muszę napisać klasę (w PHP), która byłaby w stanie dokopać się do zasobu zawierającego ikonkę w .exe i ją podmienić na inną o mniejszym lub większym rozmiarze. I teraz pytanie za sto punktów: Jak to zrobić? Jak znaleźć offset na którym jest zasób i jak go podmienić unikając korupcji pliku?

Z góry dzięki za pomoc.

0

A cóż to ma wspólnego z inżynierią oprogramowania?
Wracając do pytania, był taki programik ResHacker, możesz poszukać na jakiejs stronie domowej tego projektu jak tam to robili.

0

W sumie dotyczy to budowy .exe, nie wiedziałem zbytnio dzie to wrzucić. Jak dział nie pasuje, to przerzućcie do algorytmów.

0
koniaku napisał(a)

Witam

<url>http://www.fileformat.info/format/exe/corion-mz.htm </url>
<url> http://www.computerfileextensions.com/file-extensions.php/EXE</url>

                                                                   Pozdrawiam

                                                                              JK

I w czym mi to pomoże podczas edycji aplikacji przeznaczonej na win32? Pierwszy link to specyfikacja MZ EXE, a drugi strona z reklamami nie zawierająca żadnych konkretów.

1

Microsoft Portable Executable and Common Object File Format Specification - specyfikacja wszystkich potrzebnych rzeczy. Dodatkowo przydałoby się ściągnąć powiedzmy Microsoft Windows SDK (lub nieco wcześniejszy pakiet Platform SDK) żeby mieć typowe definicje struktur i typów w C, zamiast tabelek ze specyfikacji.

Położenie katalogu zasobów odczytasz z IMAGE_NT_HEADERS, wcześniej musisz sobie leżące za tą strukturą nagłówki sekcji sparsować żeby poprawnie RVA na offsety w pliku przeliczać. Jeżeli ikona jest mniejsza to wystarczy ją nadpisać i skorygować rozmiar tego konkretnego zasobu. Jeżeli ikona ma być większa to wypadałoby poszukać wolnego miejsca (a raczej nie będzie) lub powiększyć ostatnią sekcję (ale z tym ostrożnie). W ostateczności pozostaje dodanie własnej sekcji...

0

Nie łatwiej napisać program korzystający z funkcji winapi operujących na zasobach i tylko uruchamiać go tylko z odpowiednimi parametrami z poziomu php? No chyba że serwer na linuksie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1