NASM 自动转义 .data 中初始化的 shellcode
NASM automatically escaping shellcode initialized in .data
我正在尝试编写一段汇编代码,它将对我在 .data
中初始化的一些 shell 代码执行操作
我的初始化如下:
section .data
shellcode: db "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80", 0
当我尝试将包含 shell 代码的数组加载到寄存器中时,它会自动转义,从而破坏了我的程序:
我组装链接如下:
nasm -f elf32 -g encryptor_assembly.asm -o encryptor_assembly.o
gcc -m32 -g encryptor_assembly.o -o encryptor_assembly
有没有办法避免这种情况的发生?谢谢你的帮助。
Nasm 仅解释用反引号分隔的字符串中的 C 样式转义序列。要修复您的代码,请将双引号替换为反引号,如下所示:
shellcode: db `\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80`, 0
我正在尝试编写一段汇编代码,它将对我在 .data
中初始化的一些 shell 代码执行操作我的初始化如下:
section .data
shellcode: db "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80", 0
当我尝试将包含 shell 代码的数组加载到寄存器中时,它会自动转义,从而破坏了我的程序:
我组装链接如下:
nasm -f elf32 -g encryptor_assembly.asm -o encryptor_assembly.o
gcc -m32 -g encryptor_assembly.o -o encryptor_assembly
有没有办法避免这种情况的发生?谢谢你的帮助。
Nasm 仅解释用反引号分隔的字符串中的 C 样式转义序列。要修复您的代码,请将双引号替换为反引号,如下所示:
shellcode: db `\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80`, 0