File tree 2 files changed +18
-3
lines changed
2 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -1267,7 +1267,8 @@ class StringArrayCallsReplacer{
1267
1267
}
1268
1268
firstNode = false ;
1269
1269
1270
- if ( ( node . type == 'Identifier' ) && ( node . name == wrapperName ) && ( parent . type == 'VariableDeclarator' ) ) {
1270
+ if ( ( node . type == 'Identifier' ) && ( node . name == wrapperName )
1271
+ && ( parent . type == 'VariableDeclarator' ) && ( parent . id . name == wrapperName ) ) {
1271
1272
foundRedefined = true ;
1272
1273
this . break ( ) ;
1273
1274
}
@@ -1328,7 +1329,12 @@ class StringArrayCallsReplacer{
1328
1329
node = parent ;
1329
1330
} while ( parent . type != 'Program' ) ;
1330
1331
1331
- return false ;
1332
+ if ( parent == wrapperLexicalScope ) {
1333
+ return true ;
1334
+ }
1335
+ else {
1336
+ return false ;
1337
+ }
1332
1338
}
1333
1339
1334
1340
_removeVariableDeclaratorWrappers ( wrappers ) {
Original file line number Diff line number Diff line change @@ -27,7 +27,16 @@ class SourceCodeDeobfuscator{
27
27
}
28
28
29
29
deobfuscate ( ) {
30
- this . _generateASTFromObfuscatedSourceCode ( ) ;
30
+ try {
31
+ this . _generateASTFromObfuscatedSourceCode ( ) ;
32
+ }
33
+ catch ( e ) {
34
+ this . logger . error ( `[deobfuscator.js] Error when transforming the input source code to AST.`
35
+ + ` This is an 'esprima' parser limitation and the code needs to be`
36
+ + ` transpiled to an esprima compatible version before passing it to`
37
+ + ` the deobfuscator. error = ${ e } . Stack = ${ e . stack } ` ) ;
38
+ return '' ;
39
+ }
31
40
this . _deobfuscateAST ( ) ;
32
41
this . _generateSourceCodeFromDeobfuscatedAST ( ) ;
33
42
return this . deobfuscatedSourceCode ;
You can’t perform that action at this time.
0 commit comments