소스 검색

Increased runtime performance with `rc4` `stringArrayEncoding`

sanex3339 8 년 전
부모
커밋
c7a3a2b71e

+ 4 - 0
CHANGELOG.md

@@ -1,5 +1,9 @@
 Change Log
 ===
+v0.9.4
+---
+* increased runtime performance with `rc4` `stringArrayEncoding`.
+
 v0.9.3
 ---
 * Switched from `escodegen` to `escodegen-wallaby`, fixed https://github.com/javascript-obfuscator/javascript-obfuscator/pull/50

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 11 - 94
dist/index.js


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "javascript-obfuscator",
-  "version": "0.9.3",
+  "version": "0.9.4",
   "description": "JavaScript obfuscator",
   "keywords": [
     "obfuscator",

+ 4 - 2
src/templates/custom-nodes/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts

@@ -21,14 +21,16 @@ export function StringArrayBase64DecodeNodeTemplate (): string {
             
             {stringArrayCallsWrapperName}.initialized = true;
         }
+                  
+        var cachedValue = {stringArrayCallsWrapperName}.data[index];
                         
-        if ({stringArrayCallsWrapperName}.data[index] === undefined) {
+        if (cachedValue === undefined) {
             {selfDefendingCode}
             
             value = {stringArrayCallsWrapperName}.base64DecodeUnicode(value);
             {stringArrayCallsWrapperName}.data[index] = value;
         } else {
-            value = {stringArrayCallsWrapperName}.data[index];
+            value = cachedValue;
         }  
     `;
 }

+ 4 - 4
src/templates/custom-nodes/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts

@@ -13,10 +13,10 @@ export function StringArrayRc4DecodeNodeTemplate (): string {
             
             {stringArrayCallsWrapperName}.initialized = true;
         }
-        
-        index += key;
+  
+        var cachedValue = {stringArrayCallsWrapperName}.data[index];
 
-        if ({stringArrayCallsWrapperName}.data[index] === undefined) {
+        if (cachedValue === undefined) {
             if ({stringArrayCallsWrapperName}.once === undefined) {
                 {selfDefendingCode}
                 
@@ -26,7 +26,7 @@ export function StringArrayRc4DecodeNodeTemplate (): string {
             value = {stringArrayCallsWrapperName}.rc4(value, key);
             {stringArrayCallsWrapperName}.data[index] = value;
         } else {
-            value = {stringArrayCallsWrapperName}.data[index];
+            value = cachedValue;
         }
     `;
 }

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.