5. Why Java?
-Java code is partially compiled
and then interpreted
-JVM and opcodes are fixed
-Few instructions
-No real protection
6. Why Android?
-APKs are easily downloadable
-Obfuscation does not happen by
default
- APK to JAR translation is easy
7. Legal issues
Small set:
!
- Don’t decompile, recompile and
pass it off as your own
- Don’t try to sell it as your own
- If License Agreement forbids
decompiling, do not decompile
-Don’t decompile to remove
protection mechanisms
8. Legal issues
US
!
- Precedents allowing
decompilation
!
(Sega vs. Acolade, http://digitallaw-online.info/cases/
24PQ2D1561.htm)
9. Legal issues
EU (Directive on the Legal
Protection of Computer Programs
)
- Allows decompilation
!
(if you need access to internal
calls and authors refuse to divulge
API)
!
BUT:
!
-Only to interface your program
-Only if they are not protected
32. Protecting your source
[We want] to protect [the] code by making
reverse engineering so technically difficult
that it becomes impossible or at the very
least economically inviable.
!
-Christian Collberg,