type
status
date
slug
summary
tags
category
icon
password
1、user-lc
生成处
.png?table=block&id=1bf075e5-55cd-4f96-96c1-b191c48f142d&t=1bf075e5-55cd-4f96-96c1-b191c48f142d&width=1104&cache=v2)
跟到里面,发现个native方法encrypt
.png?table=block&id=23e5bbef-f5a1-47b4-a750-3be95e16a781&t=23e5bbef-f5a1-47b4-a750-3be95e16a781&width=1104&cache=v2)
IDA查看下,其中int传的是0,走的是下面。
.png?table=block&id=479360cc-d230-4c76-bcdf-3e34b6e7ad45&t=479360cc-d230-4c76-bcdf-3e34b6e7ad45&width=1104&cache=v2)
2、info
.png?table=block&id=6bbde2bc-786c-45d3-8fad-57526077b5e9&t=6bbde2bc-786c-45d3-8fad-57526077b5e9&width=1104&cache=v2)
跟进去发现最里面是个AES,然后外面套了一个encodeToString,java实现的话如下。

3、q
.png?table=block&id=2f54d92f-3cbc-4aa5-b054-1e5812ee591f&t=2f54d92f-3cbc-4aa5-b054-1e5812ee591f&width=1104&cache=v2)
hook一下
.png?table=block&id=68ebe23e-ce38-4b9c-ab57-f169b39806f0&t=68ebe23e-ce38-4b9c-ab57-f169b39806f0&width=1104&cache=v2)
看了下代码发现是base64
4、sign
str9是一个固定值加上时间戳,然后进行md5,之后传入so进行加密。
.png?table=block&id=9b72dda6-3630-43aa-94ba-8ebad5f7c793&t=9b72dda6-3630-43aa-94ba-8ebad5f7c793&width=1104&cache=v2)
.png?table=block&id=20699ac9-405a-4d09-b144-dccd61f56cf1&t=20699ac9-405a-4d09-b144-dccd61f56cf1&width=1104&cache=v2)
ida看下so中的逻辑,doEn里面看起来很像AES加密
.png?table=block&id=92810a30-b509-416f-9548-824554a7a6f8&t=92810a30-b509-416f-9548-824554a7a6f8&width=1104&cache=v2)
这三处de猜测是字符串还原。
.png?table=block&id=c9e8a3c0-cd70-4e1c-b131-60db1113fcdf&t=c9e8a3c0-cd70-4e1c-b131-60db1113fcdf&width=1104&cache=v2)
python还原一下
.png?table=block&id=4460bdb8-afd6-42a4-a8a8-a6d5d6df4159&t=4460bdb8-afd6-42a4-a8a8-a6d5d6df4159&width=1104&cache=v2)
D@V*@FG*UNFV2Udaalkb = AES/ECB/PKCS7Padding GF = BC 确定好是AES,于是去找秘钥,发现是在getRandomKey处生成的。采用frida hook一下,用python还原一下就可。
.png?table=block&id=0992de36-5478-48ba-b61b-98fefc6e8df5&t=0992de36-5478-48ba-b61b-98fefc6e8df5&width=1104&cache=v2)
- 本案例仅做分析参考,如有侵权请联系删除
- 作者:404False
- 链接:https://blog.404nofoundx.top//article/f2a8c9a0-8190-4628-8047-501052437fef
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。