View Javadoc
1   package com.jsql.util;
2   
3   import com.jsql.model.InjectionModel;
4   import org.apache.commons.lang3.StringUtils;
5   import org.apache.commons.lang3.SystemUtils;
6   
7   import java.util.prefs.Preferences;
8   
9   /**
10   * Utility class to manage JVM preferences previously saved into the system.
11   * Only general settings are processed by this utility, other specific preferences
12   * like those for proxy are defined from specific utility classes.
13   */
14  public class PreferencesUtil {
15  
16      public static final String EW_SPLIT = "verticalSplitter";
17      public static final String NS_SPLIT = "horizontalSplitter";
18      public static final String CHUNK_VISIBLE = "chunk_visible";
19      public static final String BINARY_VISIBLE = "binary_visible";
20      public static final String NETWORK_VISIBLE = "header_visible";
21      public static final String JAVA_VISIBLE = "java_visible";
22      public static final String IS_MAXIMIZED = "is_maximized";
23  
24      // File path saved in preference.
25      private String pathFile;
26  
27      private boolean isCheckingUpdate = true;
28  
29      // True if bugs are sent to GitHub.
30      private boolean isReportingBugs = true;
31      
32      private boolean is4K = false;
33      
34      private boolean isFollowingRedirection = false;
35      private boolean isHttp2Disabled = false;
36      
37      private boolean isNotInjectingMetadata = false;
38      private boolean isNotSearchingCharInsertion = false;
39      private boolean isNotShowingVulnReport = false;
40  
41      private boolean isCheckingAllParam = false;
42      private boolean isCheckingAllURLParam = false;
43      private boolean isCheckingAllRequestParam = false;
44      private boolean isCheckingAllHeaderParam = false;
45      private boolean isCheckingAllBase64Param = false;
46      private boolean isCheckingAllJsonParam = false;
47      private boolean isCheckingAllCookieParam = false;
48      private boolean isCheckingAllSoapParam = false;
49      
50      private boolean isPerfIndexDisabled = false;
51      private boolean isDefaultStrategy = false;
52      private boolean isZipStrategy = false;
53      private boolean isDiosStrategy = false;
54      private boolean isUrlEncodingDisabled = false;
55      private boolean isUrlRandomSuffixDisabled = false;
56  
57      private boolean isParsingForm = false;
58      private boolean isNotTestingConnection = false;
59      private boolean isNotProcessingCookies = false;
60      private boolean isProcessingCsrf = false;
61      
62      private boolean isTamperingBase64 = false;
63      private boolean isTamperingFunctionComment = false;
64      private boolean isTamperingVersionComment = false;
65      private boolean isTamperingEqualToLike = false;
66      private boolean isTamperingRandomCase = false;
67      private boolean isTamperingEval = false;
68      private boolean isTamperingSpaceToMultilineComment = false;
69      private boolean isTamperingSpaceToDashComment = false;
70      private boolean isTamperingSpaceToSharpComment = false;
71  
72      private String csrfUserTag = StringUtils.EMPTY;
73      private String csrfUserTagOutput = StringUtils.EMPTY;
74      private boolean isCsrfUserTag = false;
75      private boolean isLimitingThreads = true;
76      private int countLimitingThreads = 5;
77      private boolean isConnectionTimeout = false;
78      private int countConnectionTimeout = 15;
79      private boolean isUnicodeDecodeDisabled = false;
80      private boolean isUrlDecodeDisabled = false;
81  
82      private boolean isStrategyTimeDisabled = false;
83      private boolean isStrategyBlindDisabled = false;
84      private boolean isStrategyMultibitDisabled = false;
85      private boolean isStrategyStackDisabled = false;
86      private boolean isStrategyErrorDisabled = false;
87      private boolean isStrategyUnionDisabled = false;
88  
89      private boolean isLimitingUnionIndex = false;
90      private int countUnionIndex = 50;
91      private boolean isLimitingSleepTimeStrategy = false;
92      private int countSleepTimeStrategy = 5;
93  
94      private String themeFlatLafName = StringUtils.EMPTY;
95      private String languageTag = StringUtils.EMPTY;
96      private boolean isUserAgentRandom = false;
97      private boolean isUrlDecodeNetworkTab = false;
98  
99      /**
100      * Initialize the utility class with previously saved JVM preferences and apply
101      * loaded settings to the system.
102      */
103     public void loadSavedPreferences() {
104         
105         // Use Preferences API to persist proxy configuration
106         Preferences preferences = Preferences.userRoot().node(InjectionModel.class.getName());
107         
108         this.pathFile = preferences.get("pathFile", SystemUtils.USER_DIR);
109         
110         this.isCheckingUpdate = preferences.getBoolean("isCheckingUpdate", true);
111         this.isReportingBugs = preferences.getBoolean("isReportingBugs", true);
112         
113         this.isFollowingRedirection = preferences.getBoolean("isFollowingRedirection", false);
114         this.isHttp2Disabled = preferences.getBoolean("isHttp2Disabled", false);
115         this.isNotInjectingMetadata = preferences.getBoolean("isNotInjectingMetadata", false);
116         this.isNotSearchingCharInsertion = preferences.getBoolean("isNotSearchingCharInsertion", false);
117         this.isNotShowingVulnReport = preferences.getBoolean("isNotShowingVulnReport", false);
118 
119         this.isCheckingAllParam = preferences.getBoolean("isCheckingAllParam", false);
120         this.isCheckingAllURLParam = preferences.getBoolean("isCheckingAllURLParam", false);
121         this.isCheckingAllRequestParam = preferences.getBoolean("isCheckingAllRequestParam", false);
122         this.isCheckingAllHeaderParam = preferences.getBoolean("isCheckingAllHeaderParam", false);
123         this.isCheckingAllBase64Param = preferences.getBoolean("isCheckingAllBase64Param", false);
124         this.isCheckingAllJsonParam = preferences.getBoolean("isCheckingAllJsonParam", false);
125         this.isCheckingAllCookieParam = preferences.getBoolean("isCheckingAllCookieParam", false);
126         this.isCheckingAllSoapParam = preferences.getBoolean("isCheckingAllSoapParam", false);
127         
128         this.isPerfIndexDisabled = preferences.getBoolean("isPerfIndexDisabled", false);
129         this.isDefaultStrategy = preferences.getBoolean("isDefaultStrategy", false);
130         this.isZipStrategy = preferences.getBoolean("isZipStrategy", false);
131         this.isDiosStrategy = preferences.getBoolean("isDiosStrategy", false);
132         this.isUrlEncodingDisabled = preferences.getBoolean("isUrlEncodingDisabled", false);
133         this.isUrlRandomSuffixDisabled = preferences.getBoolean("isUrlRandomSuffixDisabled", false);
134 
135         this.isParsingForm = preferences.getBoolean("isParsingForm", false);
136         this.isNotTestingConnection = preferences.getBoolean("isNotTestingConnection", false);
137         this.isNotProcessingCookies = preferences.getBoolean("isNotProcessingCookies", false);
138         this.isProcessingCsrf = preferences.getBoolean("isProcessingCsrf", false);
139         
140         this.isTamperingBase64 = preferences.getBoolean("isTamperingBase64", false);
141         this.isTamperingEqualToLike = preferences.getBoolean("isTamperingEqualToLike", false);
142         this.isTamperingFunctionComment = preferences.getBoolean("isTamperingFunctionComment", false);
143         this.isTamperingVersionComment = preferences.getBoolean("isTamperingVersionComment", false);
144         this.isTamperingRandomCase = preferences.getBoolean("isTamperingRandomCase", false);
145         this.isTamperingEval = preferences.getBoolean("isTamperingEval", false);
146         this.isTamperingSpaceToDashComment = preferences.getBoolean("isTamperingSpaceToDashComment", false);
147         this.isTamperingSpaceToMultilineComment = preferences.getBoolean("isTamperingSpaceToMultilineComment", false);
148         this.isTamperingSpaceToSharpComment = preferences.getBoolean("isTamperingSpaceToSharpComment", false);
149         
150         this.is4K = preferences.getBoolean("is4K", false);
151         this.isCsrfUserTag = preferences.getBoolean("isCsrfUserTag", false);
152         this.csrfUserTag = preferences.get("csrfUserTag", StringUtils.EMPTY);
153         this.csrfUserTagOutput = preferences.get("csrfUserTagOutput", StringUtils.EMPTY);
154         this.isLimitingThreads = preferences.getBoolean("isLimitingThreads", true);
155         this.countLimitingThreads = preferences.getInt("countLimitingThreads", 5);
156         this.isConnectionTimeout = preferences.getBoolean("isConnectionTimeout", false);
157         this.countConnectionTimeout = preferences.getInt("countConnectionTimeout", 15);
158         this.isUnicodeDecodeDisabled = preferences.getBoolean("isUnicodeDecodeDisabled", false);
159         this.isUrlDecodeDisabled = preferences.getBoolean("isUrlDecodeDisabled", false);
160         this.countUnionIndex = preferences.getInt("countUnionIndex", 50);
161         this.isLimitingUnionIndex = preferences.getBoolean("isLimitingUnionIndex", false);
162         this.countSleepTimeStrategy = preferences.getInt("countSleepTimeStrategy", 5);
163         this.isLimitingSleepTimeStrategy = preferences.getBoolean("isLimitingSleepTimeStrategy", false);
164 
165         this.isStrategyTimeDisabled = preferences.getBoolean("isStrategyTimeDisabled", false);
166         this.isStrategyBlindDisabled = preferences.getBoolean("isStrategyBlindDisabled", false);
167         this.isStrategyMultibitDisabled = preferences.getBoolean("isStrategyMultibitDisabled", false);
168         this.isStrategyStackDisabled = preferences.getBoolean("isStrategyStackDisabled", false);
169         this.isStrategyErrorDisabled = preferences.getBoolean("isStrategyErrorDisabled", false);
170         this.isStrategyUnionDisabled = preferences.getBoolean("isStrategyUnionDisabled", false);
171 
172         this.isUserAgentRandom = preferences.getBoolean("isUserAgentRandom", false);
173 
174         this.themeFlatLafName = preferences.get("themeFlatLafName", StringUtils.EMPTY);
175         this.languageTag = preferences.get("languageTag", StringUtils.EMPTY);
176         this.isUrlDecodeNetworkTab = preferences.getBoolean("isUrlDecodeNetworkTab", false);
177     }
178     
179     /**
180      * Initialize the utility class, persist preferences and
181      * apply change to the JVM.
182      */
183     public void persist() {
184         
185         var preferences = Preferences.userRoot().node(InjectionModel.class.getName());
186 
187         preferences.putBoolean("isCheckingUpdate", this.isCheckingUpdate);
188         preferences.putBoolean("isReportingBugs", this.isReportingBugs);
189         preferences.putBoolean("is4K", this.is4K);
190         preferences.putBoolean("isUnicodeDecodeDisabled", this.isUnicodeDecodeDisabled);
191         preferences.putBoolean("isUrlDecodeDisabled", this.isUrlDecodeDisabled);
192         preferences.putBoolean("isLimitingThreads", this.isLimitingThreads);
193         preferences.putInt("countLimitingThreads", this.countLimitingThreads);
194         preferences.putBoolean("isConnectionTimeout", this.isConnectionTimeout);
195         preferences.putInt("countConnectionTimeout", this.countConnectionTimeout);
196         preferences.putBoolean("isLimitingUnionIndex", this.isLimitingUnionIndex);
197         preferences.putInt("countUnionIndex", this.countUnionIndex);
198         preferences.putBoolean("isLimitingSleepTimeStrategy", this.isLimitingSleepTimeStrategy);
199         preferences.putInt("countSleepTimeStrategy", this.countSleepTimeStrategy);
200         preferences.putBoolean("isCsrfUserTag", this.isCsrfUserTag);
201         preferences.put("csrfUserTag", this.csrfUserTag);
202         preferences.put("csrfUserTagOutput", this.csrfUserTagOutput);
203         
204         preferences.putBoolean("isFollowingRedirection", this.isFollowingRedirection);
205         preferences.putBoolean("isHttp2Disabled", this.isHttp2Disabled);
206         preferences.putBoolean("isNotInjectingMetadata", this.isNotInjectingMetadata);
207         preferences.putBoolean("isNotSearchingCharInsertion", this.isNotSearchingCharInsertion);
208         preferences.putBoolean("isNotShowingVulnReport", this.isNotShowingVulnReport);
209         preferences.putBoolean("isCheckingAllParam", this.isCheckingAllParam);
210         preferences.putBoolean("isCheckingAllURLParam", this.isCheckingAllURLParam);
211         preferences.putBoolean("isCheckingAllRequestParam", this.isCheckingAllRequestParam);
212         preferences.putBoolean("isCheckingAllHeaderParam", this.isCheckingAllHeaderParam);
213         
214         preferences.putBoolean("isCheckingAllBase64Param", this.isCheckingAllBase64Param);
215         preferences.putBoolean("isCheckingAllJsonParam", this.isCheckingAllJsonParam);
216         preferences.putBoolean("isCheckingAllCookieParam", this.isCheckingAllCookieParam);
217         preferences.putBoolean("isCheckingAllSoapParam", this.isCheckingAllSoapParam);
218         preferences.putBoolean("isParsingForm", this.isParsingForm);
219         preferences.putBoolean("isNotTestingConnection", this.isNotTestingConnection);
220         preferences.putBoolean("isNotProcessingCookies", this.isNotProcessingCookies);
221         preferences.putBoolean("isProcessingCsrf", this.isProcessingCsrf);
222         
223         preferences.putBoolean("isPerfIndexDisabled", this.isPerfIndexDisabled);
224         preferences.putBoolean("isDefaultStrategy", this.isDefaultStrategy);
225         preferences.putBoolean("isZipStrategy", this.isZipStrategy);
226         preferences.putBoolean("isDiosStrategy", this.isDiosStrategy);
227         preferences.putBoolean("isUrlEncodingDisabled", this.isUrlEncodingDisabled);
228         preferences.putBoolean("isUrlRandomSuffixDisabled", this.isUrlRandomSuffixDisabled);
229 
230         preferences.putBoolean("isTamperingBase64", this.isTamperingBase64);
231         preferences.putBoolean("isTamperingEqualToLike", this.isTamperingEqualToLike);
232         preferences.putBoolean("isTamperingVersionComment", this.isTamperingVersionComment);
233         preferences.putBoolean("isTamperingFunctionComment", this.isTamperingFunctionComment);
234         preferences.putBoolean("isTamperingRandomCase", this.isTamperingRandomCase);
235         preferences.putBoolean("isTamperingEval", this.isTamperingEval);
236         preferences.putBoolean("isTamperingSpaceToDashComment", this.isTamperingSpaceToDashComment);
237         preferences.putBoolean("isTamperingSpaceToMultilineComment", this.isTamperingSpaceToMultilineComment);
238         preferences.putBoolean("isTamperingSpaceToSharpComment", this.isTamperingSpaceToSharpComment);
239         
240         preferences.putBoolean("isStrategyTimeDisabled", this.isStrategyTimeDisabled);
241         preferences.putBoolean("isStrategyBlindDisabled", this.isStrategyBlindDisabled);
242         preferences.putBoolean("isStrategyMultibitDisabled", this.isStrategyMultibitDisabled);
243         preferences.putBoolean("isStrategyStackDisabled", this.isStrategyStackDisabled);
244         preferences.putBoolean("isStrategyErrorDisabled", this.isStrategyErrorDisabled);
245         preferences.putBoolean("isStrategyUnionDisabled", this.isStrategyUnionDisabled);
246 
247         preferences.putBoolean("isUserAgentRandom", this.isUserAgentRandom);
248         preferences.putBoolean("isUrlDecodeNetworkTab", this.isUrlDecodeNetworkTab);
249 
250         preferences.put("themeFlatLafName", this.themeFlatLafName);
251         preferences.put("languageTag", this.languageTag);
252     }
253     
254     /**
255      * Set the general file path to the utility class and persist to JVM preferences.
256      * @param path folder path to persist
257      */
258     public void set(String path) {
259         this.pathFile = path;
260         Preferences preferences = Preferences.userRoot().node(InjectionModel.class.getName());
261         preferences.put("pathFile", this.pathFile);
262     }
263     
264     
265     // Getters and setters
266     
267     public String getPathFile() {
268         return this.pathFile;
269     }
270     
271     public boolean isCheckingUpdate() {
272         return this.isCheckingUpdate;
273     }
274     
275     public boolean isFollowingRedirection() {
276         return this.isFollowingRedirection;
277     }
278     
279     public boolean isHttp2Disabled() {
280         return this.isHttp2Disabled;
281     }
282     
283     public boolean isReportingBugs() {
284         return this.isReportingBugs;
285     }
286 
287     public boolean isNotInjectingMetadata() {
288         return this.isNotInjectingMetadata;
289     }
290 
291     public boolean isNotSearchingCharInsertion() {
292         return this.isNotSearchingCharInsertion;
293     }
294 
295     public boolean isNotShowingVulnReport() {
296         return this.isNotShowingVulnReport;
297     }
298 
299     public boolean isCheckingAllURLParam() {
300         return this.isCheckingAllURLParam;
301     }
302 
303     public boolean isCheckingAllRequestParam() {
304         return this.isCheckingAllRequestParam;
305     }
306 
307     public boolean isCheckingAllHeaderParam() {
308         return this.isCheckingAllHeaderParam;
309     }
310 
311     public boolean isCheckingAllBase64Param() {
312         return this.isCheckingAllBase64Param;
313     }
314     
315     public boolean isCheckingAllJsonParam() {
316         return this.isCheckingAllJsonParam;
317     }
318 
319     public boolean isParsingForm() {
320         return this.isParsingForm;
321     }
322 
323     public boolean isNotTestingConnection() {
324         return this.isNotTestingConnection;
325     }
326 
327     public boolean isNotProcessingCookies() {
328         return this.isNotProcessingCookies;
329     }
330 
331     public boolean isCheckingAllParam() {
332         return this.isCheckingAllParam;
333     }
334 
335     public boolean isProcessingCsrf() {
336         return this.isProcessingCsrf;
337     }
338 
339     public boolean isCheckingAllCookieParam() {
340         return this.isCheckingAllCookieParam;
341     }
342 
343     public boolean isTamperingBase64() {
344         return this.isTamperingBase64;
345     }
346 
347     public boolean isTamperingFunctionComment() {
348         return this.isTamperingFunctionComment;
349     }
350 
351     public boolean isTamperingEqualToLike() {
352         return this.isTamperingEqualToLike;
353     }
354 
355     public boolean isTamperingRandomCase() {
356         return this.isTamperingRandomCase;
357     }
358 
359     public boolean isTamperingSpaceToMultilineComment() {
360         return this.isTamperingSpaceToMultilineComment;
361     }
362 
363     public boolean isTamperingSpaceToDashComment() {
364         return this.isTamperingSpaceToDashComment;
365     }
366 
367     public boolean isTamperingSpaceToSharpComment() {
368         return this.isTamperingSpaceToSharpComment;
369     }
370 
371     public boolean isTamperingVersionComment() {
372         return this.isTamperingVersionComment;
373     }
374 
375     public boolean isTamperingEval() {
376         return this.isTamperingEval;
377     }
378 
379     public boolean isCheckingAllSoapParam() {
380         return this.isCheckingAllSoapParam;
381     }
382 
383     public boolean is4K() {
384         return this.is4K;
385     }
386 
387     public boolean isLimitingThreads() {
388         return this.isLimitingThreads;
389     }
390     
391     public boolean isLimitingSleepTimeStrategy() {
392         return this.isLimitingSleepTimeStrategy;
393     }
394     
395     public boolean isConnectionTimeout() {
396         return this.isConnectionTimeout;
397     }
398     
399     public boolean isUnicodeDecodeDisabled() {
400         return this.isUnicodeDecodeDisabled;
401     }
402     
403     public boolean isUrlDecodeDisabled() {
404         return this.isUrlDecodeDisabled;
405     }
406     
407     public int countLimitingThreads() {
408         return this.countLimitingThreads;
409     }
410     
411     public int countConnectionTimeout() {
412         return this.countConnectionTimeout;
413     }
414     
415     public int countUnionIndex() {
416         return this.countUnionIndex;
417     }
418     
419     public int countSleepTimeStrategy() {
420         return this.countSleepTimeStrategy;
421     }
422     
423     public boolean isLimitingUnionIndex() {
424         return this.isLimitingUnionIndex;
425     }
426     
427     public boolean isCsrfUserTag() {
428         return this.isCsrfUserTag;
429     }
430     
431     public String csrfUserTag() {
432         return this.csrfUserTag;
433     }
434     
435     public String csrfUserTagOutput() {
436         return this.csrfUserTagOutput;
437     }
438     
439     public boolean isPerfIndexDisabled() {
440         return this.isPerfIndexDisabled;
441     }
442     
443     public boolean isZipStrategy() {
444         return this.isZipStrategy;
445     }
446     
447     public boolean isDefaultStrategy() {
448         return this.isDefaultStrategy;
449     }
450     
451     public boolean isDiosStrategy() {
452         return this.isDiosStrategy;
453     }
454     
455     public boolean isUrlEncodingDisabled() {
456         return this.isUrlEncodingDisabled;
457     }
458     
459     public boolean isUrlRandomSuffixDisabled() {
460         return this.isUrlRandomSuffixDisabled;
461     }
462 
463     public boolean isStrategyTimeDisabled() {
464         return this.isStrategyTimeDisabled;
465     }
466 
467     public boolean isStrategyBlindDisabled() {
468         return this.isStrategyBlindDisabled;
469     }
470 
471     public boolean isStrategyMultibitDisabled() {
472         return this.isStrategyMultibitDisabled;
473     }
474 
475     public boolean isStrategyStackDisabled() {
476         return this.isStrategyStackDisabled;
477     }
478 
479     public boolean isStrategyErrorDisabled() {
480         return this.isStrategyErrorDisabled;
481     }
482 
483     public boolean isStrategyUnionDisabled() {
484         return this.isStrategyUnionDisabled;
485     }
486 
487     public boolean isUserAgentRandom() {
488         return this.isUserAgentRandom;
489     }
490 
491     public String getThemeFlatLafName() {
492         return this.themeFlatLafName;
493     }
494 
495     public String getLanguageTag() {
496         return this.languageTag;
497     }
498 
499     public boolean isUrlDecodeNetworkTab() {
500         return this.isUrlDecodeNetworkTab;
501     }
502 
503     
504     // Builder
505 
506     public PreferencesUtil withIsCheckingUpdate(boolean isCheckingUpdate) {
507         this.isCheckingUpdate = isCheckingUpdate;
508         return this;
509     }
510 
511     public PreferencesUtil withIsReportingBugs(boolean isReportingBugs) {
512         this.isReportingBugs = isReportingBugs;
513         return this;
514     }
515 
516     public PreferencesUtil withIs4K(boolean is4K) {
517         this.is4K = is4K;
518         return this;
519     }
520 
521     public PreferencesUtil withIsFollowingRedirection(boolean isFollowingRedirection) {
522         this.isFollowingRedirection = isFollowingRedirection;
523         return this;
524     }
525     
526     public PreferencesUtil withIsHttp2Disabled(boolean isHttp2Disabled) {
527         this.isHttp2Disabled = isHttp2Disabled;
528         return this;
529     }
530     
531     public PreferencesUtil withIsUnicodeDecodeDisabled(boolean isUnicodeDecodeDisabled) {
532         this.isUnicodeDecodeDisabled = isUnicodeDecodeDisabled;
533         return this;
534     }
535     
536     public PreferencesUtil withIsUrlDecodeDisabled(boolean isUrlDecodeDisabled) {
537         this.isUrlDecodeDisabled = isUrlDecodeDisabled;
538         return this;
539     }
540 
541     public PreferencesUtil withIsNotInjectingMetadata(boolean isNotInjectingMetadata) {
542         this.isNotInjectingMetadata = isNotInjectingMetadata;
543         return this;
544     }
545 
546     public PreferencesUtil withIsNotSearchingCharInsertion(boolean isNotSearchingCharInsertion) {
547         this.isNotSearchingCharInsertion = isNotSearchingCharInsertion;
548         return this;
549     }
550 
551     public PreferencesUtil withIsNotShowingVulnReport(boolean isNotShowingVulnReport) {
552         this.isNotShowingVulnReport = isNotShowingVulnReport;
553         return this;
554     }
555 
556     public PreferencesUtil withIsCheckingAllParam(boolean isCheckingAllParam) {
557         this.isCheckingAllParam = isCheckingAllParam;
558         return this;
559     }
560 
561     public PreferencesUtil withIsCheckingAllURLParam(boolean isCheckingAllURLParam) {
562         this.isCheckingAllURLParam = isCheckingAllURLParam;
563         return this;
564     }
565 
566     public PreferencesUtil withIsCheckingAllRequestParam(boolean isCheckingAllRequestParam) {
567         this.isCheckingAllRequestParam = isCheckingAllRequestParam;
568         return this;
569     }
570 
571     public PreferencesUtil withIsCheckingAllHeaderParam(boolean isCheckingAllHeaderParam) {
572         this.isCheckingAllHeaderParam = isCheckingAllHeaderParam;
573         return this;
574     }
575 
576     public PreferencesUtil withIsCheckingAllBase64Param(boolean isCheckingAllBase64Param) {
577         this.isCheckingAllBase64Param = isCheckingAllBase64Param;
578         return this;
579     }
580     
581     public PreferencesUtil withIsCheckingAllJsonParam(boolean isCheckingAllJSONParam) {
582         this.isCheckingAllJsonParam = isCheckingAllJSONParam;
583         return this;
584     }
585 
586     public PreferencesUtil withIsCheckingAllCookieParam(boolean isCheckingAllCookieParam) {
587         this.isCheckingAllCookieParam = isCheckingAllCookieParam;
588         return this;
589     }
590 
591     public PreferencesUtil withIsCheckingAllSoapParam(boolean isCheckingAllSOAPParam) {
592         this.isCheckingAllSoapParam = isCheckingAllSOAPParam;
593         return this;
594     }
595 
596     public PreferencesUtil withIsParsingForm(boolean isParsingForm) {
597         this.isParsingForm = isParsingForm;
598         return this;
599     }
600 
601     public PreferencesUtil withIsNotTestingConnection(boolean isNotTestingConnection) {
602         this.isNotTestingConnection = isNotTestingConnection;
603         return this;
604     }
605 
606     public PreferencesUtil withIsNotProcessingCookies(boolean isNotProcessingCookies) {
607         this.isNotProcessingCookies = isNotProcessingCookies;
608         return this;
609     }
610 
611     public PreferencesUtil withIsProcessingCsrf(boolean isProcessingCsrf) {
612         this.isProcessingCsrf = isProcessingCsrf;
613         return this;
614     }
615 
616     public PreferencesUtil withIsTamperingBase64(boolean isTamperingBase64) {
617         this.isTamperingBase64 = isTamperingBase64;
618         return this;
619     }
620 
621     public PreferencesUtil withIsTamperingFunctionComment(boolean isTamperingFunctionComment) {
622         this.isTamperingFunctionComment = isTamperingFunctionComment;
623         return this;
624     }
625 
626     public PreferencesUtil withIsTamperingVersionComment(boolean isTamperingVersionComment) {
627         this.isTamperingVersionComment = isTamperingVersionComment;
628         return this;
629     }
630 
631     public PreferencesUtil withIsTamperingEqualToLike(boolean isTamperingEqualToLike) {
632         this.isTamperingEqualToLike = isTamperingEqualToLike;
633         return this;
634     }
635 
636     public PreferencesUtil withIsTamperingRandomCase(boolean isTamperingRandomCase) {
637         this.isTamperingRandomCase = isTamperingRandomCase;
638         return this;
639     }
640 
641     public PreferencesUtil withIsTamperingEval(boolean isTamperingEval) {
642         this.isTamperingEval = isTamperingEval;
643         return this;
644     }
645 
646     public PreferencesUtil withIsTamperingSpaceToMultilineComment(boolean isTamperingSpaceToMultilineComment) {
647         this.isTamperingSpaceToMultilineComment = isTamperingSpaceToMultilineComment;
648         return this;
649     }
650 
651     public PreferencesUtil withIsTamperingSpaceToDashComment(boolean isTamperingSpaceToDashComment) {
652         this.isTamperingSpaceToDashComment = isTamperingSpaceToDashComment;
653         return this;
654     }
655 
656     public PreferencesUtil withIsTamperingSpaceToSharpComment(boolean isTamperingSpaceToSharpComment) {
657         this.isTamperingSpaceToSharpComment = isTamperingSpaceToSharpComment;
658         return this;
659     }
660 
661     public PreferencesUtil withCsrfUserTag(String csrfUserTag) {
662         this.csrfUserTag = csrfUserTag;
663         return this;
664     }
665     
666     public PreferencesUtil withCsrfUserTagOutput(String csrfUserTagOutput) {
667         this.csrfUserTagOutput = csrfUserTagOutput;
668         return this;
669     }
670 
671     public PreferencesUtil withIsCsrfUserTag(boolean isCsrfUserTag) {
672         this.isCsrfUserTag = isCsrfUserTag;
673         return this;
674     }
675 
676     public PreferencesUtil withIsLimitingThreads(boolean isLimitingThreads) {
677         this.isLimitingThreads = isLimitingThreads;
678         return this;
679     }
680     
681     public PreferencesUtil withIsConnectionTimeout(boolean isConnectionTimeout) {
682         this.isConnectionTimeout = isConnectionTimeout;
683         return this;
684     }
685     
686     public PreferencesUtil withIsLimitingSleepTimeStrategy(boolean isLimitingSleepTimeStrategy) {
687         this.isLimitingSleepTimeStrategy = isLimitingSleepTimeStrategy;
688         return this;
689     }
690 
691     public PreferencesUtil withCountLimitingThreads(int countLimitingThreads) {
692         this.countLimitingThreads = countLimitingThreads;
693         return this;
694     }
695     
696     public PreferencesUtil withCountConnectionTimeout(int countConnectionTimeout) {
697         this.countConnectionTimeout = countConnectionTimeout;
698         return this;
699     }
700     
701     public PreferencesUtil withCountSleepTimeStrategy(int countSleepTimeStrategy) {
702         this.countSleepTimeStrategy = countSleepTimeStrategy;
703         return this;
704     }
705     
706     public PreferencesUtil withIsZipStrategy(boolean isZipStrategy) {
707         this.isZipStrategy = isZipStrategy;
708         return this;
709     }
710     
711     public PreferencesUtil withIsDefaultStrategy(boolean isDefaultStrategy) {
712         this.isDefaultStrategy = isDefaultStrategy;
713         return this;
714     }
715     
716     public PreferencesUtil withIsDiosStrategy(boolean isDiosStrategy) {
717         this.isDiosStrategy = isDiosStrategy;
718         return this;
719     }
720     
721     public PreferencesUtil withIsPerfIndexDisabled(boolean isPerfIndexDisabled) {
722         this.isPerfIndexDisabled = isPerfIndexDisabled;
723         return this;
724     }
725     
726     public PreferencesUtil withIsUrlEncodingDisabled(boolean isUrlEncodingDisabled) {
727         this.isUrlEncodingDisabled = isUrlEncodingDisabled;
728         return this;
729     }
730 
731     public PreferencesUtil withIsUrlRandomSuffixDisabled(boolean isUrlRandomSuffixDisabled) {
732         this.isUrlRandomSuffixDisabled = isUrlRandomSuffixDisabled;
733         return this;
734     }
735 
736     public PreferencesUtil withIsLimitingUnionIndex(boolean isLimitingUnionIndex) {
737         this.isLimitingUnionIndex = isLimitingUnionIndex;
738         return this;
739     }
740 
741     public PreferencesUtil withCountUnionIndex(int countUnionIndex) {
742         this.countUnionIndex = countUnionIndex;
743         return this;
744     }
745 
746     public PreferencesUtil withIsStrategyTimeDisabled(boolean isStrategyTimeDisabled) {
747         this.isStrategyTimeDisabled = isStrategyTimeDisabled;
748         return this;
749     }
750 
751     public PreferencesUtil withIsStrategyBlindDisabled(boolean isStrategyBlindDisabled) {
752         this.isStrategyBlindDisabled = isStrategyBlindDisabled;
753         return this;
754     }
755 
756     public PreferencesUtil withIsStrategyMultibitDisabled(boolean isStrategyMultibitDisabled) {
757         this.isStrategyMultibitDisabled = isStrategyMultibitDisabled;
758         return this;
759     }
760 
761     public PreferencesUtil withIsStrategyStackDisabled(boolean isStrategyStackDisabled) {
762         this.isStrategyStackDisabled = isStrategyStackDisabled;
763         return this;
764     }
765 
766     public PreferencesUtil withIsStrategyErrorDisabled(boolean isStrategyErrorDisabled) {
767         this.isStrategyErrorDisabled = isStrategyErrorDisabled;
768         return this;
769     }
770 
771     public PreferencesUtil withIsStrategyUnionDisabled(boolean isStrategyUnionDisabled) {
772         this.isStrategyUnionDisabled = isStrategyUnionDisabled;
773         return this;
774     }
775 
776     public PreferencesUtil withThemeFlatLafName(String themeFlatLafName) {
777         this.themeFlatLafName = themeFlatLafName;
778         return this;
779     }
780 
781     public PreferencesUtil withIsUrlDecodeNetworkTab(boolean isUrlDecodeNetworkTab) {
782         this.isUrlDecodeNetworkTab = isUrlDecodeNetworkTab;
783         return this;
784     }
785 
786     public PreferencesUtil withLanguageTag(String languageTag) {
787         this.languageTag = languageTag;
788         return this;
789     }
790 
791     public PreferencesUtil withIsUserAgentRandom(boolean selected) {
792         this.isUserAgentRandom = selected;
793         return this;
794     }
795 }