如何防止反混淆 JavaScript 代码
How to prevent deobfuscating JavaScript code
有没有办法防止对已经被混淆的 JavaScript 代码进行反混淆。
混淆JS:
var
_0xb5ae=["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"];$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e=
setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})
不,没有办法阻止去混淆,但您可以在混淆之前积极地缩小它,只是让它尽可能复杂。
无论如何,客户将能够看到来源,并且在适当的动机下,没有什么是无法阅读和理解的。
如果您希望保护您的代码,请仅在服务器端执行它。
话虽如此,您可以通过对您的代码使用适当的许可 and/or 版权来防止(或至少限制)盗窃。这当然不会阻止任何人窃取它,但如果他们试图从您的辛勤工作中赚钱,您将获得法律追索权。
太简单啦!
var _0xb5ae =["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"];
var code = `$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e= setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})`
function deObfuscate(code, keys) {
for (let key in keys) {
code = code.replace(new RegExp(key+'\[(\d+)\]', 'gim'), (_, index) => {
return `'${keys[key][index]}'`
})
}
return code
}
console.log(
deObfuscate(code, { _0xb5ae })
)
$('.block').mousemove(function(){
clearTimeout(e)
e = setTimeout(function(){
$('.loader').show()
}, 1000)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
有没有办法防止对已经被混淆的 JavaScript 代码进行反混淆。
混淆JS:
var _0xb5ae=["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"];$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e= setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})
不,没有办法阻止去混淆,但您可以在混淆之前积极地缩小它,只是让它尽可能复杂。
无论如何,客户将能够看到来源,并且在适当的动机下,没有什么是无法阅读和理解的。
如果您希望保护您的代码,请仅在服务器端执行它。
话虽如此,您可以通过对您的代码使用适当的许可 and/or 版权来防止(或至少限制)盗窃。这当然不会阻止任何人窃取它,但如果他们试图从您的辛勤工作中赚钱,您将获得法律追索权。
太简单啦!
var _0xb5ae =["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"];
var code = `$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e= setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})`
function deObfuscate(code, keys) {
for (let key in keys) {
code = code.replace(new RegExp(key+'\[(\d+)\]', 'gim'), (_, index) => {
return `'${keys[key][index]}'`
})
}
return code
}
console.log(
deObfuscate(code, { _0xb5ae })
)
$('.block').mousemove(function(){
clearTimeout(e)
e = setTimeout(function(){
$('.loader').show()
}, 1000)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>