首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
逆向工程
发新帖
15
15
[原创]某气骑士 libtprt.so 反 Frida 机制分析与绕过
发表于: 2026-5-5 17:05
10956
[原创]某气骑士 libtprt.so 反 Frida 机制分析与绕过
RytterMohn
2026-5-5 17:05
10956
# 某气骑士 libtprt.so 反 Frida 机制分析与绕过 好久没写博客了,今天打算更新一下,记录一下之前写过的东西,在GitHub上也写了一些小软件,顺便分享一下 本文核心问题:libtprt.so 是通过哪些特征检测 Frida? 方法:对比 frida-server 与 florida-server 差异 ## 一、工具准备 最近写了一些小工具,感觉还是挺好用的,所以分享出来: ### EasyHook <mark class="encrypted">c51K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3q4K6P5f1S2G2L8$3D9`.</mark> EasyHook 是一个运行在 Windows 桌面端的 Android Frida 脚本 IDE,支持脚本管理、代码编辑、Android 设备 连接、进程选择、Attach/Spawn 注入、运行控制和日志输出,让 Frida 脚本无需手写 Python 启动器即可快速执行。 ### UsbDetectionBypass <mark class="encrypted">48bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3g2i4y4T1c8r3g2@1k6h3y4@1K9h3!0F1b7Y4W2H3j5i4y4K6</mark> 隐藏 Android 应用内 USB 连接与 USB 调试检测信号的 LSPosed/Xposed 模块。 ### EnvdetectEnvScope <mark class="encrypted">28fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3&6$3f1$3y4G2M7r3f1`.</mark> EnvScope 是一个用于 Android 运行环境自检的 APK,重点探测 Frida、Xposed、LSPosed、EdXposed、Substrate、Riru、Zygisk/Magisk 等动态插桩、Hook 或模块化注入痕迹。 ## 二、前言 在之前的博客中,我分析测试了某气骑士这款游戏(<mark class="encrypted">2cfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2^5N6h3q4F1N6$3!0J5L8r3c8Q4x3X3g2@1L8%4m8Q4x3V1j5J5x3o6t1$3i4K6u0r3x3o6q4Q4x3V1j5H3z5g2)9J5c8X3q4F1k6s2u0G2K9h3c8Q4x3X3c8J5k6g2)9J5k6r3E0F1K9h3N6Z5N6q4)9J5c8W2!0q4c8W2!0n7b7#2)9^5z5g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2!0n7c8q4)9&6x3#2!0q4y4W2)9&6y4#2!0n7y4W2!0q4z5g2)9^5x3g2)9^5y4#2!0q4y4g2)9^5z5q4!0n7x3q4!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4g2)9^5c8W2)9^5c8r3k6J5K9h3c8S2i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6W2o6i4@1u0m8i4@1f1#2i4K6R3^5i4@1t1$3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6R3&6i4K6R3H3i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1$3i4K6W2o6i4K6R3H3i4@1f1#2i4K6V1H3i4K6S2q4i4@1f1$3i4K6V1^5i4@1q4r3i4@1f1%4i4K6V1@1i4@1p5^5i4@1f1@1i4@1u0m8i4K6R3$3P5s2m8G2M7$3g2V1i4@1f1$3i4K6S2r3i4K6V1J5i4@1f1@1i4@1u0n7i4@1t1$3i4@1f1#2i4K6V1J5i4K6S2o6N6r3g2J5L8i4g2^5i4@1f1^5i4@1u0r3i4K6V1H3i4@1f1^5i4@1p5I4i4K6S2o6M7$3S2W2L8r3I4Q4c8e0S2Q4z5o6c8Q4z5f1q4Q4c8e0k6Q4z5f1y4Q4b7f1y4Q4c8e0g2Q4b7f1g2Q4z5f1g2Q4c8e0N6Q4z5p5g2Q4b7U0m8Q4c8e0g2Q4z5o6k6Q4z5o6g2Q4c8e0g2Q4b7f1c8Q4z5e0S2V1N6h3#2H3i4@1f1%4i4K6W2m8i4K6R3@1i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4@1t1J5i4@1p5I4i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1%4i4@1u0n7i4K6R3$3i4@1f1^5i4K6R3%4i4@1t1@1i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1#2i4K6R3^5i4K6R3$3i4@1f1$3i4K6W2q4i4K6V1H3i4@1f1#2i4@1p5$3i4K6R3J5i4@1f1@1i4@1u0p5i4K6V1#2i4@1f1@1i4@1u0p5i4@1u0r3i4@1f1%4i4K6V1@1i4@1p5^5i4@1f1#2i4K6R3#2i4@1t1$3i4@1f1@1i4@1u0n7i4K6V1$3i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1#2i4@1u0o6i4K6S2r3i4@1f1%4i4@1u0n7i4K6V1#2i4@1f1^5i4@1u0r3i4K6R3%4k6Y4u0A6k6r3q4Q4c8e0k6Q4b7e0y4Q4z5o6m8Q4c8e0k6Q4b7U0g2Q4z5p5u0Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0k6Q4z5o6W2Q4z5o6m8Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0k6Q4b7f1y4Q4b7e0q4Q4c8e0g2Q4z5p5c8Q4z5f1q4Q4c8e0g2Q4b7f1g2Q4b7e0u0Q4c8e0g2Q4b7U0m8Q4b7U0q4Q4c8e0k6Q4z5f1c8Q4b7e0g2Q4c8e0g2Q4b7f1g2Q4z5f1g2Q4c8e0N6Q4z5p5g2Q4b7U0m8Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0y4Q4z5o6m8Q4z5o6t1`.</mark> 首先介绍一下基本情况,某气骑士这款游戏使用了libtprt.so库对游戏进行加固,除了对il2cpp进行加固外,还加入了反frida的机制,如果手机中运行frida-server进程的话,游戏在启动的时候回卡死,il2cpp将不会被加载到内存中,不过在之前的测试中,发现libtprt.so会检测usb连接功能,不过不确定是怎么进行检测的。 ### 1. USB检测绕过 所以现在第一步,需要绕过libtprt的usb检测功能,因为如果不连接usb的话,frida脚本执行会比较麻烦,为此我专门编写了一个可以防usb检测的lsposed模块:<a href="elink@0bbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3g2i4y4T1c8r3g2@1k6h3y4@1K9h3!0F1b7Y4W2H3j5i4y4K6">UsbDetectionBypass</a>  下载源代码后修改作用域  在手机上启动这个模块,之后在电脑上通过adb查看日志: ```shell adb logcat -s UsbBypass UsbBypassNative UsbDetectionBypassNative ``` 之后运行某气骑士这款游戏,可以看到如下图的日志内容,这说明检测的返回值已经被修改,成功绕过检测:  从日志可以看出,应用在 Java 层通过 `BATTERY_CHANGED` 广播获取 `plugged` 状态来判断是否连接 USB,同时在 Native 层通过 `__system_property_get` 读取 `init.svc.adbd`、`service.adb.tcp.port` 和 `ro.debuggable` 等系统属性来检测 ADB 调试环境;而当前结果中这些值均被成功篡改为“未连接 USB、未开启调试”,说明通过 Hook 覆盖了应用的检测路径,从而有效绕过了其 USB/调试环境检测机制。 ### 2. frida检测的绕过 通过上述的方式可以防止libtprt检测我的usb,不过frida还是容易被检测,一旦开启frida-server就会闪退。 这个被检测的原因有很多,因为frida本身有很多检测点,我先换了一个魔改的frida-server测试了一下,魔改的frida-server是这个: <mark class="encrypted">536K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6k6L8r3q4J5L8$3c8Q4x3V1k6r3L8r3!0J5K9h3c8S2</mark> 启动florida-server(报错不用管)  然后启动游戏观察是否闪退,只要能看到界面就说明il2cpp已经加载进去了:  发现没有闪退,简单写个脚本测试一下,这个IDE是我自己用electron做的**<a href="elink@3afK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3q4K6P5f1S2G2L8$3D9`.">EasyHook</a>**,喜欢可以自己去下载,我感觉还是很方便的:  成功hook,说明florida+UsbDetectionBypass的方案是可以绕过libtprt.so的。 ### 3. frida检测方式的初步分析 其实我最好奇的问题是,某气骑士是如何检测到frida的呢,根据目前的信息,frida是能被检测到,florida是不会被检测到,所以我的思路就是去查看frida和florida有哪些区别,这些地方就是检测点,为此我专门做了一个小软件**<a href="elink@94aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3&6$3f1$3y4G2M7r3f1`.">EnvScope</a>**,这个软件通过各种各样的监测点去检测当前的环境中是否存在xposed或者frida等特征,然后做一个简单的测试: 首先是florida的检测结果:  然后是frida的检测结果:  从检测结果来看,frida-server 相比 florida-server 暴露了更完整的特征,主要的区别是: 1. frida-server在 `/proc/self/maps` 中可以直接命中 `libzygisk.so`,说明 frida 的注入过程触发了 Zygisk 相关机制,导致系统注入库被加载并被检测到 2. Native 层枚举特征,通过 `dl_iterate_phdr`、`dlsym` 等方式也能扫描到这些 so,说明不仅 maps 可见,底层模块遍历同样能识别 3. 更丰富的 Unix Socket 特征,frida 会产生多个带有明显 “frida” 标识的 socket(如 `frida-xxxx`),而 florida 对这部分做了一定混淆或减少。 虽然florida也有很明显的特征,但是相比之下frida会有更多的特征,说明这些特征很可能构成其检测规则的一部分,之后我计划自己去魔改frida,检查这个到底是如何被检测到的。 ## 三、 小结 这篇主要是把之前没细做的部分补了一下,重点其实有两个:一是通过 Hook `BATTERY_CHANGED` 和 `__system_property_get` 把 USB 和 ADB 相关检测全部“伪装掉”,解决 libtprt.so 对调试环境的第一层判断;二是通过对比 frida-server 和 florida-server,去反推它具体是从哪些特征在识别 Frida。 对比下来能明显看到,frida-server 暴露的东西更多,比如 maps 里的 `libzygisk.so`、Native 层可枚举的 so 以及带 frida 关键字的 socket,这些叠在一起基本就很容易被命中;而 florida 把内存和一部分注入链路特征藏掉了,只剩下端口和少量通信特征,所以能跑起来。 如果这些工具(**<a href="elink@917K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3q4K6P5f1S2G2L8$3D9`.">EasyHook</a>** / **<a href="elink@cd6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3g2i4y4T1c8r3g2@1k6h3y4@1K9h3!0F1b7Y4W2H3j5i4y4K6">UsbDetectionBypass</a>**/ **<a href="elink@373K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8@1k6i4u0y4L8$3S2F1i4K6u0r3c8h3&6$3f1$3y4G2M7r3f1`.">EnvScope</a>**)对你有帮助的话,也可以顺手点个 star!球球了!
登录后可查看完整内容
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
收藏
・
15
点赞
・
15
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
noob_fly
+1
感谢你的积极参与,期待更多精彩内容!
1天前
mb_yotjxkfu
谢谢你的细致分析,受益匪浅!
2026-9-3 10:02
wx_晨梦
谢谢你的细致分析,受益匪浅!
2026-7-16 05:20
mb_wyefudor
你的分享对大家帮助很大,非常感谢!
2026-7-7 20:13
mb_vrkpxsoe
非常支持你的观点!
2026-7-7 09:57
carrys
你的分享对大家帮助很大,非常感谢!
2026-6-12 09:50
mb_rrkbvwzx
你的帖子非常有用,感谢分享!
2026-5-28 07:48
零_721409
你的帖子非常有用,感谢分享!
2026-5-25 10:36
mb_thcofkuv
谢谢你的细致分析,受益匪浅!
2026-5-18 19:48
086Love
+1
这个讨论对我很有帮助,谢谢!
2026-5-16 09:26
mb_ysyvtboy
非常支持你的观点!
2026-5-14 10:23
MochaCo
感谢你分享这么好的资源!
2026-5-12 00:57
mb_iesvmzqc
为你点赞!
2026-5-11 11:07
x_req
非常支持你的观点!
2026-5-8 22:15
我的小拇指啊
谢谢你的细致分析,受益匪浅!
2026-5-8 20:23
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
6
)
Imxz
雪 币:
112
活跃值:
(9420)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
752
粉丝
9
关注
私信
Imxz
2
楼
tql
2026-5-8 11:13
0
RytterMohn
雪 币:
639
活跃值:
(80)
能力值:
( LV3,RANK:20 )
在线值:
发帖
2
回帖
2
粉丝
16
关注
私信
RytterMohn
3
楼
Imxz
tql
谢谢嘻嘻
2026-5-8 21:05
0
总有些想学
雪 币:
225
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
4
粉丝
0
关注
私信
总有些想学
4
楼
感谢大佬分享
2026-5-11 14:51
0
RytterMohn
雪 币:
639
活跃值:
(80)
能力值:
( LV3,RANK:20 )
在线值:
发帖
2
回帖
2
粉丝
16
关注
私信
RytterMohn
5
楼
总有些想学
感谢大佬分享
谢谢支持!
2026-5-18 22:32
0
清野
雪 币:
1024
活跃值:
(315)
能力值:
( LV3,RANK:30 )
在线值:
发帖
2
回帖
9
粉丝
3
关注
私信
清野
6
楼
看了一下元气骑士前传最后气笑了怎么是端口检测
2026-5-22 23:38
0
幸运三叶草
雪 币:
572
活跃值:
(2351)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
25
粉丝
1
关注
私信
幸运三叶草
7
楼
还有元气骑士的事,好久没玩了
2026-7-2 12:18
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
RytterMohn
2
发帖
2
回帖
20
RANK
关注
私信
他的文章
[原创]某气骑士 libtprt.so 反 Frida 机制分析与绕过
10955
[原创]最新版某气骑士分析记录-绕过某讯的防御dump内存并解密存档
11796
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部