Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试将我编写的汇编程序转换为无空 shellcode。
但是,对于某些说明,我不确定如何执行此操作。其中一些(在英特尔语法中)包括:
push 0x1000
和
mov BYTE [eax],0x31
我想避免使用一千次调用inc eax。我在想也许有一些创造性的异或值,第二个,也许如果有一个标志可以设置为只需要 8 个字节的常量。
任何帮助表示赞赏。
如果您可以节省一个寄存器(并且您不介意破坏标志),那么例如:
xor eax, eax inc eax shl eax, 12 push eax
这里的零不是来自常数,而是来自寻址方式。尝试:
xchg eax, ecx mov BYTE [ecx],0x31 xchg eax, ecx