首页
社区
课程
招聘
[原创]开源一个Linux内核里进程内存管理模块源码
发表于: 2020-5-5 07:59 48160

[原创]开源一个Linux内核里进程内存管理模块源码

2020-5-5 07:59
48160
收藏
免费 30
支持
分享
最新回复 (83)
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
51
abcz316 建议阅读linux内核源码page管理部分
还有那个struct page无法访问指的的并非struct_page的物理内存无法访问,而是struct page无法访问,尽管是打印里面的值也会出错(死机)。
2022-3-1 20:35
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
52
abcz316 建议阅读linux内核源码page管理部分
get_user_pages得到的访问就未出过错,貌似是android进程mman了java堆的大内存 写时复制的锅。我本想调用get_user_pages里面的函数试错,可是里面大部分都不是导出函数
2022-3-1 20:50
0
雪    币: 401
活跃值: (2034)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
53
mb_tdizvstz 还有那个struct page无法访问指的的并非struct_page的物理内存无法访问,而是struct page无法访问,尽管是打印里面的值也会出错(死机)。

理论上不会出现这种情况,你开linux kernel debug模式,双机调下内核看看。推荐入手一台高通855开发板来调,功能多,性能强,3万块就有了

最后于 2022-3-2 00:22 被abcz316编辑 ,原因:
2022-3-2 00:20
0
雪    币: 401
活跃值: (2034)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
54
mb_tdizvstz 我估计是涉及到写时复制的问题,进程的虚拟内存并没有分配物理内存。我用get_user_pages的结果和手算的地址基本一致,猜测应该还是锁或者写时复制的锅。所以楼主才用/dev/mem的方式?
安卓无/dev/mem
2022-3-2 00:21
0
雪    币: 401
活跃值: (2034)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
55
mb_tdizvstz get_user_pages得到的访问就未出过错,貌似是android进程mman了java堆的大内存 写时复制的锅。我本想调用get_user_pages里面的函数试错,可是里面大部分都不是导出函数 ...
那你就用get_user_pages就好了,问题解决了
2022-3-2 00:23
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
56
abcz316 那你就用get_user_pages就好了,问题解决了
get_user_pages大范围的遍历struct page确实会触发反调试,猜测应该还是轮训检查/proc下的文件。单独的指定地址的读写并不会,但是如果说类似GG那样全部内存的搜索就会触发反调试。如果手算地址卡死的问题解决不用get_user_pages应该可以解决反调试
2022-3-2 07:27
0
雪    币: 401
活跃值: (2034)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
57
mb_tdizvstz get_user_pages大范围的遍历struct page确实会触发反调试,猜测应该还是轮训检查/proc下的文件。单独的指定地址的读写并不会,但是如果说类似GG那样全部内存的搜索就会触发反调试。 ...
你可以看下get_user_pages的实现,把get_user_pages梳理一遍,打内核断点去调,把计算地址部分全部排除,就会剩下两三个可疑点,你就知道原因了
2022-3-2 12:32
0
雪    币: 1114
活跃值: (2094)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
58
等个后续捏
2022-5-20 12:39
0
雪    币: 765
活跃值: (1042)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
59

模块需要修改哪些地方?

最后于 2022-6-9 13:52 被wjwujian编辑 ,原因:
2022-6-9 13:41
0
雪    币: 50
活跃值: (176)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
60
令人不得不佩服的大神
2022-6-9 15:35
0
雪    币: 0
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
61
在没有官方内核源码,内核版本5.10情况下强制加载驱动成功,加载模块和卸载模块都正常,应用层调用ioctl至驱动层时,驱动可以获取到应用层传入的指针地址,可是调用copy_from_user时就会导致死机,在驱动里单独使用pgt的方法转换物理地址也会死机,这是因为什么原因呢?模块已经使用了cfi不读取应用层内存好像就没事?有没有什么办法解决呢?挺头疼的
2022-7-23 23:31
0
雪    币: 0
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
62
打错字pgd不是pgt
2022-7-23 23:33
0
雪    币: 3167
活跃值: (882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
63
mark, 楼主好样的
2022-7-24 14:07
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
64
阿辰 在没有官方内核源码,内核版本5.10情况下强制加载驱动成功,加载模块和卸载模块都正常,应用层调用ioctl至驱动层时,驱动可以获取到应用层传入的指针地址,可是调用copy_from_user时就会导致 ...
老哥解决没  我也遇到了相同情况  copy_from_user这个调用失败
2022-9-14 23:22
0
雪    币: 207
活跃值: (2298)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
65
mb_ipugnluu 刚接触,有没有完整的编译教程,有偿
新手+1,有找到编译教程么
2022-9-15 09:33
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
66
wx_嗨 新手+1,有找到编译教程么[em_2]
哥,有编译教程吗?我编译出了好多问题,有偿
2022-10-30 12:00
0
雪    币: 183
活跃值: (249)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
67
自己编译的内核可以正确计算物理地址,逆向的内核获取不到pud_t *pud 获取就重启,小米手机
2022-11-13 15:17
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
68

3

最后于 2023-1-22 03:08 被mb_zhckbqoz编辑 ,原因:
2023-1-22 03:08
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
69
驱动已经连接了,但是驱动没有权限操作进程是怎么回事
2023-3-9 12:09
0
雪    币: 1
活跃值: (150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
70
大佬可否留个联系方式?
2023-4-1 22:09
0
雪    币: 15
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
71
学习
2023-4-5 08:57
0
雪    币: 5
活跃值: (2590)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
72

搞定了~~~~ 需要修复的地方太多了,修改以后gki测试通过

最后于 2023-4-14 10:04 被wx_范迪塞尔编辑 ,原因:
2023-4-6 16:07
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
73

看不懂 不知要如何手动修改

2023-4-28 20:02
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
74

mark

最后于 2023-4-29 15:07 被万里星河编辑 ,原因:
2023-4-28 23:23
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
75

编译好难

最后于 2023-5-1 17:25 被万里星河编辑 ,原因:
2023-5-1 17:23
0
游客
登录 | 注册 方可回帖
返回
//