hpp0hpp 发表于 2022-2-14 15:41

一个奇怪的native so的加密参数分析

本帖最后由 hpp0hpp 于 2022-2-14 15:52 编辑

最近碰到一个视频应用,有个so很奇怪,
这个apk的基本原理是,首先利用这个pp_hls.so,提供加密参数,永load函数获取到本地端口号

拿到视频m3u8地址, 然后加上127.0.0.1:端口号/resource.m3u8?src=视频地址.
so拿到视频地址后会加上加密参数wsSecret 去请求网络资源. 没有加密参数请求会redirect到一个默认地址.

奇怪点是这个so没有任何的load函数,甚至在unidbg加载后都找不到这个load函数.



IDA打开全是乱码函数


完全无从下手,也找不到哪里是处理网络请求的.

有大佬帮忙看看嘛?

https://ajk.lanzout.com/b00vb1lrc
密码:4sie

hpp0hpp 发表于 2022-2-21 10:50

15756164844 发表于 2022-2-20 16:37
这个是某草视频吧 本地调用这个so 总是返回-1不知道老哥你研究出没

就是个md5, 不过他们的加密视频只能用这个so代{过}{滤}理来播放. 其他的播放器不支持这种加密方式

hpp0hpp 发表于 2022-2-14 16:15

涛之雨 发表于 2022-2-14 16:09
看截图应该是混淆了,可以尝试动态调试?

静态的话,看一下导出的函数列表,有没有java_xx这种


用Unidbg加载后,jni_load过后,也没找到对应的函数.
着实无从下手,更何况是从网络请求时开始加密

涛之雨 发表于 2022-2-14 16:09

本帖最后由 涛之雨 于 2022-2-14 16:10 编辑

看截图应该是混淆了,可以尝试动态调试?

静态的话,看一下导出的函数列表,有没有java_xx这种
如果没有的话也可能是JNI_onload里动态绑定的,
可以尝试用frida去hook一下找堆栈(之类的)

漁滒 发表于 2022-2-14 21:13

函数名明显有混淆了。init或者initarray等时机都有可能出现解密

hpp0hpp 发表于 2022-2-14 22:13

漁滒 发表于 2022-2-14 21:13
函数名明显有混淆了。init或者initarray等时机都有可能出现解密

没有init或者initarray, 用unidbg加载了Jni_onload后也没有发现对应的函数

hpp0hpp 发表于 2022-2-15 22:30

有没有大佬感兴趣看一看吗?

15756164844 发表于 2022-2-20 16:37

这个是某草视频吧 本地调用这个so 总是返回-1不知道老哥你研究出没

15756164844 发表于 2022-4-2 12:37

本帖最后由 15756164844 于 2022-4-2 14:14 编辑

研究出来了嘛

hpp0hpp 发表于 2022-4-3 10:02

15756164844 发表于 2022-4-2 12:37
研究出来了嘛

研究出来了, 只能利用人家的so来设代{过}{滤}理了
页: [1] 2
查看完整版本: 一个奇怪的native so的加密参数分析