首页
社区
课程
招聘
[讨论]系统so防篡改
发表于: 2023-6-7 18:30 7929

[讨论]系统so防篡改

2023-6-7 18:30
7929

app开启一条防护线程,这条防护线程魔改的ollvm+18层arm vmp,与业务线程维持通信,一旦检测到系统库被篡改,则业务线程会不正常;也与服务器通信,服务器发觉不正常,同样会导致业务不正常。
以libc.so为例,检测系统库是否被篡改采取的办法是,读取maps文件,把so整个内存加密之后发给服务器,比如手机是小米8,则服务器也会找一台小米8去运行app,然后从内存中提取出so,服务器进行分析比对。
绕过方案一,硬件断点,去分析检测线程逻辑,由于高强度,故此方案pass
绕过方案二,篡改maps文件,把未篡改过的libc重新mmap到其他地方去,maps文件各个库映射有一定规律,比如libc映射内存下方是某个so,上方是某个so,这就可以检测出来,同时,也会造成dlopen dlsym获取到的符号与读取maps文件得到基址算出来的符号不一致,一个符号,两个地址,这难道不是对android系统的背叛吗
请问有什么方案可绕过这种检测方案,另外请问实际工作中,这种方案是否能够实行,因为那么多个手机,那么多个版本,收集工作量有点多;在一个就是app业务有时候自己就会去hook系统;再一个就是系统so如此繁多,不太可能全量去检测


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-6-7 18:34 被KerryS编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (11)
雪    币: 9004
活跃值: (6220)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
发送的时候 HOOK你一下
2023-6-7 20:00
0
雪    币: 29
活跃值: (5647)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
检测也不会所有库都检测,基本就是libc,linker,drm,libart几个
2023-6-7 20:20
1
雪    币: 3064
活跃值: (7808)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
某些app已经是这么做的了
2023-6-7 21:55
1
雪    币: 4437
活跃值: (6666)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不考虑模拟器环境?模拟器环境相对不好辨别把,大都是改过的rom, 除非app放弃使用模拟器的用户。  那么多库都检查的话,对于移动用户会影响体验感。 导致流量消耗过大可能会放弃使用产品。 鱼与熊掌不能兼得
2023-6-7 23:11
0
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
就算不考虑模拟器,光是世面上同样的机型都有区别的,这样得不偿失,而且这样干你是在和用户对抗而不是和黑客对抗。
2023-6-8 06:16
0
雪    币: 2328
活跃值: (10364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
由于app耗电严重用户已经卸载
2023-6-8 09:21
0
雪    币: 158
活跃值: (1162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个方案是ok的,就是还有一些优化空间,比如说libc上传内存中的so到后台去分析,还不如把磁盘中提取的so和内存中的so用类似md5或者crc的方式处理一下一起传到后台,然后后台根据一样机型和小版本的两个文件来对比;读maps其实不是一个好的获取libc基址方式,trace一下文件读写就知道你在检测了,尽量少io操作多用代码才能增加分析的难度
2023-6-8 10:26
0
雪    币: 1110
活跃值: (3244)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
设备在用户手上,AOSP 也是开源,黑客真要搞你,大可以编译一个 bionic 的 libc 或 linker 换上去。建议根据业务需求,重新评估这个方案,效果是不是能达到预期,成本能不能接受。
2023-6-8 10:28
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
越小的app事越多, 老板给你这么多钱吗
看看人家招商银行, root都不检测, 毕竟风控实力在那, 再看看某移动, 一个查话费的app, 有root就不给你用
2023-6-8 18:06
0
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
防篡改没啥用,你费劲半天搜集全世界各种机型不说,还不算各种系统所有补丁你得搜集,就算你搜集全了,人家哪天xx手机一出新机型你又得搜集。
以上还是其次,就算你把全世界的特征码搜集全了,人家直接通过硬件断点或者其他方式伪造一份,让你之前的功夫白费。
2023-6-9 09:02
0
雪    币: 442
活跃值: (864)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
Lupinus 这个方案是ok的,就是还有一些优化空间,比如说libc上传内存中的so到后台去分析,还不如把磁盘中提取的so和内存中的so用类似md5或者crc的方式处理一下一起传到后台,然后后台根据一样机型和小版本 ...
赞同
2024-2-26 10:22
0
游客
登录 | 注册 方可回帖
返回
//