Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to avoid reverse engineering of an APK file?
    primarykey
    data
    text
    <p>I am developing a <strong>payment processing app</strong> for Android, and I want to prevent a hacker from accessing any resources, assets or source code from the <a href="http://en.wikipedia.org/wiki/APK_%28file_format%29" rel="noreferrer">APK</a> file.</p> <p>If someone changes the .apk extension to .zip then they can unzip it and easily access all the app's resources and assets, and using <a href="http://code.google.com/p/dex2jar/wiki/Faq" rel="noreferrer">dex2jar</a> and a Java decompiler, they can also access the source code. It's very easy to reverse engineer an Android APK file - for more details see Stack Overflow question <em><a href="https://stackoverflow.com/questions/12732882/reverse-engineering-from-apk-to-project">Reverse engineering from an APK file to a project</a></em>.</p> <p>I have used the Proguard tool provided with the Android SDK. When I reverse engineer an APK file generated using a signed keystore and Proguard, I get obfuscated code. However, the names of Android components remain unchanged and some code, like key-values used in the app, remains unchanged. As per Proguard documentation the tool can't obfuscate components mentioned in the Manifest file.</p> <p>Now my questions are:</p> <ol> <li>How can I <strong>completely avoid</strong> reverse engineering of an Android APK? Is this possible?</li> <li>How can I protect all the app's resources, assets and source code so that hackers can't hack the APK file in any way?</li> <li><strong>Is there a way to make hacking more tough or even impossible?</strong> What more can I do to protect the source code in my APK file?</li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload