工具
- jadx
- frida-15.1.1
- charles
- postman
- 包名(Y29tLmRoZ2F0ZS5idXllcm1vYg==)
抓包
使用postman测试发现以上参数只需要sign和deviceId两个参数;
看sign参数位数猜测可能是MD5,deviceId的形式类似于uuid4(此处只是猜测)
解包后搜索相关参数
进去看看是不是我们需要的参数
继续追进去看看
hook一下这个方法试试
那么sign参数显而易见
最后我们追进去看一下deviceId参数
到这里已经显而易见了。。。
附件:
参数解密:
import hashlib
import uuid
def get_text(info):
k_list = list(info.keys())
k_list.sort()
m_str = ''
for key in k_list:
if isinstance(key, str):
m_str = m_str + key
else:
m_str = m_str + str(key)
if info[key] is None:
m_str = m_str + ""
elif isinstance(info[key], bool):
if info[key] is True:
m_str = m_str + 'true'
else:
m_str = m_str + 'false'
else:
m_str = m_str + str(info[key])
str_md5 = hashlib.md5((m_str + 'AA5D9E81').encode(encoding='utf-8')).hexdigest()
return str_md5.upper()
if __name__ == '__main__':
deviceId = uuid.uuid4()
dic = {
'shipToCountry': 'ANY',
'dspm': 'appen.sp.list',
'sinfo': '1',
'channel': 'dhgate',
'pageSize': '20',
'scht': 'ss1',
'language': 'en',
'deviceId': str(deviceId),
'version': '5.6.8',
'd1_session': '',
'pageNum': '1',
'filter': '1',
'adid': '',
'pageType': 'search',
'dispCurrency': 'USD',
'client': 'android',
'wholesalePrice': '0',
'key': 'ford'}
print(deviceId)
print(get_text(dic))
输出: