泡泡手游
包名:com.zqhy.xiaomashouyou
版本号:8.3.7
最小安装版本:Android 5.0 (LOLLIPOP)
1、用pkid 检测无壳后,直接拖到模拟器中安装
2、打开chales 抓包, 点击登陆页面
输入 13888888888 和密码 :a12345678
获取到抓包信息
POST /index.php/App/index?api=login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 1309
Host: appapi-ns1.tsyule.cn
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.10.0
data=XB1a7vJ%252F8MevX%252FRKzC4%252FgcOZdZoVlYTAp0atBgQ03GlH4bzKnL849bBWanWnaDVik3A6VZ1X3lctmvp1kVYsNeNO8aWQu7qS72DGWAn%252BvQqBLYP%252FFCurvNdccpcYinyX3zP19wTpnZzx7%252BxKIicY%252BtOv8CR1uLbiJ2cWlDFsCUdI4YktTvaQ2bU3pL0rKvjzrCJKbRrEmOjDhsEbEyEFT8N0fxvFxswX6AazOCrDCyiUr1qf2ax9TLDDI9e82pD6GuTE7jbDNjZn1qVIy9rbOfLNjn6VNRGJOVSV%252BYYIQ0lYfOBJycYAHBh8l6pAu%252F6lOBN6y5eUXVgp2IzyNbyCOAmwsOyuV9vuxgTPNd2ux1JRi4tkE01WtBoOX7eC6wHDwDvzHEkAbPETNHRykH6X8A%252F1nDwq6p5ko94bg5pW3KyX%252F8WoQ0i3C6dup2EVxmmdr9aq3n3VXvrBNSDUKW2OIw1IQ%252Fh9J%252FBSqOj9d9OSFX%252BhUJrS2mpWfQ%252FMmBSOuspjVGntMhE1RYvQxU94pr8I20U4aWDyMrkj3I%252BOPYUNu19XsAJCmLQEHg%252Fk9LMfD1Wfvz%252BkCPSEuQi%252BqRGl21az4bAuHeC4k3xQNTlE13p9tNdpbElSDOmb35Ti5DkSKM5kjCRdBzC0%252Bzc%252BGFYseboSl92DCSDnrBKd%252FBJuqahCocYDnaUNIAJ0BfBgOq8pydFApc6pOmDwcXNYRctztelAI%252FE8%252FD9%252B8HhdVAH6xv%252FYb4SCjU5d5idzqzhYUPui7v%252BEA4AtNkThMT1Ff9YZjpk2rH6377JGVIxRLE9crrwwrdl9Z8JWIamMSvtq02PmWDNXmMMzns7olk709q%252F6pJFSeyoTGhQRxr91cp99Y8XJpTObaXu91WgWw0HCBhk0ttrg5gqGq225ebaA6JMzJKCJVmC%252FmNFmHrQrUsDe2C2lin67xQsG6JmClWZyiceydI236JK2YZPNL1P4rCo9X0flDVmmGAefZw4asep1hgNlEHEmUL3qqYEbFUqaXf1xgKnB1W%252FEuY3pqfdwBy8QWJrRmd8lyUC3xKH6og%252Bir6MhpvybezPTvHZ%252BKkggnj%252B6so60QIlSKsJlPWreRfVuOyLXD2a3Nv3xQZbw%252BfHhkVQGAILm4BXLIroDOtkXUbFn21Vvpm1S7aWrtdo%253D
发现信息:
可以看到 post提交了 一个json 数据
数据为 data 已经做了URL编码的 base64
那么可以想到的是,数据有可能是直接通过 账号密码组合 加上 设备的一些信息 直接进行的加密
也有可能是 AES des 或者是 RSA 等 加密算法
打开 jdax-gui 进行 关键词搜索分析
因为 抓包数据中没有 看到有一些 特别好的关键词搜索
data 数据包这个关键词 太普遍,搜索到的数据肯定很多
所以直接用 URL地址的 一些参数进行搜搜试试看
直接搜索login 试试看
直接就出现了300+的数据
在根据 上面的api 等一些参数的结合
可以定位到这个一行 可能是关键点
双击进入后,可以明显的看到 username 和 password 等字样,
那么大概率就是这里了
点击 a函数 进入 treemap 里面看看 ,还有哪些参数
看看是否是直接base64编码的
跳到a 函数定义的地方,可以看到 data 的 json 关键词参数名
那么 a(map) 这个就是我们需要的数据了,继续按住ctrl 点击跳转
跳转过去a函数后,可以看到密密麻麻的一些参数 ,有些是获取设备的参数,有些估计是系统去做随机处理的参数。
那么我们直接去进行分析这些参数肯定是有问题的,
所以 直接找到加密的点 进行反推至关重要
return URLEncoder.encode(com.zqhy.app.network.d.c.a(com.zqhy.app.network.d.a.a(map)), com.alipay.sdk.sys.a.m);
在最后发现了返回值
URLEncoder.encode 是在进行URL编码
那么 com.zqhy.app.network.d.c.a 这个函数 就应该是 加密的数据的地方了
进入进入看看
在这里 就可以看到 加密的算法 和 密钥 模式等
SecretKey generateSecret = SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec("qn%49E&E".getBytes()));
Cipher instance = Cipher.getInstance("DES/CBC/PKCS5Padding");
instance.init(1, generateSecret, new IvParameterSpec("qn%49E&E".getBytes()));
return b.a(instance.doFinal(bArr));
DES算法
密钥是:qn%49E&E
加密模式是 CBC
填充方式是 PKCS5Padding
知道了加密算法,那么 对 刚才抓包的数据就可以进行解密操作
先通过 精易软件 进行URL解码:
原数据:
XB1a7vJ%2F8MevX%2FRKzC4%2FgcOZdZoVlYTAp0atBgQ03GlH4bzKnL849bBWanWnaDVik3A6VZ1X3lctmvp1kVYsNeNO8aWQu7qS72DGWAn%2BvQqBLYP%2FFCurvNdccpcYinyX3zP19wTpnZzx7%2BxKIicY%2BtOv8CR1uLbiJ2cWlDFsCUdI4YktTvaQ2bU3pL0rKvjzrCJKbRrEmOjDhsEbEyEFT8N0fxvFxswX6AazOCrDCyiUr1qf2ax9TLDDI9e82pD6GuTE7jbDNjZn1qVIy9rbOfLNjn6VNRGJOVSV%2BYYIQ0lYfOBJycYAHBh8l6pAu%2F6lOBN6y5eUXVgp2IzyNbyCOAmwsOyuV9vuxgTPNd2ux1JRi4tkE01WtBoOX7eC6wHDwDvzHEkAbPETNHRykH6X8A%2F1nDwq6p5ko94bg5pW3KyX%2F8WoQ0i3C6dup2EVxmmdr9aq3n3VXvrBNSDUKW2OIw1IQ%2Fh9J%2FBSqOj9d9OSFX%2BhUJrS2mpWfQ%2FMmBSOuspjVGntMhE1RYvQxU94pr8I20U4aWDyMrkj3I%2BOPYUNu19XsAJCmLQEHg%2Fk9LMfD1Wfvz%2BkCPSEuQi%2BqRGl21az4bAuHeC4k3xQNTlE13p9tNdpbElSDOmb35Ti5DkSKM5kjCRdBzC0%2Bzc%2BGFYseboSl92DCSDnrBKd%2FBJuqahCocYDnaUNIAJ0BfBgOq8pydFApc6pOmDwcXNYRctztelAI%2FE8%2FD9%2B8HhdVAH6xv%2FYb4SCjU5d5idzqzhYUPui7v%2BEA4AtNkThMT1Ff9YZjpk2rH6377JGVIxRLE9crrwwrdl9Z8JWIamMSvtq02PmWDNXmMMzns7olk709q%2F6pJFSeyoTGhQRxr91cp99Y8XJpTObaXu91WgWw0HCBhk0ttrg5gqGq225ebaA6JMzJKCJVmC%2FmNFmHrQrUsDe2C2lin67xQsG6JmClWZyiceydI236JK2YZPNL1P4rCo9X0flDVmmGAefZw4asep1hgNlEHEmUL3qqYEbFUqaXf1xgKnB1W%2FEuY3pqfdwBy8QWJrRmd8lyUC3xKH6og%2Bir6MhpvybezPTvHZ%2BKkggnj%2B6so60QIlSKsJlPWreRfVuOyLXD2a3Nv3xQZbw%2BfHhkVQGAILm4BXLIroDOtkXUbFn21Vvpm1S7aWrtdo%3D
URL解码数据:
XB1a7vJ/8MevX/RKzC4/gcOZdZoVlYTAp0atBgQ03GlH4bzKnL849bBWanWnaDVik3A6VZ1X3lctmvp1kVYsNeNO8aWQu7qS72DGWAn+vQqBLYP/FCurvNdccpcYinyX3zP19wTpnZzx7+xKIicY+tOv8CR1uLbiJ2cWlDFsCUdI4YktTvaQ2bU3pL0rKvjzrCJKbRrEmOjDhsEbEyEFT8N0fxvFxswX6AazOCrDCyiUr1qf2ax9TLDDI9e82pD6GuTE7jbDNjZn1qVIy9rbOfLNjn6VNRGJOVSV+YYIQ0lYfOBJycYAHBh8l6pAu/6lOBN6y5eUXVgp2IzyNbyCOAmwsOyuV9vuxgTPNd2ux1JRi4tkE01WtBoOX7eC6wHDwDvzHEkAbPETNHRykH6X8A/1nDwq6p5ko94bg5pW3KyX/8WoQ0i3C6dup2EVxmmdr9aq3n3VXvrBNSDUKW2OIw1IQ/h9J/BSqOj9d9OSFX+hUJrS2mpWfQ/MmBSOuspjVGntMhE1RYvQxU94pr8I20U4aWDyMrkj3I+OPYUNu19XsAJCmLQEHg/k9LMfD1Wfvz+kCPSEuQi+qRGl21az4bAuHeC4k3xQNTlE13p9tNdpbElSDOmb35Ti5DkSKM5kjCRdBzC0+zc+GFYseboSl92DCSDnrBKd/BJuqahCocYDnaUNIAJ0BfBgOq8pydFApc6pOmDwcXNYRctztelAI/E8/D9+8HhdVAH6xv/Yb4SCjU5d5idzqzhYUPui7v+EA4AtNkThMT1Ff9YZjpk2rH6377JGVIxRLE9crrwwrdl9Z8JWIamMSvtq02PmWDNXmMMzns7olk709q/6pJFSeyoTGhQRxr91cp99Y8XJpTObaXu91WgWw0HCBhk0ttrg5gqGq225ebaA6JMzJKCJVmC/mNFmHrQrUsDe2C2lin67xQsG6JmClWZyiceydI236JK2YZPNL1P4rCo9X0flDVmmGAefZw4asep1hgNlEHEmUL3qqYEbFUqaXf1xgKnB1W/EuY3pqfdwBy8QWJrRmd8lyUC3xKH6og+ir6MhpvybezPTvHZ+Kkggnj+6so60QIlSKsJlPWreRfVuOyLXD2a3Nv3xQZbw+fHhkVQGAILm4BXLIroDOtkXUbFn21Vvpm1S7aWrtdo=
然后通过 wt软件进行 解密操作
最终获取到的数据:
1subtd=7af5e686ddf77c22&api=login&appid=995011&client_type=1&device_id=7af5e686ddf77c22002233fb&device_id_2=2318646454b500733f3d9d1293512cc6&imei=865166028263419&ip=172.16.1.112&is_special=0&mac=please+open+wifi&oaid=&oldtgid=ga8104004&password=a12345678&reyun_device_id=unknown&sign=1BB9562722842A8533BA54986B4F663E&tgid=ga8104004&ts_device_brand=HUAWEI&ts_device_id=a80fc043-02dc-33af-afb9-b9ae1d2e2e89&ts_device_id_2=7af5e686ddf77c22002233fb&ts_device_model=TAS-AL00&ts_device_version=7.1.2&ts_device_version_code=25&ts_imei=865166028263419_865166028263419_865166028263419&ua=Mozilla%2F5.0+%28Linux%3B+Android+7.1.2%3B+TAS-AL00+Build%2FN2G48C%3B+wv%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Chrome%2F68.0.3440.70+Mobile+Safari%2F537.36&umeng_device_id=865166028263419&username=13888888888&uuid=7af5e686ddf77c22002233fb&vc=1&version=83700
URL解码后的数据:
1subtd=7af5e686ddf77c22&api=login&appid=995011&client_type=1&device_id=7af5e686ddf77c22002233fb&device_id_2=2318646454b500733f3d9d1293512cc6&imei=865166028263419&ip=172.16.1.112&is_special=0&mac=please+open+wifi&oaid=&oldtgid=ga8104004&password=a12345678&reyun_device_id=unknown&sign=1BB9562722842A8533BA54986B4F663E&tgid=ga8104004&ts_device_brand=HUAWEI&ts_device_id=a80fc043-02dc-33af-afb9-b9ae1d2e2e89&ts_device_id_2=7af5e686ddf77c22002233fb&ts_device_model=TAS-AL00&ts_device_version=7.1.2&ts_device_version_code=25&ts_imei=865166028263419_865166028263419_865166028263419&ua=Mozilla/5.0+(Linux;+Android+7.1.2;+TAS-AL00+Build/N2G48C;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/68.0.3440.70+Mobile+Safari/537.36&umeng_device_id=865166028263419&username=13888888888&uuid=7af5e686ddf77c22002233fb&vc=1&version=83700
这里可以看到 写的手机号码 和尼玛 等数据
但是 不知道为啥 有不可显示字符,
1subtd=7af5e686ddf77c22
api=login
appid=995011
client_type=1
device_id=7af5e686ddf77c22002233fb
device_id_2=2318646454b500733f3d9d1293512cc6
imei=865166028263419
ip=172.16.1.112
is_special=0
mac=please+open+wifi
oaid=
oldtgid=ga8104004
password=a12345678
reyun_device_id=unknown
sign=1BB9562722842A8533BA54986B4F663E
tgid=ga8104004
ts_device_brand=HUAWEI
ts_device_id=a80fc043-02dc-33af-afb9-b9ae1d2e2e89
ts_device_id_2=7af5e686ddf77c22002233fb
ts_device_model=TAS-AL00
ts_device_version=7.1.2
ts_device_version_code=25
ts_imei=865166028263419_865166028263419_865166028263419
ua=Mozilla/5.0+(Linux;+Android+7.1.2;+TAS-AL00+Build/N2G48C;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/68.0.3440.70+Mobile+Safari/537.36
umeng_device_id=865166028263419
username=13888888888
uuid=7af5e686ddf77c22002233fb
vc=1
version=83700
一共数了一下 29个参数点
参数还是挺多的
然后发现 还有一个 sign 参数是加密
应该是一个MD5的算法 可以直接用 frida hook 一下就行