Lazy loaded image
安卓逆向
某b社交类APP gsid
字数 897阅读时长 3 分钟
2022-1-14
2024-7-5
type
status
date
slug
summary
tags
category
icon
password

一、目标参数

gsid

二、抓包

notion image
表单里面必要的几个参数checktoken、mfp、appkey,其中appkey是固定值。
notion image

1、checktoken

jadx搜索checktoken,跟进去发现个b方法,用r0tracer hook一下这个方法,根据抓包对应下发现是uid+ "/" + did+ "/" + "obiew"拼接后传入ai.a中。
notion image
跟进去ai.a方法里面,发现个关键字md5。
notion image
测试一下。标准的md5。
notion image

2、mfp

jadx直接搜索mfp,找到关键点,分别hook下查看参数及返回值。
notion image
notion image
生成的主要位置如下图,底下标出了encryptRsa,可能是个RSA,再看下。
notion image
注意这里看这个a方法时候,jadx有可能出现下面的情况,可以换个版本试试或者用jeb查看java代码。
notion image
notion image
Cipher类为加密和解密提供密码功能。它构成了Java Cryptographic Extension(JCE)框架的核心。
  • Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding") 参数String transformation的格式是“算法/工作模式/填充模式”,不同的算法支持不同的工作模式以及填充模式。
  • c.init(1, g.b(arg12)); public final void init(int opmode, Certificate certificate) // 用取自给定证书的公钥初始化此Cipher对象
  • v1_1.doFinal(v11_1, v9, v12_1); // 按单部分操作加密或解密数据,或者结束一个多部分操作
公钥找到了,用Python或者Java还原一下就可以了,测试了下,校验无误。
notion image
Python还原一下checktoken和mfp,初始化的时候无uid直接传空就行,第一次注册会返回uid,接下来看did。
notion image

3、did

jadx搜索,然后结合Frida和抓包,找到did生成的地方,是一个native方法。
notion image
notion image
Frida主动调用下。
notion image
ida查看,静态注册
notion image
首先修改参数名称方便分析。
notion image
从下往上分析
notion image

3、1 MDString

Hook一下MDString,验证一下是md5
notion image

3、2 sub_28B0

md5(str2+"20220118"+"haogtaok")
notion image
genCheckId只是把传值进行了拼接
notion image
最后发现did就是,传值的md5就可以了(qaq),有能力的同学可以自己分析下,checktoken和mfp放在末尾,感兴趣的同学可以自己动手做下。 公众号传送门
notion image
  • 本案例仅做分析参考,如有侵权请联系删除
上一篇
某k新闻类APP sign
下一篇
某s社交类APP shield

评论
Loading...