win-exec-calc-shellcode
Небольшой shellcode без NUL-байтов, запускающий calc.exe.
Работает на x86 и x64 версиях Windows 5.0-6.3 (2000, XP, 2003, 2008, 7, 8, 8.1), во всех пакетах обновления.
Размеры (сборка 306)
| платформа |
размер |
выравнивание стека |
обёртка функции |
функция+сохр. рег. |
функция+стек |
функция+стек+рег. |
| x86 |
72 |
75 |
77 |
77 |
84 |
84 |
| x64 |
85 |
90 |
98 |
105 |
106 |
112 |
| x86+x64 |
113 |
118 |
179 |
188 |
188 |
196 |
Возможности
- Без NUL-байтов
- Не зависит от версии Windows и пакета обновления.
- Независимость от ISA:
работает на архитектуре x86 (w32-exec-calc-shellcode) или x64 (w64-exec-calc-shellcode),
или на обеих (win-exec-calc-shellcode).
- Указатель стека может быть выровнен при необходимости (если вы
наблюдаете сбои в WinExec, попробуйте использовать версию с выравниванием стека).
- Не делается никаких предположений о значениях в регистрах или в стеке.
- x86: /3GB и
WoW64" совместимость (не
предполагается, что указатели меньше 0x80000000).
- DEP /
ASLR
совместимость: данные не исполняются, код не изменяется.
- Может сохранять и восстанавливать регистры и возвращать управление, для использования в PoC-коде, который вызывает
shellcode как функцию (с использованием
cdecl/stdcall/fastcall соглашения о вызове.
Авторы
Skylined и Питер Ферри