win-exec-calc-shellcode
calc.exe を実行する小さな NUL フリーのシェルコードです。
x86 および x64 版の Windows 5.0〜6.3 (2000、XP、2003、2008、7、8、8.1) の全サービスパックで動作します。
サイズ (build 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 コードで
使用できます (
cdecl/stdcall/fastcall 呼び出し規約を使用。
クレジット
Skylined と Peter Ferrie