我鞋呐1989 2020-06-24 15:51 采纳率: 0%
浏览 673

linux内核4.19,CPU是ARM64架构,如何获取sys_call_table的地址?

在ARM64,内核版本是4.19的版本上,应该如何找到sys_call_table。首先系统在/proc/kallsyms中没有,只有/boot/System.map-4.19.0-arm64-desktop能看到,所以不能使用kallsyms_lookup_name的方法;使用sys_close的方式查找,发现函数变成了__arm64_sys_close,无法正常使用这个方法去查找,而且就算我使用了/boot/System.map-4.19.0-arm64-desktop,地址也是只读的,不可用,替换了系统就死。试着使用了网上的set_memory_rw的方法,同样无果,甚至在set_memory_rw的时候,机器挂在了apply_to_page_range处,堆栈是:

CPU: 1 PID: 15618 Comm: insmod Tainted: G WC O 4.19.0-arm64-desktop #1705
Hardware name: HT706 TR3250/706-FT2000-4-V2.0-7067MCB557, BIOS 4.0 01/12/20 10:50:57
pstate: 20000005 (nzCv daif -PAN -UAO)
pc : apply_to_page_range+0x224/0x370
lr : apply_to_page_range+0x21c/0x370
sp : ffff8020eef63ad0
x29: ffff8020eef63ad0 x28: ffff000008a01000
x27: ffff000008f130c8 x26: ffff00000166e180
x25: ffff8020ffffd228 x24: ffff00000942c2a8
x23: ffff00000942c2a8 x22: ffff000008a02000
x21: ffff000008a02000 x20: ffff8020ffffe000
x19: ffff000008a02000 x18: ffff00000941f000
x17: 0000000000000000 x16: 0000000000000000
x15: 00000000fffffff0 x14: ffff000009773e88
x13: 0000000000000000 x12: ffff000009773000
x11: ffff00000941f000 x10: ffff0000097734e0
x9 : 0000000000000000 x8 : 0000000000000004
x7 : ffff000009773000 x6 : 00000020ffffd228
x5 : ffff00000809f000 x4 : ffff800000a00008
x3 : 0060000080a00f91 x2 : ffff000008a01fff
x1 : 0000000080000000 x0 : 0000000000000001
Call trace:
apply_to_page_range+0x224/0x370
__change_memory_common+0x38/0xa8
change_memory_common+0x80/0xa0
set_memory_rw+0x14/0x20
modinit+0xd4/0x1000 [fileaudit]
do_one_initcall+0x5c/0x118
do_init_module+0x54/0x1a8
load_module+0xd88/0x12d8
__se_sys_finit_module+0xb8/0xd8
__arm64_sys_finit_module+0x18/0x20
el0_svc_common+0xf4/0x158
el0_svc_handler+0x64/0x70
el0_svc+0x8/0xc
---[ end trace 475759bac927cbdf ]---

请教各位,哪里有好的方法,能完成sys_call_table的挂钩和替换。

  • 写回答

2条回答 默认 最新

  • 客流量123 2020-11-17 09:10
    关注

    楼主,你这个问题解决了没?我也在搞这个问题。主要是怎样将sys_call_table的读写属性修改掉的啊?

    评论

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入