yuaay
@yuaay7

yuaay
@yuaay7
Basic User
Joined March 3, 2024
Last Active 604 days ago
-
关闭对应位置的写保护。此外,使用的符号地址我是通过函数动态获取的,最后打印到日志发现动态查找的地址和在文件中找到的地址也并不一样,这部分可能也会影响
Post #11 -
好的,感谢
Post #6 -
解决了。在尝试的过程中发现,传入的参数中,a 实际上是地址,使用*a 可以从日志中看见是正确的值,但是 b 我就不知道了,即使当作地址来解析还是不正确。
最终的解决方案是读取寄存器 x0,和 x1 的值,这两个寄存器中的值是正确的。// 新的系统调用函数 asmlinkage int hello(/* int *a, int *b */void) { int a = (int)current_pt_regs()->regs[0]; // 从寄存器 x0 获取参数 a int b = (int)current_pt_regs()->regs[1]; // 从寄存器 x1 获取参数 b printk("No 78 syscall has changed to hello\n"); printk("a: %d, b: %d\n", a, b); return a + b; // 返回 a 和 b 的和 }Post #4 ❤️ 1 like -
感谢😊我再试试
Post #3 -
好的,感谢🙏🏻
Post #3 -
将 dandelion1.1.1 版本的 Eigen 文件夹替换为 dandelion1.1.0 版本的 Eigen 文件夹成功解决问题。
使用新版的 Eigen 编译后,用 vscode 调试时,在如下部分:

会报如下错:

似乎是某部分访问到 root 用户下不存在的文件了,但不知道具体是因为什么出错。此外,在 1.1.0 与 1.1.1 版本中似乎都存在一些硬编码:
Post #4