ItzSomebody / radon

[Abandoned] Scuffed java bytecode obfuscator
GNU General Public License v3.0
362 stars 74 forks source link

me.itzsomebody.radon.exceptions.RadonException: Could not find org/jboss/marshalling/ByteInput #95

Closed nfacha closed 1 year ago

nfacha commented 3 years ago

Description of Bug: Describe what went wrong. Wont save output jar Expected behavior: Describe what should have happened instead. Save output jar normally Radon version: Provide the Radon version used. (Saying "latest" or similar) will result in an instant close. 2.0.0 Configuration: Provide the FULL configuration used to produce the error. If privacy is desired, the configuration can be privately DM'd to ItzSomebody#9663 on Discord.

# Input
input: "../target/FMCSStreamHelper_proguard.jar"
# Output
output: "../target/FMCSStreamHelper_release.jar"
# Classpath to build class hierarchy from
# Note: if you're on Java 9 or higher, the Java API classes are located in the "jmod" files
libraries:
  - "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar"
  - "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar"
  - "../target/dependency/bungeecord-chat-1.16-R0.3.jar"
  - "../target/dependency/client-lib-7.4.0.jar"
  - "../target/dependency/commons-lang-2.6.jar"
  - "../target/dependency/engine.io-client-1.0.0.jar"
  - "../target/dependency/gson-2.8.0.jar"
  - "../target/dependency/guava-21.0.jar"
  - "../target/dependency/jackson-annotations-2.10.0.jar"
  - "../target/dependency/jackson-core-2.10.0.jar"
  - "../target/dependency/jackson-databind-2.10.0.jar"
  - "../target/dependency/json-20090211.jar"
  - "../target/dependency/mbassador-1.3.1.jar"
  - "../target/dependency/netty-buffer-4.1.59.Final.jar"
  - "../target/dependency/netty-codec-4.1.59.Final.jar"
  - "../target/dependency/netty-codec-http-4.1.59.Final.jar"
  - "../target/dependency/netty-codec-socks-4.1.59.Final.jar"
  - "../target/dependency/netty-common-4.1.59.Final.jar"
  - "../target/dependency/netty-handler-4.1.59.Final.jar"
  - "../target/dependency/netty-handler-proxy-4.1.59.Final.jar"
  - "../target/dependency/netty-resolver-4.1.59.Final.jar"
  - "../target/dependency/netty-transport-4.1.59.Final.jar"
  - "../target/dependency/okhttp-3.8.1.jar"
  - "../target/dependency/okio-1.13.0.jar"
  - "../target/dependency/snakeyaml-1.26.jar"
  - "../target/dependency/socket.io-client-1.0.0.jar"
  - "../target/dependency/spigot-api-1.16.4-R0.1-SNAPSHOT.jar"

# Shrink the jar size
shrinker:
  # Remove InnerClass attributes
  remove_inner_classes: true

  # Remove runtime-invisible annotations
  remove_invisible_annotations: true

  # Remove runtime-invisible parameter annotations
  remove_invisible_parameter_annotations: true

  # Remove runtime-invisible type annotations
  remove_invisible_type_annotations: true

  # Remove line numbers from stacktraces
  remove_line_numbers: true

  # Remove local variable information
  remove_local_variables: true

  # Removes OuterClass and OuterMethod attributes
  remove_outer_method: true

  # Remove class/method/field signatures
  remove_signature: true

  # Remove SourceDebug attributes
  remove_source_debug: true

  # Remove SourceFile attributes
  remove_source_file: true

  # Remove ACC_SYNTHETIC (0x1000) and ACC_BRIDGE (0x0040) access flags
  remove_synthetic: true

  # Remove unknown attributes
  remove_unknown_attributes: true

# Optimize the bytecode
optimizer:
  # Inline GOTO->GOTO sequences
  inline_goto_goto: true

  # Inline GOTO->(RETURN/IRETURN/LRETURN/FRETURN/DRETURN/ARETURN) sequences
  inline_goto_return: true

  # Remove nops
  remove_nops: true

# Obfuscates the names of classes/methods/fields

# Obfuscates the flow of the bytecode
flow_obfuscation:
  # Insert fake switches in the bytecode more CFG edges
  insert_bogus_switch_jumps: true

  # Insert fake if-confitions to create more CFG edges
  insert_bogus_jumps: true

  # Reorder the bytecode by splitting it in half multiple times
  split_blocks: false

  # Replace IF_ACMP<EQ/NE> with try-catch blocks
  mutilate_null_check: true

# Obfuscate API references
reference_obfuscation:
  # Hide method invocations using a relatively fast dynamic invoker
  hide_with_indy: true
  hide_with_fast_indy: false

# Encrypt string constants
string_encryption:
  # Compute decryption keys based on the context of the decryption call
  # Note: slows down runtime
  check_context: true

  # Pool strings into field
  pool_strings: false

