-
-
[原创] 某宝系某麦SecurityGuard libsgmain签名Unidbg模拟执行实战
-
-
[原创] 某宝系某麦SecurityGuard libsgmain签名Unidbg模拟执行实战
首先感谢几位前辈的文章
https://bbs.kanxue.com/thread-290068.htm
https://bbs.kanxue.com/thread-287899.htm
https://bbs.kanxue.com/thread-277006-1.htm
在前辈们优秀的文章启发下,作为一个小白配合大模型使用gemini+claude 花了三天时间实现了x-sign
物料:
frida
IDA pro(没玩明白)
unidbg 0.9.8(必须用这个 别用最新版)
root安卓真机+模拟器
0x00 前言
在移动端逆向领域,阿里系的 SecurityGuard (无线安全组件) 始终是一座绕不开的大山。无论是某宝、某猫还是某麦,其核心业务接口都由 libsgmainso 守护。
该组件集成了极其复杂的指令混淆(LLVM-Obfuscator)、自解密插件、环境指纹扫描以及严苛的 anti-debug 策略。传统的 IDA
静态分析在这种“黑盒”面前效率极低。本文将分享如何利用 Unidbg 构建一套完整的模拟执行环境
---
0x01 环境准备:资产的“外科手术式”提取
SecurityGuard 并非独立的 SO,它是一个依赖物理环境的“生态系统”。更新版本后,必须从真机拉取以下关键资产:
1. 引擎层: libsgmainso-6.7.250903.so
2. 图腾层(Totem):yw_1222_27.jpg 作为密钥种子。
3. 插件层(SGLib): app_SGLib这里存放着下发的 DEX 插件和 AVMP 引擎数据。
---
所有的安全操作最终都会收敛到一个 Native 函数:doCommandNative
通过 Frida 挂钩这个函数,我们可以观察到一个极其关键的特性:状态累积(State Accumulation)。你不能直接调用 70102
(签名指令),必须先按顺序喂给它初始化指令。
实战捕获的初始化序列一共使用了 22 个:
环境初始化与密钥图片加载。
生成longToken。
生成 authToken
最终签名,产出 Map 结果。
---
[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!