Hola estaba viendo una pequeña función por internet que me permite borrar la cabecera, el fichero.cpp es:
VOID ErasePEHeaderFromMemory()
{
_tprintf(_T("[*] Erasing PE header from memory\n"));
DWORD OldProtect = 0;
// Get base address of module
char *pBaseAddr = (char*)GetModuleHandle(NULL);
// Change memory protection
VirtualProtect(pBaseAddr, 4096, // Assume x86 page size
PAGE_READWRITE, &OldProtect);
// Erase the header
SecureZeroMemory(pBaseAddr, 4096);
}
int main(){
// como puedo borrar mi cabecera en base a mi función
}
Y luego el fichero.h:
VOID ErasePEHeaderFromMemory();
Pero mi pregunta es como puedo aplicarlo a un ejemplo práctico. Supongo que tendré que obtener el base address de mi ejecutable y después usarlo en mi funcion?? Alguna sugerencia??
No te limites a coger codigo y ejecutarlo tal cual, por lo que veo sabes poco del tema, te recomiendo que primero aprendas: https://www.youtube.com/playlist?list=PLUFkSN0XLZ-n_Na6jwqopTt1Ki57vMIc3
Cita de: Ragaza en 26 Mayo 2017, 01:35 AM
Pero mi pregunta es como puedo aplicarlo a un ejemplo práctico. Supongo que tendré que obtener el base address de mi ejecutable y después usarlo en mi funcion?? Alguna sugerencia??
El código ya encuentra el inicio del ejecutable (con GetModuleHandle). Sólo tienes que llamar la función.
Saludos!
Cita de: MCKSys Argentina en 26 Mayo 2017, 01:55 AM
El código ya encuentra el inicio del ejecutable (con GetModuleHandle). Sólo tienes que llamar la función.
Saludos!
Ups se me paso tienes razón..
Citar
No te limites a coger codigo y ejecutarlo tal cual, por lo que veo sabes poco del tema, te recomiendo que primero aprendas: https://www.youtube.com/playlist?list=PLUFkSN0XLZ-n_Na6jwqopTt1Ki57vMIc3
Gracias intentaré entenderlo.