Report
Obfuscation
Definition:
Obfuscation is
the obscuring (hiding) of intended meaning in communication, making the message
confusing, ambiguous or harder to understand.
Software Obfuscation:
In software
development, Obfuscation is the deliberate act of creating obfuscated code,
e.g. source or machine code that is hard to understand. Programmers may
obfuscate code for security or to secure its logic, in order to prevent reverse
engineering, tampering or recreational.
Android tool:
ProGuard is
the tool use in android for obfuscation. The ProGuard tool shrinks, optimizes, and obfuscates your code by removing
unused code and renaming classes, fields, and methods with semantically obscure
names. The result is a smaller sized .apk file that is more difficult to reverse engineer. Because
ProGuard makes your application harder to reverse engineer, it is important
that you use it when your application utilizes features that are sensitive to
security like when you are Licensing Your Applications.
ProGuard is integrated into the Android build system,
so you do not have to invoke it manually. ProGuard runs only when you build
your application in release mode, so you do not have to deal with obfuscated
code when you build your application in debug mode. Having ProGuard run is
completely optional, but highly recommended.
Some uses of ProGuard:
- Creating
more compact code, for smaller code archives, faster transfer across
networks, faster loading, and smaller memory footprints.
- Making
programs and libraries harder to reverse-engineer.
- Listing
dead code, so it can be removed from the source code.
- Retargeting
and pre-verifying existing class files for Java 6 or higher, to take full
advantage of their faster class loading.
References:
No comments:
Post a Comment