JS逆向-代码混淆&EVAL执行&OB算法&AA和JJ&特征识别&解密还原&美化输出&自动项目
➢ JS逆向-F12开发者工具-使用指南
➢ JS逆向-F12开发者工具-调用堆栈
➢ JS逆向-F12开发者工具-断点调试
➢ JS逆向-反调试分析技术-检测&绕过
➢ JS逆向-HOOK技术-注入&开发应用
➢ JS逆向-算法解密-提交数据&返回数据
➢ JS逆向-算法解密-扣代码调用&替代库模拟
➢ JS逆向-Sign绕过-签名影响&加密解密
➢ JS逆向-代码混淆-加密意义&常见方法
➢ JS逆向-代码混淆-特征识别&自动分析
#混淆JavaScript代码主要意义:
1、防止代码被逆向工程:混淆使得代码的逻辑变得晦涩难懂,使攻击者难以理解代码的运行原理。这可以防止恶意用户或竞争对手直接分析、修改或复制代码。
2、保护知识产权:混淆代码可以防止他人盗用和复制您的代码。通过混淆,您可以更好地保护您的知识产权,确保您的代码不会被滥用或未经授权使用。
3、减少代码大小:混淆技术可以压缩和优化代码,从而减小代码的大小,提高加载速度和性能。
4、提高安全性:通过混淆代码,可以隐藏敏感信息、算法和逻辑,从而增加代码的安全性。这对于处理敏感数据或执行关键任务的应用程序特别重要。
5、避免自动化攻击:混淆代码可以使自动化攻击工具难以识别和分析代码。这可以有效地阻止一些常见的攻击,如代码注入、XSS(跨站点脚本)和CSRF(跨站点请求伪造)等。
#认知常见混淆手法:
https://scrape.center/
*eval,JJEncode,AAEncode,JSFuck,Obfuscator等混淆还原
eval:
特征:出现关键字eval
还原:控制台输出(去除eval()后)给函数名,新建JS文件优化
JJEncode,AAEncode,JSFuck(直接粘接出来运行):
JJEncode特征:包含很多$
特征:包含很多颜文字
JSFuck特征:包含很多[ ]、()、+、!
还原:控制台输出(一般去除()调用后)点击查看或直接运行
Obfuscator:
特征:包含很多——0x字母无意义的字符串,阅读难度增加
还原:控制台输出美化代码断点调试输出分析,利用AST技术解密还原
#案例解析:
1、Eval案例
2、JSFuck案例
3、JSJaiMi案例
4、Obfuscator案例
#常见解密:
1、人工分析:
看特征或代码注释找到关键加密字(加上后续的AST技术)
2、平台自动:
https://jsdec.js.org/
https://lelinhtinh.github.io/de4js/
涉及平台项目:
https://www.jshaman.com/
https://c.runoob.com/front-end/51/
https://tool.ip138.com/javascript/
https://www.sojson.com/jsjiemi.html
https://utf-8.jp/public/jjencode.html
https://tool.chinaz.com/tools/jscodeconfusion.aspx
https://github.com/mishoo/UglifyJS
github.com/javascript-obfuscator/javascript-obfuscator