mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-16 16:07:15 +08:00
15.AST代码还原案例
This commit is contained in:
parent
f58aecceb3
commit
b304f9f37b
27
AST抽象语法树/15.AST代码还原案例/1-2020-06-09.js
Normal file
27
AST抽象语法树/15.AST代码还原案例/1-2020-06-09.js
Normal file
@ -0,0 +1,27 @@
|
||||
const fs = require('fs');
|
||||
const {parse} = require("@babel/parser");
|
||||
const traverse = require("@babel/traverse").default;
|
||||
const generator = require("@babel/generator").default;
|
||||
const types = require('@babel/types');
|
||||
let encode_file = "./1-encode-2020-06-09.js";
|
||||
|
||||
let js_code = fs.readFileSync(encode_file, {encoding: "utf-8"});
|
||||
let ast = parse(js_code, {
|
||||
sourceType: 'module',
|
||||
});
|
||||
|
||||
const visitor = {
|
||||
CallExpression: {
|
||||
enter(path) {
|
||||
let {node} = path
|
||||
let arguments = node.arguments
|
||||
if (arguments[1].value != 'Hello AST'){
|
||||
path.remove()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
traverse(ast, visitor);
|
||||
let {code} = generator(ast);
|
||||
console.log(code)
|
12
AST抽象语法树/15.AST代码还原案例/1-encode-2020-06-09.js
Normal file
12
AST抽象语法树/15.AST代码还原案例/1-encode-2020-06-09.js
Normal file
@ -0,0 +1,12 @@
|
||||
var s = {
|
||||
'hello': function(_0x4c52de) {
|
||||
(function(_0xea7649, _0x55a64b) {
|
||||
return function(_0x46f67a, _0x29dec9) {
|
||||
return function(_0x56ee68, _0x1607ce) {
|
||||
return _0x56ee68(_0x1607ce);
|
||||
}(_0x46f67a, _0x29dec9);
|
||||
}(_0xea7649, _0x55a64b);
|
||||
}
|
||||
)(alert, "Hello AST");
|
||||
},
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user