cyt*_*nus 7 null x86 assembly instruction-set shellcode
我正在尝试将我编写的汇编程序转换为无 NULL 的 shellcode。
但是,我不确定如何执行某些说明。
其中一些(采用英特尔语法)包括:
push 0x1000
Run Code Online (Sandbox Code Playgroud)
和
mov BYTE [eax],0x31
Run Code Online (Sandbox Code Playgroud)
我想避免使用数千inc eax
条指令。我在想也许可以用xor
-ing 值来一些创造性的东西,其次,也许可以设置一个标志来使其只需要 8 位的常量。
push 0x1000
Run Code Online (Sandbox Code Playgroud)
如果你可以腾出一个寄存器(并且你不介意破坏标志),那么像这样的东西怎么样:
xor eax, eax
inc eax
shl eax, 12
push eax
Run Code Online (Sandbox Code Playgroud)
mov BYTE [eax],0x31
Run Code Online (Sandbox Code Playgroud)
这里的零并不是来自常量,而是来自寻址方式。尝试:
xchg eax, ecx
mov BYTE [ecx],0x31
xchg eax, ecx
Run Code Online (Sandbox Code Playgroud)