微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux内核rootkit:从内存中读取数据并将检索到的数据用作偏移量

如何解决Linux内核rootkit:从内存中读取数据并将检索到的数据用作偏移量

在我的 BSc 论文(5.4 Linux 内核的 rootkit)的开发过程中,我发现自己必须在内存中识别一个函数地址(即 do_syscall_64() 的地址)。我事先不知道,因为有 KASLR。 我正在做的是:

  • 通过 MSR 检索系统调用处理程序;
  • entry_SYSCALL_64的基地址开始扫描内存位置,这是系统调用处理程序的代码块,直到找到对do_syscall_64()的实际调用
  • 在操作码(即e8)之后隔离 4 个字节,即调用后执行流将跳转到的偏移量:
e8 c4 bd f8 ff  call   0xffffffff81b8be40 <do_syscall_64>

那么,我应该如何处理检索到的十六进制偏移量?
我发现在此 call 指令之后指定的地址是基本代码段的偏移量。 我是否需要将偏移量转换为十进制并将其添加到基本代码段地址中?
提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。