
Работает на xp (все версии sp2 sp3)
ps: shellcode/shellcode.asm — это исходный код шеллкода для ядра. После компиляции и преобразования в бинарный файл он становится файлом rdesktop-1.5.0\cf517d077e9c152120787eb6b251615b. При сборке make он компилируется прямо в программу.
В настоящее время поддерживается только XP, требуется память XP >= 2 ГБ
Если требуется поддержка 2003, необходимо изменить макрос HEAP_SPRAY_ADDRESS в heap_spray.c. После многократного тестирования выяснилось, что этот адрес различается в разных версиях 03 и при разном объёме памяти. Однако при тестировании на собственной машине эксплуатация на 03 успешна. Универсальности нет.
heap_spray.c
#ifdef _2003
#define HEAP_SPRAY_ADDRESS 0x953b09c0 // Необходимо самостоятельно отладить адрес шеллкода в windbg. Если кто-то найдёт универсальное решение, присылайте issues.
#define IcaChannelInputInternal_RET_OFFSET 0x268
#else
#define IcaChannelInputInternal_RET_OFFSET 0x274
#define HEAP_SPRAY_ADDRESS 0x88c969c0
#endif
Тестирование 03