# Apply ACC_SYNTHETIC (0x1000) and ACC_BRIDGE (0x0040) access flags to classes/methods/fields
hide_code:
  # Apply ACC_SYNTHETIC (0x1000) access flags
  hide_classes: true

  # Apply ACC_SYNTHETIC (0x1000) and ACC_BRIDGE (0x0040) access flags
  hide_methods: true

  # Apply ACC_SYNTHETIC (0x1000) access flags
  hide_fields: true

# Scramble numerical constants
number_obfuscation:
  # Allow Radon to tamper with integers
  integer_tampering: false

  # Allow Radon to tamper with longs
  long_tampering: false

  # Use bitwise (&, |, ^, <<, >>, >>>) operations to obscure (integers and longs only)
  bitwise_operations: true

  # Use arithmetic (+, -, *, /, %) operations to obscure
  arithmetic_operations: true

# Randomize the order of fields and methods
member_shuffler:
  # Randomize the order of fields
  shuffle_fields: true

  # Randomize the order of methods
  shuffle_methods: true

# Level of compression to use on the output JAR
compression_level: 0

# Name generation dictionary to use (custom)
dictionary: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

# Initial string length for randomly generated strings
randomized_string_length: 5

# Exclusions to mask certain classes or their members from being tampered with
exclusions:
  # Reference obfuscate classes with names only match the regex pattern "me/itzsomebody/counter.*"
  - "!reference_obfuscation: me/itzsomebody/counter.*"

  # Exclude library classes which match the regex pattern "org/objectweb/asm.*" from being obfuscated
  - "hide_code: net.freemcserver.streamhelper.licensing.models.*"

Relevant errors: Put the stacktraces and errors in (separate) code blocks.

Preparing output jar [/home/facha/dev/fmcs/fmcs-stream-helper/target/FMCSStreamHelper_proguard.jar] (filtered)
  Copying resources from program jar [/home/facha/dev/fmcs/fmcs-stream-helper/target/FMCSStreamHelper.jar] (filtered)
