吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6262|回复: 38
收起左侧

[Android 原创] 对某语(Ti)音(Mi)APP的简单分析

  [复制链接]
laos 发表于 2021-4-20 03:06
本帖最后由 laos 于 2021-4-20 04:33 编辑

某语音APP的简单分析

脱壳

  • 该APP使用某数字加固, 可直接使用r0ysue的frida dump脚本或者xposed 反射大师模块进行脱壳

抓包截图

几乎所有请求协议头都带有"pkg"以及"imei", 我们随便取一条数据测试.

微信截图_20210416102701

算法过程

jdax载入dex文件后, 直接搜索"pkg"定位到以下加密位置

调用pkg地方

我们先看下,imei的处理过程

aO.aO(com.taobao.accs.common.Constants.KEY_IMEI, str)

其中aO.aO()这个方法是添加数据到协议头, 而imei的值对应的是str,也就是Constants.IMEI, 直接在变量名上右键"查找用例"

imei

很直观就能确定到给imei赋值的地方, 再看加密方法名, 直接告诉了我们加密算法, 对手机imei进行md5而已

微信截图_20210416102007

import hashlib

imei = '35xxxxxxxx59503'
imei_md5 = hashlib.md5(imei.encode('utf-8')).hexdigest()
print(imei_md5)
# print('4761ec8e17c0f52bd25b7cba9343f972')

接着往下看"pkg"的加密过程

String headerPackage = SecurityLib.instance.getHeaderPackage(App.Ql());
        if (headerPackage == null) {
            headerPackage = "";
        }
 ab.a aO = Uj.Vw().aO("pkg", headerPackage.replaceAll(UMCustomLogInfoBuilder.LINE_SEP, "").replaceAll("    ", ""));

调用的是SecurityLib类下的getHeaderPackage方法进行处理 ,App.Ql()返回的是一个app对象

我们继续往下跟

QQ截图20210416103741

这里可以看出, 最终加密逻辑是在native层方法 libnative-lib.so下的getPackage

是时候祭出我们的神器IDA了, 打开它并载入libnative-lib.so

QQ截图20210420022408

这里别看代码这么长, 总结起来也就是一些字符串的赋值拼接而已

还有就是变量参数太多, 为了方便阅读, 可根据个人习惯修改命名

注:F5转C代码后,有些地方很难读懂, 就比如getAES传入的参数,我们切到汇编就很容易了

接着查看getAES

QQ截图20210420022643

查看aes密钥 "TiMi#Chat@2020"

QQ截图20210420022700

试着解密最后数据

QQ截图20210420025557

OK~

我们再验证之前的sha1也就是"s"的值是否正确...完美

QQ截图20210420030038

这个APP处理虽然简单,但没有借助frida objection之类的, 纯静态分析出来还是很满足的,哈哈哈


免费评分

参与人数 14威望 +1 吾爱币 +30 热心值 +12 收起 理由
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
君晓 + 1 so部分咋分析的啊
eddiecgc + 1 + 1 谢谢@Thanks!
不会逆向 + 1 谢谢@Thanks!
jerrylin + 1 我很赞同!
开始的复活节 + 1 + 1 我很赞同!
loveliveao + 1 + 1 谢谢@Thanks!
shiina0831 + 1 + 1 谢谢@Thanks!
℃偷心九月天丶 + 1 + 1 用心讨论,共获提升!
唐小样儿 + 1 + 1 热心回复!
Sintai + 1 + 1 谢谢@Thanks!
seeyou_shj + 1 谢谢@Thanks!
sdaza + 1 热心回复!
joneqm + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

氓之嗤嗤 发表于 2021-4-21 21:12
so部分咋分析的啊
djxding 发表于 2021-4-20 10:48
本帖最后由 djxding 于 2021-4-20 10:50 编辑

感谢分享,写得还是很详细。

能不能分析一下,现在的常见加固的签名校验呢?
比如,通过分析,能知道这个APP的签名校验是在哪个数据库so文件中,
再具体些的话,能不能分析到具体函数中去,是如何进行签名校验的等等。

特别想学这方面的知识啊。
现在的APP逆向,首先连签名校验都过不了,就没有办法继续啦——这是一个坎!


加奈绘 发表于 2021-4-20 08:19
seeyou_shj 发表于 2021-4-20 09:00
学习了!
zhao4840875 发表于 2021-4-20 09:01
看着不错!
mitchzh 发表于 2021-4-20 09:05
学习了,谢谢
ningg 发表于 2021-4-20 09:25
学习了,但没学会
kbqns2012 发表于 2021-4-20 09:27
学习一下,谢谢
nemonemone 发表于 2021-4-20 09:30
学习了,谢谢~~
tyosei 发表于 2021-4-20 09:36
感谢大佬分享,膜拜大佬
雨中独撑伞 发表于 2021-4-20 09:48
学到了,感谢楼主!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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