JavaScript 实现阻碍调试(反调试)
先将鼠标改为禁用状态,第一步
body:hover{
cursor:not-allowed;
}
禁用掉键盘的全部按键(键盘报废)
$(document).ready(function () {
document.body.onkeydown = function (event) {
if (window.event) {
//alert("不允许使用任何键盘按键");
return false;
}
}
});
实现全屏爆炸:这段代码很简单,当按下调试键的时候,全屏都是乱码,所有标签里都会填充为乱码,轻则直接可以让浏览器崩溃,经测试有些系统则可能会蓝屏!(慎用)
<script type="text/javascript">
window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
if(event.keyCode==123)
{
for( i=0;i<99999999999;i++){
$("body div").append("TIHI!@#$%^&*()_+)()*&*^&TGYGJGYGuygT^&6746t78t78g785tgyuGGIUGOIUB&^Y(*^&^$$&*G*GUIGUOUIYUIT&*%$^%#^%ER^%RF&FGIY*G*&^T*(G*O");
}
}
}
</script>
禁用F12调试键
<script type="text/javascript">
// 临时性,禁用F12调试器
window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
// 判断是否按下F12,F12键码为123
if (event.keyCode === 123) {
event.preventDefault(); // 阻止默认事件行为
window.event.returnValue = false;
}
}
</script>
禁用页面的ctrl功能,来禁止ctrl+S保存功能
<script type="text/javascript">
//禁用页面的ctrl功能,来禁止ctrl+S保存功能
window.addEventListener('keydown', function (e) {
if(e.keyCode == 83 && (navigator.platform.match('Mac') ? e.metaKey : e.ctrlKey)){
e.preventDefault();
}
})
</script>
禁用页面的ctrl功能,来禁止ctrl+C保存功能
//禁用页面的ctrl功能,来禁止ctrl+C保存功能
window.addEventListener('keydown', function (e) {
if(e.keyCode == 67 && (navigator.platform.match('Mac') ? e.metaKey : e.ctrlKey)){
e.preventDefault();
}
})
为右键添加自定义事件,禁用菜单右键!
// 为右键添加自定义事件,禁用菜单右键!
window.oncontextmenu = function() {
event.preventDefault(); // 阻止默认事件行为
return false;
}
当通过特殊途径打开浏览器调试窗口时,会无限刷新,导致无法调试
// 无限回写,阻碍调试
var x = document.createElement('div');
var isOpening = false;
Object.defineProperty(x, 'id', {
get:function(){
console.log("警告!控制台已被打开!");
window.location.reload()
}
});
console.info(x);
屏蔽Ctrl+Shift+I
//屏蔽Ctrl+Shift+I
window.addEventListener('keydown', function (e) {
if((e.ctrlKey) && (e.shiftKey) && (e.keyCode == 73)){
e.preventDefault();
}
})
通过HTML实现反调试
<body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectstart ='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' onmouseup='document.selection.empty()'>
<noscript>
<iframe src="*.htm"></iframe>
</noscript>
<body onmousemove=/HideMenu()/ oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()">