Author | 丁仔 |
---|---|
微信公众号 | 逆向新手 |
Introduce | Python、爬虫、JS逆向 |
https://obfuscator.io/
ob混淆特征:
// 开头一个大数组
var _0xa441 = ['\x49\x63\x4b\x72\x77\x70\x2f\x44\x6c\x67\x3d\x3d', ···]
// 自执行函数对数组进行位移
(function (_0x56a234, _0xa44115) {
var _0x532345 = function (_0x549d7c) {
while (--_0x549d7c) {
_0x56a234['push'](_0x56a234['shift']());
}
};
_0x532345(++_0xa44115);
}(_0xa441, 0x1d0));
// 解密函数
var _0x5323 = function (_0x56a234, _0xa44115) {
// 里面有段自执行函数生成atob函数
······
}
// 下方多处调用解密函数,如
var _0x239123 = _0x5323('\x30\x78\x32\x30', '\x70\x59\x48\x73');
- npm install @babel/core -g
如果安装了依然报以下错误:
Error: Cannot find module '@babel/parser'
Windows系统请在系统环境变量中添加如下后重启编辑器或电脑,npm\node_modules路径前面根据自己的相应修改:
其它系统请自行搜索更改
变量名: NODE_PATH
变量值1:C:\Users\Administrator\AppData\Roaming\npm\node_modules
变量值2:C:\Users\Administrator\AppData\Roaming\npm\node_modules\@babel\core\node_modules
- config.js:配置选项文件
- ob-decrypt.js:主要运行代码
- source.js:示例代码(还原前)
- code.js:示例代码(还原后)
- introduction.md:各功能说明文档
- 将要还原的、未格式化前的ob混淆代码复制到本地
- 修改config.js配置选项
- 执行ob-decrypt.js即可
- 如果有报错,可能暂不适配,等待更新。或将配置选项设置为仅还原解密函数。或可联系本人
- 本工具同样可以解非ob混淆代码。将step1、step2去掉后,按需使用代码下方的traverse即可。
- 默认输出缩进格式从2个空格调整为4个空格
打开 npm\node_modules\@babel\core\node_modules\@babel\generator\lib\index.js 文件
将其中的indent修改如下:
indent: {
adjustMultilineComment: true,
style: " ",
base: 0
}
- 常量计算添加计算parseInt类型
打开 npm\node_modules\@babel\core\node_modules\@babel\traverse\lib\path\evaluation.js 文件
将其中的VALID_CALLEES修改如下:
const VALID_CALLEES = ["String", "Number", "Math","parseInt"];
-
夜幕论坛AST两部曲
AST一部曲:https://bbs.nightteam.cn/thread-417.htm
AST二部曲:https://bbs.nightteam.cn/thread-423.htm -
“菜鸟学Python编程” 公众号AST系列
-
“AST入门与实战” 知识星球
如果觉得本工具对你有用,谢谢赞赏~