mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-19 07:44:45 +08:00
AST操作之获得当前节点的源代码
This commit is contained in:
parent
300f8b5d84
commit
351c00433f
33
AST抽象语法树/8.AST操作之获得当前节点的源代码/RADME.md
Normal file
33
AST抽象语法树/8.AST操作之获得当前节点的源代码/RADME.md
Normal file
@ -0,0 +1,33 @@
|
||||
# AST操作之获得当前节点的源代码
|
||||
|
||||
path: path.toString()
|
||||
|
||||
node: generator(node).code;
|
||||
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
const {parse} = require("@babel/parser");
|
||||
const traverse = require("@babel/traverse").default;
|
||||
const generator = require("@babel/generator").default;
|
||||
let encode_file = "./encode.js";
|
||||
|
||||
let js_code = fs.readFileSync(encode_file, {encoding: "utf-8"});
|
||||
let ast = parse(js_code, {
|
||||
sourceType: 'module',
|
||||
});
|
||||
|
||||
const visitor = {
|
||||
VariableDeclarator(path) {
|
||||
console.log(path.toString())
|
||||
let {code} = generator(path.node);
|
||||
console.log(code)
|
||||
},
|
||||
}
|
||||
|
||||
traverse(ast, visitor);
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
a = 123
|
||||
a = 123
|
21
AST抽象语法树/8.AST操作之获得当前节点的源代码/decode_obfuscator.js
Normal file
21
AST抽象语法树/8.AST操作之获得当前节点的源代码/decode_obfuscator.js
Normal file
@ -0,0 +1,21 @@
|
||||
const fs = require('fs');
|
||||
const {parse} = require("@babel/parser");
|
||||
const traverse = require("@babel/traverse").default;
|
||||
const generator = require("@babel/generator").default;
|
||||
let encode_file = "./encode.js";
|
||||
|
||||
let js_code = fs.readFileSync(encode_file, {encoding: "utf-8"});
|
||||
let ast = parse(js_code, {
|
||||
sourceType: 'module',
|
||||
});
|
||||
|
||||
const visitor = {
|
||||
VariableDeclarator(path) {
|
||||
console.log(path.toString())
|
||||
let {code} = generator(path.node);
|
||||
console.log(code)
|
||||
},
|
||||
}
|
||||
|
||||
traverse(ast, visitor);
|
||||
|
1
AST抽象语法树/8.AST操作之获得当前节点的源代码/encode.js
Normal file
1
AST抽象语法树/8.AST操作之获得当前节点的源代码/encode.js
Normal file
@ -0,0 +1 @@
|
||||
var a = 123;
|
@ -194,7 +194,7 @@ CREATE TABLE `clean_buyin_authorStatData_authorProfile` (
|
||||
`act_info` varchar(255) DEFAULT '',
|
||||
`deduplication` varchar(100) DEFAULT '' COMMENT '去重字段',
|
||||
`spider_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬虫抓取时间',
|
||||
UNIQUE KEY `task_id` (`deduplication`) USING BTREE,
|
||||
UNIQUE KEY `account_douyin` (`account_douyin`) USING BTREE,
|
||||
KEY `uid` (`uid`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
@ -230,8 +230,7 @@ CREATE TABLE `clean_buyin_authorStatData_seekAuthor` (
|
||||
`author_tag_is_star` smallint(1) DEFAULT '0' COMMENT '是否明星',
|
||||
`deduplication` varchar(100) DEFAULT '' COMMENT '去重字段',
|
||||
`spider_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬虫抓取时间',
|
||||
UNIQUE KEY `task_id` (`deduplication`) USING BTREE,
|
||||
KEY `author_base_uid` (`author_base_uid`) USING BTREE
|
||||
UNIQUE KEY `deduplication` (`deduplication`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
@ -283,4 +282,4 @@ CREATE TABLE `project_buyin_authorStatData` (
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2023-07-13 12:09:55
|
||||
-- Dump completed on 2023-07-18 16:58:29
|
||||
|
Loading…
x
Reference in New Issue
Block a user