陌陌apk破解小结

东方盛慧科技大约 3 分钟androidandroid技术反编译

陌陌apk破解小结

尝试对陌陌通信数据进行解密,其它未做研究

一、结果

试图对陌陌通信数据进行解密,但未成功

二、暂时未有进展情况分析,尚需努力

通信信息使用了aes加密,且iv从底层so库获取,尚未做过尝试,破解难度较大;签名做了服务端校验,不太好绕过;

三、反编译操作流程

正常反编译操作
  1. 观察通信数据及接口

    下载apk 安装 打开charles代理观察接口请求及返回数据,除正常的URLEncode base64处理外,进行了加密

  2. 采用多个工具进行了 (apk解压->dex文件->jar文件->java文件)流程处理

  • smali2Java直接打开apk观察代码
  • 解压,dex2jar工具 转换dex文件为jar
  • 使用google的enjarify工具,转换多个dex到一个jar
  • 采用procyon对jar包解压,省去合并dex文件。采用idea打开,方便搜索及查看代码调用情况
  1. root手机查看数据库
正常代码观察
  1. 使用了腾讯的tinker热修复技术

  2. DBContentProvider对外提供数据访问

  3. 网络package: com.immomo.d com.immomo.protocol

    • com.immomo.d: 网络域名dns处理等
    • com.immomo.protocol: 具体请求及返回数据封装
  4. ip信息来源包:com.immomo.d.b.e

变量ip数组
a"58.83.184.37";"58.83.184.38";"58.83.184.39";
b58.83.184.30
c58.83.184.33
d58.83.184.29,211.151.23.140
e58.83.184.37,58.83.184.38,58.83.184.39
f58.83.184.34
g211.151.22.12,211.151.22.11,58.83.179.13
h58.83.207.11
i58.83.184.35,58.83.184.36
j58.83.184.26
kimgws.wemomo.comopen in new window,imgdnion.wemomo.comopen in new window,mom-img.qiniucdn.comopen in new window,7sz8t4.com1.z1.glb.clouddn.comopen in new window
lmomo-cdnst.qiniucdn.comopen in new window,cdnstalicdn.wemomo.comopen in new window,211.152.99.33,58.83.184.143
m211.151.23.149,58.83.184.27
n58.83.184.31,58.83.184.32
o"103.235.221.12
p103.235.221.12
相关解密类简单分析
  1. 得到信息如下:请求信息gzip压缩且加密,没有使用加固技术,代码混淆做的很好

  2. com.immomo.momo.util.cgopen in new window 得到一个公钥信息,授权用的hRPublicKey= AhPSLpY/T5MWXyt/QuWB7SM=

  3. 请求类:com.immomo.momo.protocol.a.a.b 该类为请求封装类,从异常信息看得出,信息采用了AES加解密,加密类也在相关utils包名中找到

  4. 解密需要知道:秘钥长度,秘钥,IV值,加密模式,PADDING方式

  5. 观察发现:IV值的获取是在libmjni.so库中取的

解决方法有二:
  1. 反编译libmjni.soopen in new window 还得研究下elf文件的反编译
  2. 在调用iv代码的地方,插入打印日志或弹出提示代码,重新打包签名看是否可以得到iv信息
方法二尝试:
  1. 重新签名后提示apk为盗版,显然做了签名校验,连接wifi但不联网不提示盗版,显然是做了服务端校验,具体的获取本地签名的代码还没找到
  2. 绕过获取签名的代码

四、破解感悟

android端的主要研究方向是对单个手机做一些事情,破解通信的初步目的是模拟网络请求,但该行为会受到服务端的监控,纯粹的通过客户端获取所有端(所有陌陌用户)的信息应该可能性不大,但可以做为其它破解方向(比如服务器攻击等)的辅助

上次编辑于:
贡献者: 雷勋