通过编写chrome插件实现js inline-hook.
去除某考试网站在线考试切屏限制.
环境
过程
1.打开考试网站,切屏,发现有切屏检测.
1638162090(1).jpg (67.93 KB, 下载次数: 0)
下载附件
2021-11-30 01:05 上传
2.打开控制台,全局搜索window.onblur.(window.onblur是浏览器失去焦点是执行的函数).
1638162358(1).jpg (140.22 KB, 下载次数: 0)
下载附件
2021-11-30 01:05 上传
3.格式化代码,保存到本地.
1638202355(1).jpg (111.19 KB, 下载次数: 0)
下载附件
2021-11-30 01:06 上传
4.将所有的window.onblur的函数返回空.
1638200851(1).jpg (20.51 KB, 下载次数: 0)
下载附件
2021-11-30 01:06 上传
5.编写chrome扩展,拦截并替换原js文件.
js/background.js
// 监听发送请求
chrome.webRequest.onBeforeRequest.addListener(
function (details) {
console.log(details.url);
// 匹配特定的路径
if (details.url.startsWith('https://kc.zhixueyun.com/scripts/exam-6')) {
return {
//替换为已经修改后的js文件
redirectUrl: chrome.extension.getURL("js/exam.js")
};
}
},
{
urls: [""],
types: ["script"]
},
["blocking"]
);
manifest.json
{
"manifest_version": 2,
"name": "网大考试",
"version": "1.0",
"description": "网大考试_Shocker",
"background": {
"scripts": [
"js/background.js"
]
},
"permissions": [
"downloads",
"*://kc.zhixueyun.com/#/exam/*",
"webRequest",
"webRequestBlocking",
"notifications"
],
"web_accessible_resources": [
"js/*"
]
}
manifest.json的配置
可以参考这篇文章:
chrome拓展开发实战:页面脚本的拦截注入
https://www.cnblogs.com/horve/p/4672890.html
写在最后
部分代码参考
1.chrome拓展开发实战:页面脚本的拦截注入
https://www.cnblogs.com/horve/p/4672890.html
2.chrome浏览器拓展——js脚本拦截及注入
https://github.com/Horve/js-inject
3.Chrome扩展及应用开发
https://github.com/Sneezry/chrome_extensions_and_apps_programming
代码示例
github地址:
https://github.com/PShocker/chrome_extensions_js_hook