zl程序教程

您现在的位置是:首页 >  APP

当前栏目

某圈app算法分析

2023-03-14 22:44:08 时间

一、抓包分析,经过多次对比,发现nonce和codeSign是会一直变的,access_token会随着device变化而变化


nonce=13d71ff8f23c431b9e298775adf626b5&codeSign=92C5C2C1F8217528EB1C0BF6D6BCC4D5&timestamp=1630298971591&data=%7B%22params%22%3A%7B%22password%22%3A%22a123456%22%2C%22username%22%3A%2215836353612%22%7D%7D&version=2.2.1&product_version=220&platform=HD1900&network=1&device=010067028741939&access_token=bba6034ed706e86bbb7e8e5049353a79&screen_width=1080&screen_height=1920&bbsnopic=0&system=2&system_version=25&theme=4

0a2653c851af460fa595bd959398a8f1.png


二、将该app拖进jeb进行分析


1、搜索"nonce",静态分析,v0来自UUID这个类,可以简单理解为取随机数


0eacb84100b54626af849e6b562bf92a.png


2、搜搜"codeSign",来自v.a函数,v0就是上面nonce值,v2是时间戳,跟进v.a()函数,在该函数头部下断,动态调试,v2={"params":


{"password":"a123456","username":"15865478952"}}


0eacb84100b54626af849e6b562bf92a.png

2e9b90b2ca334476abebe75bafe6eeaa.png4cebaac233b3433da32a72337a77fc60.png


3、v.a()函数是重载函数,参数不同,调用的方法不同,所以需要每个a函数都下断


0a2653c851af460fa595bd959398a8f1.png


4、af.b()函数,就是从资源里面找一个id为0x7F08010E对应的值,后面已经给我们提示就是94ac5cfb69e87bd7


0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png


5、fa.a()函数,就是将数据反转一下,就是将前面找到两个数据合并起来再反转一下,结果是844e9653bd05f0687db78e96bfc5ca49


0a2653c851af460fa595bd959398a8f1.png


6、r.a()函数,就是将得到的数据MD5一下


0eacb84100b54626af849e6b562bf92a.png


7、arg4就是nonce,arg6就是时间戳,arg5就是上面找到的v2,和起来的结果就是:


{"params":{"password":"a123456","username":"15836353612"}}13d71ff8f23c431b9e298775adf626b5844e9653bd05f0687db78e96bfc5ca491630298971591,然后md5一下,再转到大写


2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png


8、access_token就是r.a()函数,就是将device的值md5一下


0a2653c851af460fa595bd959398a8f1.png


禁止非法,后果自负