高级爬虫是应对反爬的,所以js爬虫是高级水平。
掌握了加密算法且可以将加密的密文进行解密破解的,也是我们从一个编程小白到大神级别的一个质的飞跃,且加密算法的熟练程度和剖析也是有助于我们实现高效的js逆向。
解密后eval那段的原文如下(是一个解密函数):
function uncodeStr(str){str=str.replace(/\^/g,"%")//把原来字符串里的~符号替换成%号
var str_len=str.length-1//后面数组循环时的最大下标
var i
var encodeStr=''
for(i=str_leni>=0i--){//这个循环是将密文倒转过来
encodeStr+=str.substr(i,1)
}
return decodeURI(encodeStr) //使用decodeURI解密
}
var aaa___ 就是获取的uncodeStr函数运算后的结果。
通过解密过程可以反推出加密过程如下:
获取需要字符串s
使用encodeURI(s)将一些特定符号替换为编码,如空格替换为%20,得到一个新的字符串
将新的字符串反转(第一位变为最后一位,第二位变为倒数第二位。。。。以此类推)
将反转后的字符串里的百分号(%)用波浪线替换后就得到密文了。