win-exec-calc-shellcode
可执行 calc.exe 的小型无 NUL 字节 shellcode。
可在 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
兼容:数据不会被执行,代码不会被修改。
- 能够保存和恢复寄存器及返回地址,适用于将 shellcode 作为函数调用的 PoC 代码
(使用
cdecl/stdcall/fastcall 调用约定。
致谢
Skylined 和 Peter Ferrie