从虚拟化前端Bug学习分析Kernel Dump( 九 )
, 实际上这就是对 container_of 的一个封装 , container_of 的功能跟字面意思很接近 , 这里 virtqueue 类型的 _vq 变量实际上是 vring_virtqueue 类型的 vq 变量的一个成员变量 , 通过 container_of(_vq struct vring_virtqueue vq) 把 vq 计算出来 。 我们通过struct -o vring_virtqueue
来查看 vring_virtqueue 的结构:
可以看到实际上 virtqueue 结构就在 vring_virtqueue 偏移为 0 的地方 , 因此可以直接通过 struct vring_virtqueue ffff917c6c67d000
来解析
vring_virtqueue 结构:
因此 [%rdi + 0x38
实际上获取的是 vring 结构里偏移量为 0 的即第一个成员的值 , 这里获取到的值就是 128 。 现在我们已经通过这种方法获取到触发 bug 的语句中 BUG_ON(total_sg > vq->vring.num);
的 vq->vring.num 值了 , 而 total_sg 实际上是 virtqueue_add 的第三个参数 , 保存在 RDX 寄存器里 , 是 0x81 , 即十进制的 129 。
合
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 仙剑2|经典游戏《仙剑2》苏媚的梦蛇才是最大BUG,效果叠加一招带走千叶
- 女孩|第五人格:小女孩堪称“BUG女王”,用她对战,你千万要小心!
- 炉石传说|炉石天梯平衡补丁曝光,任务法锁喉贼惨遭大削,BUG德无了!
- 精灵宝可梦|《宝可梦BDSP》偷跑,玩家发现游戏存在大量bug
- 谛听|梦幻西游:又出新BUG了,同一个角色能在两个客户端上同时登陆
- 集合啦动物之森|《集合啦动物之森》新增9千多个物品! DLC有BUG
- 炉石传说|玩游戏还是玩Bug?炉石新版本更出一堆BUG,玩家:暴雪毁灭吧!
- 炉石传说|炉石传说标准战士胜率第一,天梯开始硬碰硬,而bug是永恒的主题
- 磨刀石|魔兽怀旧服:美服盗贼新技巧!磨刀石BUG常驻300攻强,别上毒药了
- 李延年|米哈游进军Steam第一枪哑火!蓝屏、限服加BUG,崩坏3好评率仅13%