找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 145|回复: 0

Unidbg调用so学习

[复制链接]

2万

主题

159

回帖

17万

积分

管理员

积分
175707
发表于 2024-6-6 14:36:02 | 显示全部楼层 |阅读模式 IP:日本东京 Amazon数据中心

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Unidbg调用so学习

当我们使用抖音时,每一个操作都会通过HTTP请求与服务器进行交互,从而获取或者发送数据。这些HTTP请求包含了很多信息,这些信息就保存在请求头中。在这篇文章中,我们将一探请求头中的加密参数。


1. 什么是"六神"参数?

"六神"参数是抖音请求头中的六个核心参数,它们是:X-Ladon,X-Khronos,X-Argus,X-Gorgon,X-Helios,X-Medusa。这些参数对于识别用户设备以及获取用户相关的数据非常重要。

测试过程中发现一些特定的接口会对这6个参数进行验证,如何构造这些加密参数呢?


2. 如何生成这些参数?

这些参数的生成通常依赖于设备的一些硬件信息如IMEI、MAC地址等,以及软件信息如应用的安装时间、更新时间等。具体的生成算法可能会依赖于抖音的内部逻辑,可能涉及到一些复杂的哈希函数和加密算法。

分析了下,后发现关键算法在libmetasec_ml.so中,还原算法有一定难度,在这里,可以采用主动调用加密参数生成函数的办法,省时省力省心。

主动调用so中加密函数生成有好几种办法,frida-rpc、lsposed、自写代码加载so进行调用等等。

这里推荐使用unidbg框架,模拟Java虚拟机加载生成算法的so,并调用相关位置生成加密参数。


3. unidbg主动调用so中函数

创建模拟器实例,模拟32位或者64位

[JavaScript] 纯文本查看 复制代码
emulator = AndroidEmulatorBuilder.for64Bit().setProcessName("com.ss.android.ugc.aweme").build(); 

系统类库解析

[JavaScript] 纯文本查看 复制代码
final Memory memory = emulator.getMemory(); 
memory.setLibraryResolver(new AndroidResolver(29));

创建虚拟机

[JavaScript] 纯文本查看 复制代码
vm = emulator.createDalvikVM();

加载加载libttEncrypt.so到unicorn虚拟内存

[JavaScript] 纯文本查看 复制代码
DalvikModule dm = vm.loadLibrary(TempFileUtils.getTempFile("libmetasec_ml-23.9.0.so"), true);

手动执行JNI_OnLoad函c数

[JavaScript] 纯文本查看 复制代码
dm.callJNI_OnLoad(emulator);

初始化差不多就这样,接下来就是补环境,加载so后运行会提示找不到的方法签名,自行加上就行了。

[JavaScript] 纯文本查看 复制代码
public DvmObject<?> callStaticObjectMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
        //省略
        return super.callStaticObjectMethodV(vm, dvmClass, signature, vaList);
    }

 public DvmObject<?> callObjectMethodV(BaseVM vm, DvmObject<?> dvmObject, String signature, VaList vaList) {
        //省略
        return super.callObjectMethodV(vm, dvmObject, signature, vaList);
    }

传入url和请求头,得到结果:

[Objective-C] 纯文本查看 复制代码
{
"X-Ladon":"J6k8auF3LGw8gWhB6j2IAxFAS0GhPIFZ5GppELphx7nmIra6",
"X-Khronos":"1694251445",
"X-Argus":"qfXImGca75htu1c89fDAl+qZ/JLW2EhxGLvZnYDV+qlNPxmdc5lOwrQ2LC69uJUy/mb5evybJt6dCUn0u2kqg2EZ4kw8pLBUC9TIu4uEflkmeT6ULrMGZ7FItqRgNrSLPkO89Sc8kPYG6UR+pVeLRYKlI2ZwqTKKWT9Dbrfj3jI+vJh/YABDswJdVqk2NrCF0r8Xnr9SE6uK0sM2VCIF3DwDJDDjw7IyM9Ou5WCSe7fhQQ==",
"X-Gorgon":"840420f80000a85d3aaceedfbc768d3377c115c79fd782790d56",
"X-Helios":"YihYG23nqP0LdwRe42czwue5hX4CYAfxfUKXWcLDBAVMrqKe",
"X-Medusa":"tzn8ZINVaQiAS6b/Ue3hAX2BhUInFCE50FFmX4nhBm2n1IGgK3RW1L85wUZhQkuEwUJVxr5C4sUcrjJzD6o4WuaxpSAVCmUTiq/y+AkTXaTAQIfjqsrLBEs47NzzFaC0W7+0/VrAX5/3yAPIT90vmsJzO/BLENnOznJXA+U7LKy2I5WOEEn8OKGdQQnj00brMcpKPB2baPTjC0GVLSP1YegmHQlNx5fFzd+dfstzsO/Y6KJ6LrmjJ13FqAFwr2QAGWJ4NrlMMAmGUr/XNiwLx4t2JUbRt2Q6IRV400XEtjzGm15TrM13xPJoY+OnuozE5rTns1+fe+wxlETM5vnP23fxIM5dRQ=="
}




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-3-15 02:45

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表