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...