dit驱动发布频道
6.05K subscribers
22 files
驱动仅供开源linux内核类测试
请勿用于违法行为
交流群 @ditdrivers
Download Telegram
关于内核层使用dma读取数据,我也不确定我说得对不对
我们正常情况下(内核读取)是
用户虚拟地址->翻译其的物理页->映射的内核虚拟地址
然后我们读取的就是(映射的内核虚拟地址),相当于(映射的内核虚拟地址)指向物理地址
如果你重新映射一份就是
用户虚拟地址->翻译其的物理页->重新映射一份内核虚拟地址
然后读取的就是这个新映射的地址,和上面一样值向同一个物理页
如果使用dma的话就是
用户虚拟地址->翻译其的物理页->翻译成dma认识的地址->dma把数据弄回你的内核虚拟地址或者翻译一份缓存区的物理地址
我感觉本质都差不多,目标都是同一个物理地址,linux上,CPU由于有mmu,所以只认识虚拟地址,dma没有mmu可以直接操作物理地址(内部还是需要翻译成dma认识的地址),如果没有mmu,能直接操作物理地址的就是CPU,本质上它们两都是操作同一块物理地址,没有那个更安全那个不安全之说,在安卓上用户态无root权限应该没有那么大的权限能看到缓存
14👍14
ditPro_kpm(1.0.5).zip
58.6 KB
ditpro_kpm更新1.0.5
◾️增加对5.10的隐藏进程/抹除触摸驱动
◾️优化整体的代码,去除原本的系统API的函数调用,此版本开始使用更多的汇编以进一步提高性能
◾️加回无缓存读取(仅支持5.10以上),使用汇编编写,不依赖系统调用,性能和有缓存差不多(这里指建立的过程),一秒依旧700万次吞吐量,无缓存可过缓存检测,即计算读取时间来判断是不是有人一直读我的地址
◾️原本的只读取活跃地址(这个是直接不读)和无缓存(这个是无管什么都读)差不多
关于开发者对接,此版本不建议对接,因为使用了大量的汇编,所以没有太多的安全判断,对于用户态的交互中直接汇编操作用户的地址(不开ttbr0),如果你的缓冲区地址不是分配在堆/栈上的话会直接崩溃重启以及一些对齐越界问题,反正ditpro_kpm里面的操作都很底层原始就对了
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰108
ditPro_kpm(1.0.6).zip
59.1 KB
ditpro_kpm更新1.0.6
◾️重写无缓存读取,硬件层兼容,完美适配一加这种瞎七八乱改安卓内核的
◾️本次无缓存支持3.18~6.12(具体看CPU)
◾️修复4系无效果问题,不小心又把4系给排除了
🥰128🤓5
ditPro_kpm(1.0.7).zip
59.4 KB
ditpro_kpm更新1.0.7
◾️优化CPU预测,减少CPU预测错误带来的惩罚,和性能有关
◾️进一步提升无缓存的性能,100万次读取仅为0.2秒
◾️hook改为内联而非跳转,不确定联发科能不能用?
25
算了,还是以安全为主,毕竟是开放对接的,应该牺牲一点性能来提升安全性
196👍6
ditPro_kpm(108).zip
61.4 KB
ditpro_kpm更新108
◾️适当牺牲一点性能换取安全性,这里安全是指乱传数值导致崩溃
◾️优化有缓存读取性能,0.2->0.16
◾️负优化无缓存读取性能,0.2->0.5
23👍2🤬1
ditPro_kpm(109).zip
61.4 KB
ditpro_kpm更新(109)版本
◾️完美版本,以后不会在出现任何大变化
◾️hook更换,解决原本的天玑可以用但是又不能用的问题
❤‍🔥135
ditPro_kpm(110).zip
62.7 KB
ditpro_kpm更新(110)版本
◾️增加ioctl通讯
🥰118
ditPro_kpm(111).zip
64.6 KB
ditpro_kpm更新(111)版本
◾️因为需要加回读取整个链条
◾️因为需要增加读取内存段
❤‍🔥105
ditPro_kpm(112).zip
66.6 KB
ditpro_kpm更新112
◾️自动释放初始化资源,无需手动调用,段错误除外
◾️因为需要所以增加获取模块头地址和尾地址
◾️因为需要所以增加直接在内核遍历数组头,大幅度减少系统调用开销
◾️读取链条默认过滤b4000
13❤‍🔥4
ditPro_kpm(113).zip
68 KB
ditpro_kpm更新113
◾️功能性扩展,增加获取完整的内存段信息,须自己解析,扫内存或者内核扫指针开发会用到

◾️须5.10以上(不包括5.10)
12
dits_ko(1.1.0).zip
666.2 KB
dits驱动1.1.0
◾️ditpro_ko更名为dits
◾️去除一些没用的东西
◾️增加无缓存读取
◾️提升兼容性
14
ditPro_kpm(115).zip
67.7 KB
ditpro_kpm更新115
◾️性能优化
◾️加回真实触摸
3
dits_ko(1.2.0).zip
687 KB
dits_ko更新1.2.0
◾️增加真实触摸
◾️修复无法执行的问题
12
ditPro_kpm(116).zip
67.7 KB
ditpro_kpm更新116
◾️代码优化
◾️长期稳定版本,功能已经饱和了
👍104
dits_ko(1.2.1).zip
704.5 KB
dits_ko更新1.2.1
◾️代码优化
◾️尝试修复部分一加设备无缓存读取无效果问题
◾️长期稳定版本,功能已经饱和了
18
ditPro_kpm(117).zip
67.9 KB
ditpro_kpm更新117
◾️扩展功能适配6.12
◾️修复部分设备开热点可能会重启的问题
53
dits_ko(1.2.2).zip
835 KB
dits_ko1.2.2
◾️6.12适配一加的53版本
21🤩1
main.cpp
7.9 KB
最新的ditpro_kpm和dits_ko对接例子
19
dits_ko(1.2.5).zip
725.4 KB
dits_ko更新1.2.5
◾️修复6.12概率性重启问题
11👍1