Преглед на файлове

literal int number values to hex convert

sanex3339 преди 9 години
родител
ревизия
3230804d5f
променени са 6 файла, в които са добавени 24 реда и са изтрити 0 реда
  1. 3 0
      src/Utils.js
  2. 12 0
      src/Utils.ts
  3. 3 0
      src/node-obfuscators/NodeObfuscator.js
  4. 4 0
      src/node-obfuscators/NodeObfuscator.ts
  5. 1 0
      tests/dev-test.js
  6. 1 0
      tests/dev-test.ts

+ 3 - 0
src/Utils.js

@@ -30,6 +30,9 @@ class Utils {
         const rangeMinInteger = 10000, rangeMaxInteger = 99999999, prefix = '_0x';
         return `${prefix}${(Utils.decToHex(Utils.getRandomInteger(rangeMinInteger, rangeMaxInteger))).substr(0, length)}`;
     }
+    static isInteger(number) {
+        return number % 1 === 0;
+    }
     static strEnumify(obj) {
         return obj;
     }

+ 12 - 0
src/Utils.ts

@@ -69,6 +69,18 @@ export class Utils {
         return `${prefix}${(Utils.decToHex(Utils.getRandomInteger(rangeMinInteger, rangeMaxInteger))).substr(0, length)}`;
     }
 
+    /**
+     * @param number
+     * @returns {boolean}
+     */
+    public static isInteger (number: number): boolean {
+        return number % 1 === 0;
+    }
+
+    /**
+     * @param obj
+     * @returns {T}
+     */
     public static strEnumify <T extends { [prop: string]: '' | string }> (obj: T): T {
         return obj;
     }

+ 3 - 0
src/node-obfuscators/NodeObfuscator.js

@@ -16,6 +16,9 @@ class NodeObfuscator {
     }
     replaceLiteralNumberByHexadecimalValue(nodeValue) {
         const prefix = '0x';
+        if (!Utils_1.Utils.isInteger(nodeValue)) {
+            return String(nodeValue);
+        }
         return `${prefix}${Utils_1.Utils.decToHex(nodeValue)}`;
     }
     replaceLiteralStringByArrayElement(nodeValue) {

+ 4 - 0
src/node-obfuscators/NodeObfuscator.ts

@@ -49,6 +49,10 @@ export abstract class NodeObfuscator implements INodeObfuscator {
     protected replaceLiteralNumberByHexadecimalValue (nodeValue: number): string {
         const prefix: string = '0x';
 
+        if (!Utils.isInteger(nodeValue)) {
+            return String(nodeValue);
+        }
+
         return `${prefix}${Utils.decToHex(nodeValue)}`;
     }
 

+ 1 - 0
tests/dev-test.js

@@ -43,6 +43,7 @@ let obfuscatedCode = index_1.JavaScriptObfuscator.obfuscate(`
         };
         
         test2(22);
+        console.log(105.4);
     })();
     `, {
     rotateUnicodeArray: false

+ 1 - 0
tests/dev-test.ts

@@ -44,6 +44,7 @@ let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
         };
         
         test2(22);
+        console.log(105.4);
     })();
     `,
     {