对于抓取app或者微信小程序的时候有一些参数是有时效性的,对于安卓App,我们可以反编译APK文件,通过读取源码找到相应的算法,对于微信小程序我们也可以通过读其js代码掌握算法。
但是这种反编译难度一般都很大,因为App都会有一些加壳或者Apk算法隐藏在.so二进制库内,微信小程序有的需要登陆获取token,生成token需要微信授权的code,所以这个思路的代价往往较高(掉头发)。
一般对于这种有时效性或者时效性久的的参数我们可以自动化模拟操作然后通过中间人(比如Fiddler或者mitmproxy),拦截HTTP(s)请求,然后从中获取需要的数据。
某微信小程序token值时效性大概1个小时,如图:
那么如何动态获取该参数呢,既然知道它的时效性为一小时,我们就可以定时动态的自动去获取该参数通过Fiddler的Custom Rules功能,我们可以在Custom Rules中添加脚本实现一些功能,官方文档:http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
首先:打开Fiddler -》点击Rules -》点击 Customize Rules进入 -- 如图:
然后找到OnBeforeRequest()方法和OnBeforeResponse()方法我们可以对它的请求和响应进行一些操作
可以添加一些功能对一些相应数据进行存储,如图:
然后在进行抓包的时候就会把相应的数据保存在文件内,如图:
然后用python读取文件,获取成功,如图: