-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[软技能] 第119天 你对jsfuck有了解吗?它的原理是什么?请举例说明 #1060
Comments
真要解释我也解释不来,大概是这么个思路:
逻辑非(取反)操作符会将所有东西转成
然后就可以获得 ![]+[] // 'false'
!![]+[] // 'true'
[][+[]]+[] // 'undefined' 然后随便选一个可以访问的函数(注意这里说“可以访问“,因为我们得到的字符还不完全),我们就可以获得更多字符,这里选用 [][...从 undefined 中拆出来 'find']+[]
// => 'function find() { [ native code ] }' 并且可以获得 [][...从 undefined 中拆出来 'find'][...从各处拆出来 'constructor']
// => function Function() { [ native code ] }
[]
[...从 undefined 中拆出来 'find']
[...从各处拆出来 'constructor']
(...字符串形式的代码)
()
// 这可以执行这段字符串形式的代码 还有一堆依赖废弃方法等等的 hack,我看着有点恶心,就不讲了 |
能不能用一句话说下 到底是干嘛用的 |
之前好像看过一点,反正这种代码可读性很差;简言之, |
这个东西转换出来就不是为了给人直接读的,算是一种js代码的混淆加密方法。但是转换出来代码量太大,真要应用也只能挑一些核心代码进行加密。 |
大佬们是不是都这么写的 |
第119天 你对jsfuck有了解吗?它的原理是什么?请举例说明
The text was updated successfully, but these errors were encountered: