注:最近需要看税局的前端代码加密方式,好去模仿一下,然后看了一周的时间,像一块难啃的骨头,浏览器调试之类的方法又让我重新学了一下…还搜寻了很多方法,真的很难受,写下来这段时间学习的内容
1、工具:
1、fildder
2、js代码混淆
2、混淆手段:
1、YUI Compressor (国外)
2、Google Closure Compiler(谷歌国外登录不上)
3、UglifyJs(基于node)
4、Jscrambler
5、sojson
3、混淆类型:
待定:emscripten、WebAssembly等
0、js文件中注释加xl-content.js:formatted ,浏览器就按这个名字解析,别人看到的js文件还是那个文件名/微笑
1、eval()手段,有很明显的eval函数
2、jsFuck,很多很多的[]和!拼接而成
3、AAEncode,有很多的表情翻译的
4、JJEncode,有很多的$和!""._运算符
5、js代码压缩-----
6、js混淆—变量名混淆(普通混淆和16进制混淆),普通混淆,出现a,b,c单词
16进制混淆,_0x4e98 = [‘log’,‘hello’]
7、字符串混淆,和上面很像
8、自我保护–比如卡死浏览器,,格式化后会运行,会直接卡死浏览器,\x78\x66\ + 16进制变量名 + 很明显的while
9、控制流平坦化,(处理逻辑加上前驱,提高逻辑复杂度),就是通过switch分发任务,控制程序流按顺序执行
10、僵尸代码注入,
11、对象键名替换。,,obj对象的内容提上去了,对象变量名变了_0x7a5d
12、禁用控制台输出,debug,infor,error,exception,trace
13、域名锁定,只允许在特定域名下运行,降低被模拟风险
4、反混淆手段:
5、混淆工具:
1、 javascriptobfuscator
2、2.2 Uglifyjs(开源)
3、 jscrambler 地址:https://jscrambler.com/
4、 jsfuck(开源)
5、
3、sat语法树,组成了
6、反爬虫:
1、setInterInt无限循环bug
7、如何跳过:
1、debug全部屏蔽掉
2、
8、打断点的方式:
1、点击左边,快速断点 =Add breakPoint (普通的行级断点)
2、Add conditional(是有条件的行级断点)后输入false,回车,再按下F9,你会发现debugger已经消失
3、Never pause here(会让这里永远不进断点)字面意思,不从这行代码经过。