我有特定的说明将%8x的8位十六进制值存储在%rax寄存器中。
所以8字节意味着64位。.所以我的第一种方法是使用movq命令..但是我无法确定如何正确格式化命令。
/ bin / sh以十六进制表示是:2f 62 69 6e 2f 73 68 只需7个字节即可。.是否需要某种空终止符或填充以正确地编写命令?
# Write the 8-byte hex value for "/bin/sh" to %rax register
movq $0x68732f6e69622f, %rax
最终该命令将被系统调用使用
谢谢!
答案 0 :(得分:0)
寄存器是特定大小的,因此无论您做什么,它都占用64位。有效地将高位零填充。将$0x1
移到最低值的一位,其余的零。
您不会“无效终止”这些值,否则会导致将某些事物乘以任意因素。 $0x1000
与$0x0001
显然不同。