jvmeiyoupin antifraud_sign參數(shù)

(簡書封的越來越厲害了)

App: jvmeiyoupin
登錄接口有一個antifraud_sign, 通過抓包克制始終變的就這一個,


j0.png

jadx打開apk, 搜索該參數(shù), 巴拉巴拉的就不贅述了:

#com.jm.android.jumei.baselib.jmtoken.SignBean
#com.jm.android.jumei.b.a
#com.jm.android.jumei.baselib.jmtoken.BaseJuMeiSign.j
#com.jm.android.jumei.baselib.jmtoken.BaseJuMeiSign.a(String s, String charset)
#com.jm.android.jumei.baselib.jmtoken.DesToolProxy.b
#com.jm.android.jmtoken.DesTool.b

hook a(String s, String charset)得到:

a:3:c|7:c|123:a|131:c|150:b|160:c|177:video2t5|179:video3t1|186:video4t9|191:c|666:a|703:wvgre_a|909:a|1001:a|1200:a5|1300:normal|1302:a5|1806:normal|1807:e|1808:a9|1809:a9|1810:normal|6680:a|9081:c|9108:videofeeda|9902:e534de2e7cf5b4d2308.759nexus 6phuawei6.0.1on1080j8qfZp+O3VfjvwMMAsqg==androidgoogleNexus 6PphoneGTPushbjqq-appstoreYNrYsUX5ecgDAEccNYA9uI6H131152111144541625028605d31f0c6ba4030cd731a424777b1b2481v:v3
b:UTF-8
q結(jié)果:d58c1ca0572397686eb83f258bf64280

也就是參數(shù)a的MD5加密, a參數(shù)就是我們抓包的form每一項拼起來的str,
hook DesToolProxy.b,

a:4538791e1fad57445a5ccbdb5d85f0c2
q結(jié)果:54475daf1e19783542c0f58d5bdbcc5a

也就是將str加密后在處理得到的一串32位str,
我們看DesTool.b方法


j1.png

IDA打開so文件,


j3.png
j4.png
j5.png

通過幾次抓包, 比較每次字符串的關(guān)系, 得到如下規(guī)則

#新str每位的索引:舊str每位的索引
0:16
1:15
2:14
3:13
4:12
5:11
6:10
7:9
8:8
9:7
10:6
11:5
12:4
13:3
14:2
15:1
16:0
17:31
18:30
19:29
20:28
21:27
22:26
23:25
24:24
25:23
26:22
27:21
28:20
29:19
30:18
31:17
#Python代碼
_str=f'3:c|7:c|123:a|131:c|150:b|160:c|177:video2t5|179:video3t1|186:video4t9|191:c|666:a|703:wvgre_a|909:a|1001:a|1200:a5|1300:normal|1302:a5|1806:normal|1807:e|1808:a9|1809:a9|1810:normal|6680:a|9081:c|9108:videofeeda|9902:e534de2e7cf5b4d2308.759nexus 6phuawei6.0.1on1080j8qfZp+O3VfjvwMMAsqg==androidgoogleNexus 6PphoneGTPushbjqq-appstoreYNrYsUX5ecgDAEccNYA9uI6H131{phone}{time_s}d31f0c6ba4030cd731a424777b1b2481v:v3'
ef get_md5(_str):
    md5 = hashlib.md5()
    md5.update(_str.encode('utf_8'))
    str_arg = md5.hexdigest()
    return str_arg

def revertStr(_str):
    _str=get_md5(_str)
    _str0=''
    for i in range(16,-1,-1):
        _str0+=_str[i]
    for i in range(31,16,-1):
        _str0+=_str[i]
    return _str0

得到的結(jié)果用在data請求就可以了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容