gdb - 如何使用 gdb 获取 xmm0 注册原始数据?
问题描述
我使用 gdb 将随机 bitnflips 注入代码中。我选择指令的操作数,读取值,更改一位并将其写回。这很好用,除了 xmm 寄存器。
如果我写:
-data-evaluate-expression $xmm0
^done,value="{v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0}"
我得到了寄存器的可能解释,但我需要原始数据(在这种情况下,我认为它会是0x00000000
)
此外,我不知道如何使用原始数据设置 xmm 寄存器,因为这不起作用
-gdb-set $xmm0=0x5d080000
^error,msg="Invalid cast."
有没有办法获取和设置原始数据,还是我必须找到解决方法?
解决方案
我相信你想要:
-data-evaluate-expression $xmm0.uint128
-gdb-set $xmm0.uint128=0x5d080000
推荐阅读
- python - 如何将带有数据框的列中的值附加到熊猫中的一列
- python-3.x - 将函数应用于空的 Pandas 系列
- python - 交换字典的前两个键
- javascript - PERMISSION_DENIED:权限被拒绝
- ios - i18next 不能在 Cordova iOS 6.1.0 上翻译
- java - 当我按回按钮时,我的应用程序停止工作
- javascript - 如何使用 React 测试库测试 React 组件是否返回 null 或其子级?
- python - Pyside2 QGuiApplication, Gui 冻结按钮单击
- javascript - 如何使自定义组件在 Angular 中可拖动?
- excel - 高亮单元格作为字符串长度的函数