12345678910111213141516171819202122232425262728293031323334353637 |
- "use strict";
- const estraverse = require('estraverse');
- const NodeObfuscator_1 = require('./NodeObfuscator');
- const NodeUtils_1 = require("../NodeUtils");
- const Utils_1 = require('../Utils');
- class FunctionObfuscator extends NodeObfuscator_1.NodeObfuscator {
- constructor(...args) {
- super(...args);
- this.functionParams = new Map();
- }
- obfuscateNode(functionNode) {
- this.replaceFunctionParams(functionNode);
- this.replaceFunctionParamsInBody(functionNode);
- }
- replaceFunctionParams(functionNode) {
- functionNode.params.forEach((paramsNode) => {
- estraverse.replace(paramsNode, {
- leave: (node) => {
- if (NodeUtils_1.NodeUtils.isIdentifierNode(node)) {
- this.functionParams.set(node.name, Utils_1.Utils.getRandomVariableName());
- node.name = this.functionParams.get(node.name);
- return;
- }
- return estraverse.VisitorOption.Skip;
- }
- });
- });
- }
- replaceFunctionParamsInBody(functionNode) {
- estraverse.replace(functionNode.body, {
- leave: (node, parentNode) => {
- this.replaceNodeIdentifierByNewValue(node, parentNode, this.functionParams);
- }
- });
- }
- }
- exports.FunctionObfuscator = FunctionObfuscator;
|