Js注入检测函数咋办

JavaScript024

Js注入检测函数咋办,第1张

答:首先要截获检测函数的动态代码,动态执行js代码有两种方法,一是eval,二是function。

现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端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')")