现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端javascript代码加密隐藏起来,然后在运行时实时解密动态执行。
动态执行js代码无非两种方法,即eval和Function。那么,不管网站加密代码写的多牛,我们只要将这两个方法hook住,即可获取到解密后的可执行js代码。
注意,有些网站会检测eval和Function这两个方法是否原生,因此需要一些小花招来忽悠过去
使用js检测Cookie的话,可以让js执行定时任务,定期检测,我给你写段代码
方法一://使用jquery的cookie方法,之前必须引入jquery.cookie.js文件,在网上可以下载到//每隔1秒,执行cookie检测函数
setTimeout("checkCookie()",1000)
//检测cookie函数,如果cookie为空则跳转到登陆页
function checkCookie() {
if($.cookie("qqlogin") == "" || $.cookie("qqlogin") == null) {
window.location.href = "login.html"
}
}
方法二:使用js获取cookie
//定义一个函数,用来读取特定的cookie值
function getCookie(cookie_name) {
var allcookies = document.cookie
var cookie_pos = allcookies.indexOf(cookie_name) //要获取COOKIE的索引长度
//如果找到了索引,就代表cookie存在,
//反之,就说明不存在。
if (cookie_pos == '') {
window.location.href = "login.html"
}
}
// 调用函数
//每隔1秒,执行cookie检测函数
setTimeout("getCookie('getCookie')",1000)
注:方法二未经测试。
1.android中利用webview调用网页上的js代码。Android中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:mWebView.getSettings().setJavaScriptEnabled(true)mWebView.loadUrl("javascript:test()")2.网页上调用android中java代码的方法在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:mWebView.addJavascriptInterface(newObject(){publicvoidclickOnAndroid(){mHandler.post(newRunnable(){publicvoidrun(){Toast.makeText(Test.this,"测试调用java",Toast.LENGTH_LONG).show()}})}},"demo")在网页中,只需要像调用js方法一样,进行调用就可以b.c3.Java代码调用js并传参首先需要带参数的js函数,如functiontest(str),然后只需在调用js时传入参数即可,如下所示:mWebView.loadUrl("javascript:test('aa')")