
一个用于测试Windows和Linux shellcode的应用程序
ShellcodeTester 官方支持 Python 3.8+。
shellcodetester -asm file.asm
该命令将汇编 ASM 文件并编译为 ELF 二进制文件。
ShellcodeTester v0.2.0 by Helvio Junior (M4v3r1ck)
ShellcodeTester 是一款用于汇编、编译和测试 ASM shellcode 的工具。
https://github.com/helviojunior/shellcodetester
[+] 启动参数
命令行: shellcodetester -asm test_linux.asm
日志级别: NOTSET
转换格式: RAW
坏字符: 0x00
[+] 开始时间 2023-02-12 01:53:56
[+] 汇编 x86 文件 teste_linux.asm 至 /home/shellcodetester/st_test_linux.o
[+] 编译 x86 二进制至 /home/shellcodetester/st_test_linux.elf32
[+] 载荷大小: 65 字节
[+] RAW 数据最终大小: 160 字节
31c0b00431dbb301eb1259ba00000000b220cd8031c0b00131dbcd80e8e9ffffff4c616220303120636f6d706c657461646f20636f6d207375636573736f210a00
[+] 结束时间 2023-02-12 01:53:56
$ nasm_shell
┌─[NASM Shell]─[x86 linux]─[ASM → Hex]
└──╼➤ push eax
[+] 载荷大小: 1 字节
[+] RAW 数据最终大小: 2 字节
50
[+] 反汇编
0: 50 push eax
┌─[NASM Shell]─[x86 linux]─[ASM → Hex]
└──╼➤ push eax ; retn 4
[+] 载荷大小: 4 字节
[+] RAW 数据最终大小: 8 字节
50c20400
[+] 反汇编
0: 50 push eax
1: c2 04 00 ret 0x4
$ nasm_shell --mode dis
┌─[NASM Shell]─[x86 linux]─[Hex → ASM]
└──╼➤ 50ff501c
[+] 载荷大小: 4 字节
[+] RAW 数据最终大小: 8 字节
50ff501c
[+] 反汇编
0: 50 push eax
1: ff 50 1c call DWORD PTR [eax+0x1c]
$ nasm_shell --arch x86_64
┌─[NASM Shell]─[x86_64 linux]─[ASM → Hex]
└──╼➤ push rax
[+] 载荷大小: 1 字节
[+] RAW 数据最终大小: 2 字节
50
[+] 反汇编
0: 50 push rax
┌─[NASM Shell]─[x86_64 linux]─[ASM → Hex]
└──╼➤ push rax ; push rbx
[+] 载荷大小: 2 字节
[+] RAW 数据最终大小: 4 字节
5053
[+] 反汇编
0: 50 push rax
1: 53 push rbx
pip3 install --upgrade shellcodetester
$ shellcodetester -h
ShellcodeTester v0.X.X by Helvio Junior (M4v3r1ck)
ShellcodeTester 是一款用于汇编、编译和测试 ASM shellcode 的工具。
https://github.com/helviojunior/shellcodetester
选项:
-h, --help 显示此帮助信息并退出
常规设置:
-asm [ASM 文件名] 要汇编的 ASM 文件
-o [输出文件] 将输出保存到磁盘(默认:无)
自定义设置:
--break-point 在 shellcode 之前设置软件断点 (INT3)(默认:false)
--bad-chars [坏字符列表] 要高亮的坏字符列表(例如:\x00\x0a,默认:\x00)
--remove 从最终二进制可执行文件(EXE、ELF 和 Mach-O)中移除坏字符(默认:false)
--cave-size [大小] 代码洞大小(默认:1024)
--fill-with-nop 用 NOP 填充整个页面(默认:false)
--list 列出所有支持的输出格式
-f [格式], --format [格式] 输出格式(使用 --list 格式列出)
-v, --verbose 显示更多选项(-h -v)。打印命令和输出。(默认:quiet)
$ nasm_shell -h
选项:
-h, --help 显示此帮助信息并退出
常规设置:
--mode [模式] 操作模式(默认:assembly,允许:assembly 和 disassembly)
--arch [架构] 要汇编/反汇编的架构(默认:x86,允许:x86_64 和 x86)
--platform [平台] 平台(允许:linux、windows 和 darwin)
自定义设置:
--bad-chars [坏字符列表] 要高亮的坏字符列表(例如:\x00\x0a,默认:\x00)
--list 列出所有支持的输出格式
-f [格式], --format [格式] 输出格式(使用 --list 格式列出)
-v, --verbose 显示更多选项(-h -v)。打印命令和输出。(默认:quiet)
-q, --quiet 安静模式,不显示横幅(默认:false)
请查看 Windows 用户专用说明