Recently I am working on an Android app that communicates with the API server. So to prevent server access from outside, and only allow access from app I hard coded access keys inside the APK
. For experiment purpose I reverse engineer my app and everything I can see as everyone see a white blue sky in the beautiful morning. I decided to make some encryption to keys and hard coded in depth areas like gradle.properties
, res
directory etc. After decompiling again I found everything clearly. I again continue to use NDK
, but by following some steps from internet I successfully reverse the C++ file as well and got the content I placed there for testing.
There are many posts regarding this topic:
How to avoid reverse engineering of an APK file?
Protect Android App from reverse engineering
And the summary of all is we cannot secure sensitive data completely.
After all this research can anyone tell how WhatsApp, Viber, Banking and other popular apps secure their server access and keys, as it is not legal to reverse engineer one of them but may be some body can help me out to understand what kind of techniques these popular apps use to secure the APK
sensitive data?