方法栈
上一节我们说到了一个网站代码运行的时间轴:
加载html——加载js——js初始化——用户触发了某个事件——调用某段js—
—加密函数——向服务器发送信息(xhr的send)——接受服务器返回的数据—
—解密函数——刷新网页渲染
举一个例子来说说方法栈找断点去断xhr send的请求:
跟值
我们将程序断在向服务器xhr发送阶段,是距离加密阶段比较近的。加密阶段再去细分:明文-加密函数-密文
所以我们是可以找到加密函数的,甚至可以找到明文(如果方法执行后变量的值没有被更新改变,就有可能出现明文)
不显示就一个一个看值,看调用的函数,去找.
从这里向上跟值查找,也可以搜索相关变量的名字查看其内容
当然这里有一些技巧,比如方法栈中一些jQury的包是比较少的可能含有加密函数的(因为jQury毕竟是一个开源、庞大的库,对它改动的可能性还是比较小)
在我们跟值查找的时候,遇到一些字眼一定要提高警惕data key res Encrypt des
等等,这里面可能就是和加密函数直接相关的。在看到开始构造的时候也要提高警惕。
还有,在我们跟值时,已经跟到一个值的时候,就可以给他加一个断点,重新发起请求,看看什么情况。多试试。比如一个变量b里面可能储存的就是密文信息,那么我们就给含b的先加一个断点,重新发起请求,在断住以后,发现了b这个时候为空,那么就去搜索b= 看看给b赋值是在哪里,继续进行跟值查找。