Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
X86 一次推一个常量一个字节_X86 - Fatal编程技术网

X86 一次推一个常量一个字节

X86 一次推一个常量一个字节,x86,X86,我正在尝试使用x86汇编来了解更多信息。我正在生成一个shell,我想将“/bin/sh”推到堆栈上,但我想一次推一个字节,我不确定这是否可行。例如,假设字符串为0x11223344。我能做 PUSH 0x11223344 我想要相同的功能,但不是一次推整个常量,我不能 PUSH 0x11 PUSH 0x22 PUSH 0x33 PUSH 0x44 (little endian order) 我尝试先推0x44,但它仍然不适合我。如果我一次推送整个字符串,我的shell就会生成,但如果我一次

我正在尝试使用x86汇编来了解更多信息。我正在生成一个shell,我想将“/bin/sh”推到堆栈上,但我想一次推一个字节,我不确定这是否可行。例如,假设字符串为0x11223344。我能做

PUSH 0x11223344
我想要相同的功能,但不是一次推整个常量,我不能

PUSH 0x11
PUSH 0x22
PUSH 0x33
PUSH 0x44
(little endian order)

我尝试先推0x44,但它仍然不适合我。如果我一次推送整个字符串,我的shell就会生成,但如果我一次推送一个字节,则不会生成。这可能吗?(忽略没有终止字符的事实,我故意不在问题中添加它,因为这不是问题所在)

不,你可以在最短的时间内推一个单词。有没有特别的原因让你不能再推一次?我很好奇是什么迫使你单独做这件事。没有理由。只是想看看有没有可能。我确实发现我实际上可以推送这些值,但它们的排列方式与我认为的不同。我想要一些帮助来弄清楚如何按顺序排列字节,尽管我之所以可以推送这些小值,是因为x86有一个8位立即数的推送指令。所以理论上我可以继续推8位立即数,形成32位立即数,这和推32位立即数是一样的。如果这是正确的,我的堆栈应该有正确的值,但是它的NPT采用8位立即数的push将其扩展到操作数大小,没有8位push。