File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import {
20
20
} from "../util/gen" ;
21
21
import { getIdentifierInfo } from "../util/identifiers" ;
22
22
import { prepend , getDefiningContext } from "../util/insert" ;
23
+ import Integrity from "./lock/integrity" ;
23
24
import Transform from "./transform" ;
24
25
25
26
/**
@@ -200,6 +201,14 @@ export default class RGF extends Transform {
200
201
201
202
if ( obfuscator . options . lock ) {
202
203
delete obfuscator . options . lock . countermeasures ;
204
+
205
+ // Integrity will not recursively apply to RGF'd functions. This is intended.
206
+ var lockTransform = obfuscator . transforms [ "Lock" ] ;
207
+ if ( lockTransform ) {
208
+ lockTransform . before = lockTransform . before . filter (
209
+ ( beforeTransform ) => ! ( beforeTransform instanceof Integrity )
210
+ ) ;
211
+ }
203
212
}
204
213
205
214
var transforms = obfuscator . array . filter (
Original file line number Diff line number Diff line change @@ -135,3 +135,27 @@ it("should work on High Preset", async () => {
135
135
136
136
expect ( TEST_OUTPUT ) . toStrictEqual ( "Hello World" ) ;
137
137
} ) ;
138
+
139
+ it ( "should work with RGF enabled" , async ( ) => {
140
+ var output = await JsConfuser (
141
+ `
142
+ function getTestOutput(){
143
+ return "Hello World";
144
+ }
145
+
146
+ TEST_OUTPUT = getTestOutput();
147
+ ` ,
148
+ {
149
+ target : "node" ,
150
+ rgf : true ,
151
+ lock : {
152
+ integrity : true ,
153
+ } ,
154
+ }
155
+ ) ;
156
+
157
+ var TEST_OUTPUT ;
158
+ eval ( output ) ;
159
+
160
+ expect ( TEST_OUTPUT ) . toStrictEqual ( "Hello World" ) ;
161
+ } ) ;
You can’t perform that action at this time.
0 commit comments