win-exec-calc-shellcode
calc.exe를 실행하는 작은 NUL-free 셸코드입니다.
Windows 5.0-6.3(2000, XP, 2003, 2008, 7, 8, 8.1)의 x86 및 x64 버전, 모든 서비스 팩에서 실행됩니다.
크기 (빌드 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