Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DingZaiHub/ob-decrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

38 Commits

Repository files navigation

ob混淆还原工具

Author 丁仔
微信公众号 逆向新手
Introduce Python、爬虫、JS逆向

使用说明

一、ob混淆网站

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');

二、依赖

  1. 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

三、文件说明

  1. config.js:配置选项文件
  2. ob-decrypt.js:主要运行代码
  3. source.js:示例代码(还原前)
  4. code.js:示例代码(还原后)
  5. introduction.md:各功能说明文档

四、使用

  1. 将要还原的、未格式化前的ob混淆代码复制到本地
  2. 修改config.js配置选项
  3. 执行ob-decrypt.js即可
  4. 如果有报错,可能暂不适配,等待更新。或将配置选项设置为仅还原解密函数。或可联系本人
  5. 本工具同样可以解非ob混淆代码。将step1、step2去掉后,按需使用代码下方的traverse即可。

五、其它

  1. 默认输出缩进格式从2个空格调整为4个空格
    打开 npm\node_modules\@babel\core\node_modules\@babel\generator\lib\index.js 文件
    将其中的indent修改如下:
indent: {
 adjustMultilineComment: true,
 style: " ",
 base: 0
}
  1. 常量计算添加计算parseInt类型
    打开 npm\node_modules\@babel\core\node_modules\@babel\traverse\lib\path\evaluation.js 文件
    将其中的VALID_CALLEES修改如下:
const VALID_CALLEES = ["String", "Number", "Math","parseInt"];

六、参考

  1. 夜幕论坛AST两部曲
    AST一部曲:https://bbs.nightteam.cn/thread-417.htm
    AST二部曲:https://bbs.nightteam.cn/thread-423.htm

  2. "菜鸟学Python编程" 公众号AST系列

  3. "AST入门与实战" 知识星球

七、赞赏

如果觉得本工具对你有用,谢谢赞赏~

About

ob混淆还原工具,欢迎star!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /