0%

猫耳FM(MissEvan)加密参数破解代码及接口汇总

猫耳FM(MissEvan)加密参数破解代码及接口汇总

这次找了个简单的app来练练手,小众app逆向起来还是简单的,猫耳的app既没有壳有没有native层,仅仅只有一个加密参数,这里就直接上代码了。

通用headers:

header = {
'user-agent': 'MissEvanApp/5.5.0 (Android;5.1.1;Android OPPO R17 Pro shamu)',
'channel': 'missevan_huawei',
'Content-Type':'application/json; charset=UTF-8',
'Accept':'application/json',
'cookie': 'token=xxx; equip_id=xxx',// token为账号的标识(没有则去除),equip_id为deviceid
'authorization': '',//这个就是加密参数,生成代码看下面
'x-m-date': '2021-03-23T16:08:44Z',// 时间,可传空字符串
'x-m-nonce': '62271935-318e-4ff1-ba91-685579a9cdbc'// nonce,可传空字符串
}

authorization参数生成代码(python):

# 此方法的实参为url,请求方法(GET与POST),请求头与请求体(是GET可不传)
def fun(url,method,header,body):
data = ''
qs = url.split('?')[1] if len(url.split('?')) > 1 else ''
url = urllib.parse.quote(url.split('?')[0])
equip_id = re.findall(r'equip_id=(\S+?);',header['cookie'])[0] if re.findall(r'equip_id=(\S+?);',header['cookie']) else re.findall(r'equip_id=(\S+?)$codeholder_1#39;,header['cookie'])[0]
token = re.findall(r'token=(\S+?);',header['cookie']) if re.findall(r'token=(\S+?);',header['cookie']) else re.findall(r'token=(\S+?)$codeholder_1#39;,header['cookie'])
token = token[0] if len(token) else None

data += method + '\n'
data += url + '\n'
data += qs + '\n'
data += 'equip_id:' + equip_id + '\n'
if token != None:
data += 'token:' + token + '\n'
data += 'x-m-date:' + header['x-m-date'] + '\n'
data += 'x-m-nonce:' + header['x-m-nonce'] + '\n'
if method == 'POST':
sha = sha256()
sha.update(body.encode('utf-8'))
body = base64.b64encode(sha.digest()).decode('utf-8')
data += body + '\n'

signature = base64.b64encode(hmac.new(appsecret.encode('utf-8'), data.encode('utf-8'), digestmod=sha256).digest())
# 这里直接将参数传进请求头中
header['authorization'] = 'MissEvan '+signature.decode('utf-8')

接口:

1.https://app.missevan.com/sound/sound?sound_id=xxx

获取音频资源地址,sound_id参数为音频的id

2.https://app.missevan.com/you-might-like/get-recommends?persona_id=xxx

”猜你喜欢“列表,persona_id参数意义不明,不过不同数字返回不同列表

3.https://app.missevan.com/drama/get-drama-by-sound?sound_id=xxx

音频相关信息,sound_id参数为音频的id

4.https://app.missevan.com/message/get-comments?order=1&type=1&e_id=xxx&page=1&page_size=20&recommend=1&recommend_page_size=10

音频评论列表,e_id参数为音频的id,page与page_size参数指定列表页数与大小

5.https://app.missevan.com/sound/recommend?sound_id=1226753

音频相关推荐列表,sound_id参数为音频的id

6.https://app.missevan.com/member/login

登录,此api为post方法,请求体为如下字符串:

account=xxx&password=xxx

account为你的手机号,password为密码,会返回token以及用户信息,将token加入cookie中则可使用账号访问

7.https://app.missevan.com/person/get-user-info?user_id=5922770

用户信息1,user_id参数为用户id

8.https://app.missevan.com/person/homepage?user_id=5922770

用户信息2,user_id参数为用户id