Witam, piszę wirusa infekującego pliki PE i mam w fragmencie podmieniającym AddressOfEntryPoint napisane coś takiego:
// DWORD entry_p; <- tu mam wartość nowego EntryPoint
// char *base; <- tu jest zmapowany plik PE
base[mz->mz_peoffset+0x28] = entry_p;
base[mz->mz_peoffset+0x28+1] = entry_p/0x100;
base[mz->mz_peoffset+0x28+2] = entry_p/0x10000;
base[mz->mz_peoffset+0x28+3] = entry_p/0x1000000;
to działa, ale chciałbym wiedzieć jak napisać to poprawnie, co się stosuje jak chcemy wpisać do adresu DWORD? Jak to napisać w jednej linijce? Znajomy powiedział mi, żebym zrobił coś takiego:
char *tmp;
tmp = (void *)base;
i do tmp wpisać tego DWORD ale nie wiem jak do tego podejść.
tmp[mz->mz_peoffset+0x28] = entry_p;
?
Byłbym wdzięczny za pomoc.