Multiple choice technology security

Which of the following is true regarding reverse engineering of compiled Java code

  1. Java sand box environment provides protection against decompilation

  2. Java is compiled into ELF binaries and cannot be decompiled

  3. Java byte code can always be decompiled, code obfuscators can make the reverse engineering process more time confusing but cannot prevent it

  4. Java is difficult to decompile because the Just-In-Time compiler automatically perform string encryption by default

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

Java compiles to bytecode, not native ELF binaries. Bytecode can be decompiled back to readable Java code using widely-available tools. Code obfuscators rename variables and scramble control flow to slow down reverse engineering, but they cannot prevent decompilation entirely. The sandbox provides runtime security, not compilation protection.