├── .idea ├── .gitignore ├── ast_study.iml ├── jsLibraryMappings.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── AST之JavaScript混淆 ├── 1. 混淆前的代码处理(代码预处理).js ├── 10. AST混淆实战(逗号表达式混淆).js ├── 2. AST混淆实战(字符串常量加密).js ├── 3. AST混淆实战(数值常量加密).js ├── 4. AST混淆实战(数组混淆).js ├── 5. AST混淆实战(数组乱序).js ├── 6. AST混淆实战(标识符混淆).js ├── 7. AST混淆实战(标识符名的随机生成).js ├── 8. AST混淆实战(代码块的混淆(二项式转函数花指令、代码逐行加密、代码逐行ASCII混淆)).js └── 9. AST混淆实战(实现switch流程平坦化).js ├── AST之babel常用api ├── 1. ast 代码结构.js ├── 2. ast之visitor.js ├── 3. ast之type判断节点类型.js ├── 4. ast之type生成节点.js ├── 5. ast之path.js ├── 6. ast之父级path.js ├── 7. ast 之同级Path.js └── 8. ast之scope.js ├── AST还原实战 ├── 1. 字符串解密.js ├── 2. 剔除花指令的思路.js ├── 3. 剔除字符串花指令.js ├── 4. 剔除函数花指令.js ├── 5. Switch循环还原.js ├── 6. 其他还原方法.js └── 7. 逗号表达式还原.js ├── AST还原案例 ├── 1. while-switch(变量值在条件循环中动态变化)去除控制流平坦化.js ├── 2. for-switch 去除控制了平台化.js ├── 3. 极验滑块AST │ ├── 3. 极验滑块AST.js │ ├── 极验for Switch 数字case值的流程跳转.jpg │ └── 极验滑块JS.js ├── 4. eval 解密.js └── ast_watchman.js ├── README.md ├── demo ├── demo1.js ├── demo2.js ├── demoFront.js ├── eval 解密案例.js ├── while_switch_demo.js ├── 数值常量加密的demo.js ├── 标识符详解案例.js ├── 标识符重命名案例.js ├── 还原demo.js └── 逗号表达式还原的demo.js └── package.json /.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/.gitignore -------------------------------------------------------------------------------- /.idea/ast_study.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/ast_study.iml -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/jsLibraryMappings.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /AST之JavaScript混淆/1. 混淆前的代码处理(代码预处理).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/1. 混淆前的代码处理(代码预处理).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/10. AST混淆实战(逗号表达式混淆).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/10. AST混淆实战(逗号表达式混淆).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/2. AST混淆实战(字符串常量加密).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/2. AST混淆实战(字符串常量加密).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/3. AST混淆实战(数值常量加密).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/3. AST混淆实战(数值常量加密).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/4. AST混淆实战(数组混淆).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/4. AST混淆实战(数组混淆).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/5. AST混淆实战(数组乱序).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/5. AST混淆实战(数组乱序).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/6. AST混淆实战(标识符混淆).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/6. AST混淆实战(标识符混淆).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/7. AST混淆实战(标识符名的随机生成).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/7. AST混淆实战(标识符名的随机生成).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/8. AST混淆实战(代码块的混淆(二项式转函数花指令、代码逐行加密、代码逐行ASCII混淆)).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/8. AST混淆实战(代码块的混淆(二项式转函数花指令、代码逐行加密、代码逐行ASCII混淆)).js -------------------------------------------------------------------------------- /AST之JavaScript混淆/9. AST混淆实战(实现switch流程平坦化).js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之JavaScript混淆/9. AST混淆实战(实现switch流程平坦化).js -------------------------------------------------------------------------------- /AST之babel常用api/1. ast 代码结构.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/1. ast 代码结构.js -------------------------------------------------------------------------------- /AST之babel常用api/2. ast之visitor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/2. ast之visitor.js -------------------------------------------------------------------------------- /AST之babel常用api/3. ast之type判断节点类型.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/3. ast之type判断节点类型.js -------------------------------------------------------------------------------- /AST之babel常用api/4. ast之type生成节点.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/4. ast之type生成节点.js -------------------------------------------------------------------------------- /AST之babel常用api/5. ast之path.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/5. ast之path.js -------------------------------------------------------------------------------- /AST之babel常用api/6. ast之父级path.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/6. ast之父级path.js -------------------------------------------------------------------------------- /AST之babel常用api/7. ast 之同级Path.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/7. ast 之同级Path.js -------------------------------------------------------------------------------- /AST之babel常用api/8. ast之scope.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST之babel常用api/8. ast之scope.js -------------------------------------------------------------------------------- /AST还原实战/1. 字符串解密.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/1. 字符串解密.js -------------------------------------------------------------------------------- /AST还原实战/2. 剔除花指令的思路.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/2. 剔除花指令的思路.js -------------------------------------------------------------------------------- /AST还原实战/3. 剔除字符串花指令.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/3. 剔除字符串花指令.js -------------------------------------------------------------------------------- /AST还原实战/4. 剔除函数花指令.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/4. 剔除函数花指令.js -------------------------------------------------------------------------------- /AST还原实战/5. Switch循环还原.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/5. Switch循环还原.js -------------------------------------------------------------------------------- /AST还原实战/6. 其他还原方法.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/6. 其他还原方法.js -------------------------------------------------------------------------------- /AST还原实战/7. 逗号表达式还原.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原实战/7. 逗号表达式还原.js -------------------------------------------------------------------------------- /AST还原案例/1. while-switch(变量值在条件循环中动态变化)去除控制流平坦化.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/1. while-switch(变量值在条件循环中动态变化)去除控制流平坦化.js -------------------------------------------------------------------------------- /AST还原案例/2. for-switch 去除控制了平台化.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/2. for-switch 去除控制了平台化.js -------------------------------------------------------------------------------- /AST还原案例/3. 极验滑块AST/3. 极验滑块AST.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/3. 极验滑块AST/3. 极验滑块AST.js -------------------------------------------------------------------------------- /AST还原案例/3. 极验滑块AST/极验for Switch 数字case值的流程跳转.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/3. 极验滑块AST/极验for Switch 数字case值的流程跳转.jpg -------------------------------------------------------------------------------- /AST还原案例/3. 极验滑块AST/极验滑块JS.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/3. 极验滑块AST/极验滑块JS.js -------------------------------------------------------------------------------- /AST还原案例/4. eval 解密.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/4. eval 解密.js -------------------------------------------------------------------------------- /AST还原案例/ast_watchman.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/AST还原案例/ast_watchman.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/README.md -------------------------------------------------------------------------------- /demo/demo1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/demo1.js -------------------------------------------------------------------------------- /demo/demo2.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/demo2.js -------------------------------------------------------------------------------- /demo/demoFront.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/demoFront.js -------------------------------------------------------------------------------- /demo/eval 解密案例.js: -------------------------------------------------------------------------------- 1 | eval("console.log('sdfssdfds')") -------------------------------------------------------------------------------- /demo/while_switch_demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/while_switch_demo.js -------------------------------------------------------------------------------- /demo/数值常量加密的demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/数值常量加密的demo.js -------------------------------------------------------------------------------- /demo/标识符详解案例.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/标识符详解案例.js -------------------------------------------------------------------------------- /demo/标识符重命名案例.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/标识符重命名案例.js -------------------------------------------------------------------------------- /demo/还原demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/还原demo.js -------------------------------------------------------------------------------- /demo/逗号表达式还原的demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/demo/逗号表达式还原的demo.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangshimin/ast_study/HEAD/package.json --------------------------------------------------------------------------------