Wednesday 27 May 2015

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