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

Pliki .exe, jak się dokopać do zasobów?
Demonical Monk
  • Rejestracja: dni
  • Ostatnio: dni
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.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

Demonical Monk
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Demonical Monk
  • Rejestracja: dni
  • Ostatnio: dni
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.

deus
  • Rejestracja: dni
  • Ostatnio: dni
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...

OT
  • Rejestracja: dni
  • Ostatnio: dni
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...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.