能力值:
( LV2,RANK:10 )
|
-
-
2 楼
这个和skroot很像啊
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
感谢分享
|
能力值:
( LV1,RANK:0 )
|
-
-
4 楼
强!! 支持!
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
666,start先,坐等大佬实现syscall hook
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
New对象处
666,start先,坐等大佬实现syscall hook
已经有了现在,KernelPatch 中有实现了两种模式,一种使替换 syscall table 的,但是这种方式在高版本的android内核(我测过5.10)会因为有 Control Flow Integrity 出问题,还需要适配,低版本没问题。另一种模式是 inline-hook 的,现在使用的是这种。你可以看看 KernelPatch 的 kernel/init/include/syscall.h 和 kernel/init/accctl/supercall.c 是如何使用的。不过现在模块模块功能没开发,可能需要直接改 KernelPatch 代码
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
666,强的
|
能力值:
( LV4,RANK:156 )
|
-
-
8 楼
bmax
已经有了现在,KernelPatch 中有实现了两种模式,一种使替换 syscall table 的,但是这种方式在高版本的android内核(我测过5.10)会因为有 Control Flow In ...
早上就在奇怪cfi的问题,不过之前看过cfi的具体实现,感觉hook下就能过掉,不是很难,这个patch的思路真的挺不错的,读完代码研习下dalao的操作
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
太强了
|
能力值:
( LV2,RANK:15 )
|
-
-
10 楼
这么强悍6666
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
月落之汀
早上就在奇怪cfi的问题,不过之前看过cfi的具体实现,感觉hook下就能过掉,不是很难,这个patch的思路真的挺不错的,读完代码研习下dalao的操作
但是其实 inline hook 也有问题,如果是内核运行中进行 hook, 因为不是原子操作,还会引入同步问题,需要 stop_machine,并且如果某个task正运行在 需要 patch 的指令上,或者 patch 指令的地方有跳转且某个task堆栈正好就在这,会很麻烦,不过概率很小,可以检测到就 hook 失败重新来。具体我也没细研究
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
月落之汀
早上就在奇怪cfi的问题,不过之前看过cfi的具体实现,感觉hook下就能过掉,不是很难,这个patch的思路真的挺不错的,读完代码研习下dalao的操作
有个思路,如果只是 syscall table hook,其实可以尝试下跳过 xxx.cfi 函数,不知道可不可行
|
能力值:
( LV4,RANK:156 )
|
-
-
13 楼
bmax
有个思路,如果只是 syscall table hook,其实可以尝试下跳过 xxx.cfi 函数,不知道可不可行
之前尝试过是不行的,当然也可能是我的方法有问题,过段时间我试试能不能把kcfi bypass了
|
能力值:
( LV1,RANK:0 )
|
-
-
14 楼
很好
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
Meizu M5 Note5 kernel 是 Linux version 3.18.35+ (flyme@Mz-Builder-l7) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Thu Jul 9 20:02:30 CST 2020
使用kptools patch 后得到新kernel,使用AIK重新打包后再使用mtk-client写入boot分区后无法启动, 主板上的URAT脚位也不知道,不好抓preloader的启动日志信息。 不知道有没有朋友了解 MTK平台的BOOT解包、修改、打包中的注意事项
最后于 2023-8-25 10:36
被fangkang编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
支持下,持续关注
|
能力值:
( LV1,RANK:0 )
|
-
-
17 楼
app的状态栏和kernelsu 好像,实测骁龙 5.15的设备无法开机,
|
能力值:
( LV3,RANK:20 )
|
-
-
18 楼
楼主思路不错,但不是所有内核的banner都是Linux version开头,而且不是所有的内核都会开放kallsyms_lookup_name,楼主是否有考虑这点呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
abcz316
楼主思路不错,但不是所有内核的banner都是Linux version开头,而且不是所有的内核都会开放kallsyms_lookup_name,楼主是否有考虑这点呢?
活捉一位读烂了十多本内核书的大佬
|
能力值:
( LV1,RANK:0 )
|
-
-
21 楼
厉害大佬
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
确实是,没有开 CONFIG_KALLSYMS 确实不行,还没见过,不过这种设备应该只有少部分路由器啥的内存少才会这么配吧
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
abcz316
楼主思路不错,但不是所有内核的banner都是Linux version开头,而且不是所有的内核都会开放kallsyms_lookup_name,楼主是否有考虑这点呢?
确实是,没有开 CONFIG_KALLSYMS 确实不行,还没见过,不过这种设备应该只有少部分路由器啥的内存少才会这么配吧
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
fangkang
Meizu M5 Note5kernel 是 Linux version 3.18.35+& ...
3.18 没测过,uart 搞了几天没搞明白就不搞了,现在都是一块块的注释代码定位问题在哪 ,实在不行也可以把手机寄给我我搞一下
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
@bmax 这个魅族M5 Note中的kallsyms的读取需要在kallsyms.c的593行修改成 int32_t target_offset = info->linux_banner_offset - 0x1000 主要是他的起始地址是 0xffffffc000081000 而不是 0xffffffc000080000
然后我尝试手动修补bytecode 试着在某个函数的开头使用B指令跳转到新的偏移,然后平衡堆栈后在跳回原处,但无法启动,我觉得如果您知道手动修补的注意事项,告诉我们,我们可以试试看只做简单修补,看能否完成刷机启动最好不过
如果需要手机,请私信。
|
|
|