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

[讨论]系统so防篡改

2023-6-7 18:30
6754

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如此繁多,不太可能全量去检测


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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