@@ -17,26 +17,25 @@ public class B64DeobfuscateOptions extends BasePluginOptionsBuilder {
1717
1818 @ Override
1919 public void registerOptions () {
20- boolOption (JadxStringDecoderPlugin .PLUGIN_ID + ".enable" )
20+ // General options for all passes
21+ intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".maxCommentLength" )
22+ .description ("Maximum decoded string length in comment before truncating with '...' (0 for unlimited)" )
23+ .defaultValue (100 )
24+ .setter (v -> maxCommentLength = v );
25+ intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".minDecodedLength" )
26+ .description ("Minimum decoded string length to add a comment (0 = disabled); rejects very short decoded outputs" )
27+ .defaultValue (0 )
28+ .setter (v -> minDecodedLength = v );
29+
30+ // B64DeobfuscatePass options
31+ boolOption (JadxStringDecoderPlugin .PLUGIN_ID + ".enableB64DecodePass" )
2132 .description ("Enable Base64 string detection and decoding" )
2233 .defaultValue (true )
2334 .setter (v -> enable = v );
24- boolOption (JadxStringDecoderPlugin .PLUGIN_ID + ".enableByteArrayStringPass" )
25- .description ("Enable byte[] field string detection pass" )
26- .defaultValue (true )
27- .setter (v -> enableByteArrayStringPass = v );
28- intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".byteArrayMinPrintablePercent" )
29- .description ("Minimum percentage of printable ASCII chars in a byte[] field for it to be annotated (0-100)" )
30- .defaultValue (20 )
31- .setter (v -> byteArrayMinPrintablePercent = v );
3235 intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".minInputLength" )
3336 .description ("Minimum length of an encoded string to be considered for decoding" )
3437 .defaultValue (8 )
3538 .setter (v -> minInputLength = v );
36- intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".maxCommentLength" )
37- .description ("Maximum decoded string length in comment before truncating with '...' (0 for unlimited)" )
38- .defaultValue (100 )
39- .setter (v -> maxCommentLength = v );
4039 intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".minPrintablePercent" )
4140 .description ("Minimum percentage of printable ASCII chars in decoded string (0-100); higher values reduce false positives" )
4241 .defaultValue (90 )
@@ -53,10 +52,16 @@ public void registerOptions() {
5352 .description ("Skip short strings that look like camelCase identifiers (e.g. getContext, fillItem)" )
5453 .defaultValue (true )
5554 .setter (v -> skipCamelCase = v );
56- intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".minDecodedLength" )
57- .description ("Minimum decoded string length to add a comment (0 = disabled); rejects very short decoded outputs" )
58- .defaultValue (0 )
59- .setter (v -> minDecodedLength = v );
55+
56+ // ByteArrayStringPass options
57+ boolOption (JadxStringDecoderPlugin .PLUGIN_ID + ".enableByteArrayStringPass" )
58+ .description ("Enable byte[] field string detection pass" )
59+ .defaultValue (true )
60+ .setter (v -> enableByteArrayStringPass = v );
61+ intOption (JadxStringDecoderPlugin .PLUGIN_ID + ".byteArrayMinPrintablePercent" )
62+ .description ("Minimum percentage of printable ASCII chars in a byte[] field for it to be annotated (0-100)" )
63+ .defaultValue (20 )
64+ .setter (v -> byteArrayMinPrintablePercent = v );
6065 }
6166
6267 public boolean isEnable () {
0 commit comments