de obtener el kernel base(para hacer shellcodes) adaptandolas a tantas versiones de windows como sea posible,
ami me resultó y de hecho fue una ayuda para crear mis propias shellcodes, esta es mi versión de la fórmula
escrita en AT&T para C, espero en un futuro hablar de como conseguir el kernel base para hacer/editar shellcodes.
/*
Autor : NvK
Creditos : Corelancod3r & SkyLined : http://www.corelan.be || skypher.com
Descripción: Obtener el PEB
*/
long get_PEB(void)
{
long ptr_peb_base;
__asm(" \
xor %ecx, %ecx; \
mov %fs:0x30(%ecx), %esi; \
mov 0xc(%esi), %esi; \
mov 0x1c(%esi), %esi; \
next_module:; \
mov 0x8(%esi),%eax; \
mov 0x20(%esi),%edi; \
mov (%esi),%esi; \
cmp %cl, 0x12*2(%edi); \
jne next_module; \
");
register long *rg_peb_base __asm__("ebx");
ptr_peb_base= rg_peb_base;
return(*&ptr_peb_base);
}
Test:
printf("PEB: %p", get_PEB());