首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在程序集中正确存储8字节值

在程序集中正确存储8字节值
EN

Stack Overflow用户
提问于 2019-04-17 01:18:00
回答 1查看 178关注 0票数 0

我有专门的指令将"/bin/sh“的8字节十六进制值存储在%rax寄存器中。

因此,8个字节意味着64位。因此,我的第一个方法是使用movq命令。但是我不能确定如何正确地格式化命令。

/bin/sh十六进制为: 2f 62 69 6e 2f 73 68,仅占用7个字节。是否存在某种类型的空结束符或填充,我必须正确地在其中写入命令?

代码语言:javascript
运行
复制
  # Write the 8-byte hex value for "/bin/sh" to %rax register
  movq $0x68732f6e69622f, %rax

最终,该命令将由syscall使用

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 01:26:59

寄存器是一个特殊的大小,所以无论你做什么,它都会占用64位。它将有效地在高阶比特中填充零。将$0x1移入时,最低值为一位,其余为零。

你不会“空终止”这些值,这将会产生一些任意因子乘以的效果。显然,$0x1000$0x0001不是一回事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55713487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档