Radon is a free and open-source Java obfuscator with contributions from 
* ItzSomebody
* x0ark
* Col-E
* Artel
* kazigk
* Olexorus
* freeasbird
* CertainLach
* xxDark
* vovanre.
Version: 2.0.0
Website: https://github.com/ItzSomebody/Radon
[27/03/2021-02:42:59] INFO: Loading library "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar".
[27/03/2021-02:42:59] INFO: Loading library "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/bungeecord-chat-1.16-R0.3.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/client-lib-7.4.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/commons-lang-2.6.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/engine.io-client-1.0.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/gson-2.8.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/guava-21.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/jackson-annotations-2.10.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/jackson-core-2.10.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/jackson-databind-2.10.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/json-20090211.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/mbassador-1.3.1.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-buffer-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-codec-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-codec-http-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-codec-socks-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-common-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-handler-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-handler-proxy-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-resolver-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/netty-transport-4.1.59.Final.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/okhttp-3.8.1.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/okio-1.13.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/snakeyaml-1.26.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/socket.io-client-1.0.0.jar".
[27/03/2021-02:42:59] INFO: Loading library "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/dependency/spigot-api-1.16.4-R0.1-SNAPSHOT.jar".
[27/03/2021-02:42:59] INFO: Loading input "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/FMCSStreamHelper_proguard.jar".
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running Optimizer transformer.
[27/03/2021-02:43:00] INFO: Inlined 21 GOTO->GOTO sequences. [84ms]
[27/03/2021-02:43:00] INFO: Inlined 1474 GOTO->RETURN sequences. [30ms]
[27/03/2021-02:43:00] INFO: Removed 0 NOP instructions. [32ms]
[27/03/2021-02:43:00] INFO: Finished running Optimizer transformer. [146ms]
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running Shrinker transformer.
[27/03/2021-02:43:00] INFO: Removed 5692 inner classes.
[27/03/2021-02:43:00] INFO: Removed 58 invisible annotations.
[27/03/2021-02:43:00] INFO: Removed 0 invisible parameter annotations.
[27/03/2021-02:43:00] INFO: Removed 0 invisible type annotations.
[27/03/2021-02:43:00] INFO: Removed 136439 line numbers.
[27/03/2021-02:43:00] INFO: Removed 82499 local variables.
[27/03/2021-02:43:00] INFO: Removed 773 outer methods.
[27/03/2021-02:43:00] INFO: Removed 7677 signatures.
[27/03/2021-02:43:00] INFO: Remove 0 source debug attributes.
[27/03/2021-02:43:00] INFO: Removed 3927 source name attributes.
[27/03/2021-02:43:00] INFO: Removed 5129 synthetic/bridge access flags.
[27/03/2021-02:43:00] INFO: Removed 0 attributes.
[27/03/2021-02:43:00] INFO: Finished running Shrinker transformer. [115ms]
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running Reference obfuscation transformer.
[27/03/2021-02:43:00] INFO: Hid API 0 references using invokedynamic
[27/03/2021-02:43:00] INFO: Finished running Reference obfuscation transformer. [6ms]
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running Number obfuscation transformer.
[27/03/2021-02:43:00] INFO: Split 0 number constants into arithmetic instructions
[27/03/2021-02:43:00] INFO: Split 0 number constants into bitwise instructions
[27/03/2021-02:43:00] INFO: Finished running Number obfuscation transformer. [125ms]
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running String Encryption transformer.
[27/03/2021-02:43:00] INFO: Encrypted 11090 strings
[27/03/2021-02:43:00] INFO: Finished running String Encryption transformer. [49ms]
[27/03/2021-02:43:00] INFO: ------------------------------------------------
[27/03/2021-02:43:00] INFO: Running Flow Obfuscation transformer.
[27/03/2021-02:43:01] INFO: Inserted 110538 bogus switch jumps
[27/03/2021-02:43:01] INFO: Inserted 595787 bogus jumps
[27/03/2021-02:43:01] INFO: Mutilated 5633 null checks
[27/03/2021-02:43:01] INFO: Finished running Flow Obfuscation transformer. [762ms]
[27/03/2021-02:43:01] INFO: ------------------------------------------------
[27/03/2021-02:43:01] INFO: Running Hide code transformer.
[27/03/2021-02:43:01] INFO: Hid 59110 members.
[27/03/2021-02:43:01] INFO: Finished running Hide code transformer. [28ms]
[27/03/2021-02:43:01] INFO: ------------------------------------------------
[27/03/2021-02:43:01] INFO: Running Member Shuffler transformer.
[27/03/2021-02:43:01] INFO: Shuffled 56484 members.
[27/03/2021-02:43:01] INFO: Finished running Member Shuffler transformer. [8ms]
[27/03/2021-02:43:01] INFO: ------------------------------------------------
[27/03/2021-02:43:01] INFO: Writing output to "/home/facha/dev/fmcs/fmcs-stream-helper/radon/../target/FMCSStreamHelper_release.jar".
[27/03/2021-02:43:02] INFO: Error writing class tI.class. Skipping frames (might cause runtime errors).
me.itzsomebody.radon.exceptions.RadonException: Could not find org/jboss/marshalling/ByteInput
        at me.itzsomebody.radon.Radon.getClassWrapper(Radon.java:277)
        at me.itzsomebody.radon.Radon.lambda$buildHierarchy$5(Radon.java:310)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at me.itzsomebody.radon.Radon.buildHierarchy(Radon.java:307)
        at me.itzsomebody.radon.Radon.getTree(Radon.java:291)
        at me.itzsomebody.radon.Radon.isAssignableFrom(Radon.java:339)
        at me.itzsomebody.radon.asm.CustomClassWriter.deriveCommonSuperName(CustomClassWriter.java:56)
        at me.itzsomebody.radon.asm.CustomClassWriter.getCommonSuperClass(CustomClassWriter.java:42)
        at me.itzsomebody.radon.asm.lib.SymbolTable.addMergedType(SymbolTable.java:1200)
        at me.itzsomebody.radon.asm.lib.Frame.merge(Frame.java:1299)
        at me.itzsomebody.radon.asm.lib.Frame.merge(Frame.java:1197)
        at me.itzsomebody.radon.asm.lib.MethodWriter.computeAllFrames(MethodWriter.java:1607)
        at me.itzsomebody.radon.asm.lib.MethodWriter.visitMaxs(MethodWriter.java:1543)
        at me.itzsomebody.radon.asm.lib.tree.MethodNode.accept(MethodNode.java:802)
        at me.itzsomebody.radon.asm.lib.tree.MethodNode.accept(MethodNode.java:682)
        at me.itzsomebody.radon.asm.lib.tree.ClassNode.accept(ClassNode.java:426)
        at me.itzsomebody.radon.asm.ClassWrapper.toByteArray(ClassWrapper.java:254)
        at me.itzsomebody.radon.Radon.lambda$writeOutput$2(Radon.java:151)
        at java.base/java.util.HashMap$Values.forEach(HashMap.java:976)
        at me.itzsomebody.radon.Radon.writeOutput(Radon.java:146)
        at me.itzsomebody.radon.Radon.run(Radon.java:109)
        at me.itzsomebody.radon.Main.main(Main.java:121)
facha@facha-tetrapi:~/dev/fmcs/fmcs-stream-helper/ops$ 
ItzSomebody commented 3 years ago

Huge apologies @nfacha, I never saw this somehow. Were you able to get around this?