首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
逆向工程
发新帖
0
1
[求助]双层加固壳如何逆向
发表于: 2026-1-9 14:04
1693
[求助]双层加固壳如何逆向
git_70299heheiio
2026-1-9 14:04
1693
# 完整逆向分析报告 ## 应用真实身份揭秘 ### 基本信息 - **包名**: `com.lingmeow.ai` - **真实用途**: **桌球游戏辅助工具**(图像识别 + 辅助线绘制) ### 应用架构(三层结构) ``` APK完整结构 │ ├── 外层壳1:天宇加固 │ ├── com.stub.StubApp - 壳入口 │ ├── com.tianyu.util.DtcLoader │ └── Native库: libjiagu*.so (4个架构版本) │ ├── 外层壳2:360加固 │ ├── com.qihoo.jiagu │ ├── com.stub.stub07.Stub01 │ └── com.jg.ids - 设备指纹 │ └── 内层应用:台球辅助 ├── com.ming.remote.ActivationActivity - 激活验证 ├── com.ming.remote.MainActivity - 主界面 └── com.ming.remote.Floating3Service - 悬浮窗服务 ``` --- ## 第一部分:Assets文件分析 ### 1. 关键文件清单 #### a) 加固壳Native库 ``` libjiagu.so - ARM 32位 (865KB) libjiagu_x86.so - x86 32位 (764KB) libjiagu_a64.so - ARM 64位 (1.16MB) libjiagu_x64.so - x86 64位 (859KB) ``` **作用**: 天宇加固的核心解密引擎,支持4种CPU架构 #### c) 加固标识 ``` .jgapp 内容: 8b53e1a534625cb4 ``` **作用**: 360加固的应用标识符,用于验证加固完整性 #### d) 台球辅助核心数据 ``` angle_offsets.json - 角度偏移校准数据 ring_template.png - 圆环模板图像(8KB) ring_template1.png - 圆环模板1(234KB) ring_template2.png - 圆环模板2(15KB) ``` **功能**: - 图像识别模板,用于识别台球桌上的球和球洞 - 角度偏移数据用于计算击球方向 ``` **关键信息**: - 明确说明是"图像识别 + 可视化辅助线绘制"工具 - 用于台球游戏的击球方向可视化 - 声明不修改游戏内存,仅做屏幕图像分析 - 付费软件,需要激活码 #### f) 其他依赖 ``` PublicSuffixDatabase.list - 公共后缀数据库(网络相关) org/apache/commons/math3/ - Apache数学库(角度计算) webkit/ - WebView相关资源 ``` --- ## 第二部分:源码分析 ### 1. 激活验证系统(ActivationActivity.java) #### 激活流程 ```java // 云端验证 LCCloud.callFunctionInBackground("activateV2", { "code": 激活码, "deviceId": 设备ID, "deviceInfo": { "deviceBrand": 设备品牌, "osName": 系统名称, "osVersionName": 系统版本, "androidRelease": Android版本 } }) ``` #### 反调试检测 ```java // 检测 /proc/self/maps 中的调试工具 detectHookEnvironment() { 检测: frida, xposed, substrate 如果检测到 → killApp() 强制终止 } ``` #### 本地存储 ``` SharedPreferences: "prefs" - activation_token: 激活令牌 - agreement_accepted: 用户协议同意状态 - show_battery_dialog: 电池优化提示 ``` ### 2. 主功能实现(ki/MainActivity.java) #### 权限请求 1. **悬浮窗权限** (SYSTEM_ALERT_WINDOW) - 用于在游戏上层显示辅助线 2. **屏幕录制权限** (MediaProjection) - 用于实时捕获游戏画面进行图像识别 #### 服务启动 ```java Intent serviceIntent = new Intent(this, Floating3Service.class); serviceIntent.putExtra("resultCode", resultCode); serviceIntent.putExtra("data", data); serviceIntent.putExtra("orientation", "landscape/portrait"); startForegroundService(serviceIntent); ``` ### 3. 双层加固保护 #### 天宇加固 ```java // 字符串加密: XOR(16) public static String decrypt(String encrypted) { for (char c : encrypted) { result += (char)(c ^ 16); } } // 动态加载 System.load("/data/data/com.lingmeow.ai/files/.jiagu/libjiagu.so"); // 1000+ 混淆native方法 n0112222222222222220(long, long, ...) ``` #### 360加固 ```java // 设备指纹采集 IdsHelper.getOAID() // 开放匿名设备标识 IdsHelper.getVAID() // 供应商匿名设备标识 IdsHelper.getAAID() // 应用匿名设备标识 // 崩溃上报 上报地址: <mark class="encrypted">98aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4Q4x3X3g2S2M7s2m8B7K9h3q4Y4N6g2)9J5k6h3y4G2L8g2)9J5c8X3q4H3K9#2)9J5c8X3y4J5i4K6u0W2K9s2c8E0L8l9`.`.</mark> ``` --- ## 第三部分:功能推测 ### 核心工作流程 ``` 1. 应用启动 ↓ 2. 激活验证(LeanCloud云端) ↓ 3. 请求悬浮窗 + 屏幕录制权限 ↓ 4. 启动 Floating3Service 前台服务 ↓ 5. 实时捕获游戏画面 ↓ 6. 图像识别(使用ring_template*.png模板) - 识别台球位置 - 识别球洞位置 - 识别母球位置 ↓ 7. 计算击球角度(使用angle_offsets.json校准) ↓ 8. 在悬浮窗绘制辅助线 - 显示击球方向 - 显示预测轨迹 ``` ### 技术实现细节 #### 图像识别 - **模板匹配**: 使用OpenCV库 - **模板文件**: - `ring_template.png` - 可能是球洞识别模板 - `ring_template1.png` - 可能是台球识别模板 - `ring_template2.png` - 可能是母球识别模板 #### 角度计算 - **数学库**: Apache Commons Math3 - **校准数据**: `angle_offsets.json` - 存储了-180°到180°每5°的偏移校准值 - 用于修正不同角度下的识别误差 #### 悬浮窗绘制 - **服务**: `Floating3Service` (前台服务) - **权限**: `SYSTEM_ALERT_WINDOW` - **方向**: 支持横屏/竖屏 (orientation参数) --- ## 第四部分:安全机制分析 ### 多层防护体系 #### Level 1: 应用层防护 1. **激活验证** - 云端实时验证(LeanCloud) - 设备ID绑定 - 激活码一机一码 2. **反调试** - 检测Frida/Xposed/Substrate - 检测到后立即终止应用 - 使用Sentry上报安全事件 3. **用户协议** - 强制同意才能使用 #### Level 2: 360加固层 1. **设备指纹** - OAID/VAID/AAID三重标识 - 防止多设备共用激活码 2. **崩溃上报** - 自动上报异常到360服务器 - 收集运行轨迹数据 3. **网络监控** - 监听网络状态变化 - 可能用于检测代理/抓包 #### Level 3: 天宇加固层 1. **DEX加密** - 真实DEX在运行时解密 - 存储在 `.jiagu` 隐藏目录 2. **SO加密** - 4个架构的native库都加密 - 动态加载到内存 3. **字符串混淆** - XOR(16)加密所有关键字符串 - 1000+ native方法名混淆 ---
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
#问题讨论
#调试逆向
收藏
・
0
点赞
・
1
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
mb_zfqvurgb
这个讨论对我很有帮助,谢谢!
2026-2-16 13:56
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
git_70299heheiio
2
发帖
0
回帖
0
RANK
关注
私信
他的文章
[求助]双层加固壳如何逆向
3886
[求助]双层加固壳如何逆向
1693
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部