Hexo

  • 首页

  • 归档

逆向家长帮安卓app的sign算法

发表于 2019-12-15

抓包分析

手机登录处抓包

1

发现有个sign参数

1576386920790

用不同的手机号点击发送验证码,抓包发现每次sign都不同,于是猜这个sign肯定是在本地加密的,开始逆出它的算法。

脱壳

把apk解压出来,发现它只有一个dex文件,猜它是加了壳,用工具查壳

1576389630

该app用了360加固,加固的方式有加密apk文件与脱壳程序放到一起组合成一个dex文件,然后再动态解密和加载,还有指令抽取和最新的vmp加固

我这里脱壳用的是FDex2工具,其原理是利用xposed的hook框架,动态地把dex给dump下来,发现有10个dex,其中有一个是加壳的程序,于是用jadx打开每个dex,全局查找字符串接口user/vip/sendcode

1576391155(1)

找到了类com.deu.bang.interactor.GetValidateCodeApi

1576391327(1)

发现该sign是通过a.b()加密的,于是进一步查看

1576391447(1)

这里是获取时间和一段哈希值加上mobile和version的值转换成数组,用u.a()函数进一步加密

查看u.a()

1576391699(1)

这里是用MD5加密后再进行一系列的异或、与运算和移位操作,这样就逆出了sign的加密算法

用frida工具直接hook改手机号码

先hook com.eduu.bang.util.u的a函数查看它的参数,然后再hook改参数,这里也可以用xposed的hook框架,但是由于frida比较轻便,所以这里就选择了frida,这里直接改byte数组,手机号码改为13712345678,具体的脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import frida, sys

def on_message(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)

jscode = """
Java.perform(function () {
var MainActivity = Java.use('com.eduu.bang.util.u');
MainActivity.a.overload('[B').implementation = function () {
send("Hook Start...");
var arr = Java.use("java.util.Arrays");
console.log(arr.toString(arguments[0]));
var buf=[53, 98, 55, 99, 99, 57, 52, 99, 50, 56, 52, 102, 52, 100, 97, 100, 55, 52, 53, 101, 51, 52, 51, 100, 55, 100, 54, 54, 102, 97, 101, 101, 50, 48, 49, 57, 49, 50, 48, 49, 123, 34, 109, 111, 98, 105, 108, 101, 34, 58, 34, 49, 51, 55, 49, 50, 51, 52, 53, 54, 55, 56, 34, 44, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 34, 55, 46, 51, 34, 125];

return this.a(buf);


}
});
"""

process = frida.get_usb_device().attach('com.eduu.bang')
script = process.create_script(jscode)
script.on('message', on_message)
script.load()
sys.stdin.read()

1576392914(1)

1576392955(1)

由于这里是用frida工具把sign直接改了,所以抓包的时候我们只要改mobile为13712345678就行了

利用afl进行二进制漏洞挖掘
逆向火山小视频的发送短信、验证码登录、密码登录协议
  • 文章目录
  • 站点概览

GD

a GOOD pwner
14 日志
  1. 1. 抓包分析
  2. 2. 脱壳
  3. 3. 用frida工具直接hook改手机号码
© 2019 GD
由 Hexo 强力驱动 v3.7.1
|
主题 – NexT.Muse v7.3.0