v380pro apk的分析

v380摄像头的apk某加密数据包分析

先展示成果,原始数据内容通过了gzip压缩、AES(CBC模式)加密、base64编码,反过来就可以进行解密了。

440bb350e19efe0a1875d507dca14c85_

先通过r0capture查看函数调用栈,然后在几个关键函数处,hook下来,打印对象值,看看具体是哪一块进行加密。发现call到a的过程中有一个加密。

ea4f083bd8f337a6af2f47321cec2ed9_

由于call函数的过程,涉及很多对象的初始化,数据其实也在其中进行初始化了,很难分析。

44a00f659e44e8aed78903fb2f2eb975_

这里因为打印某些对象的值(gson包),发现了加密后data属于BodyRequest的成员变量j。

0cbae3daf4b83043c88619535bff848b_

追踪这个j。

709b8770f19f671dfa0b002c16daf2a7_

判断j的赋值在Api.c(api)。这里又可以看到j的值由api.k得到的。

d4c09d3ffc515fa4654fbace709f3983_

继续追踪k。

0896cd869b7a3d63589fd05f418c88c5_

image-20250324104835752

1d2f14a451e917fbeb8602ade035485e_

搜索了一下,Kalle是一个开源sdk,body函数是用来填充负载部分的。

3e69a42994b597b0ae4483e739d98f1b_

b2cea87c97f306d4dd4b4125a2ad7f34_

这里很容易就知道AES_KEY和IV。

81a77f0fba59b744b843db4d595f8c6a_

直接用工具。

68c71f761cc84d618bc4a69b93defa06_

如果要尝试使用分析libapk0000.so,我觉得可以解密字符串,然后进行dump下来查看,大概就可以判断加密模式了,如果是自定义的加密模式,那可能真要逆向了。