1234567891011121314151617181920212223242526272829303132333435363738394041 |
- "use strict";
- const JSFuck_1 = require("../enums/JSFuck");
- const NodeUtils_1 = require("../NodeUtils");
- const Utils_1 = require('../Utils');
- class NodeObfuscator {
- constructor(nodes) {
- this.nodes = nodes;
- }
- replaceNodeIdentifierByNewValue(node, parentNode, namesMap) {
- if (NodeUtils_1.NodeUtils.isIdentifierNode(node) && namesMap.has(node.name)) {
- if ((NodeUtils_1.NodeUtils.isPropertyNode(parentNode) && parentNode.key === node) ||
- (NodeUtils_1.NodeUtils.isMemberExpressionNode(parentNode) && parentNode.computed === false && parentNode.property === node)) {
- return;
- }
- node.name = namesMap.get(node.name);
- }
- }
- replaceLiteralBooleanByJSFuck(nodeValue) {
- return nodeValue ? JSFuck_1.JSFuck.True : JSFuck_1.JSFuck.False;
- }
- replaceLiteralNumberByHexadecimalValue(nodeValue) {
- const prefix = '0x';
- if (!Utils_1.Utils.isInteger(nodeValue)) {
- return String(nodeValue);
- }
- return `${prefix}${Utils_1.Utils.decToHex(nodeValue)}`;
- }
- replaceLiteralStringByArrayElement(nodeValue) {
- let value = Utils_1.Utils.stringToUnicode(nodeValue), unicodeArray = this.nodes.get('unicodeArrayNode').getNodeData(), sameIndex = unicodeArray.indexOf(value), index, hexadecimalIndex;
- if (sameIndex < 0) {
- index = unicodeArray.length;
- unicodeArray.push(Utils_1.Utils.stringToUnicode(nodeValue));
- }
- else {
- index = sameIndex;
- }
- hexadecimalIndex = this.replaceLiteralNumberByHexadecimalValue(index);
- return `${this.nodes.get('unicodeArrayNode').getNodeIdentifier()}[${hexadecimalIndex}]`;
- }
- }
- exports.NodeObfuscator = NodeObfuscator;
|