java - Is it really impossible to protect Android apps from reverse engineering? -


as know, android apps written in java. in java, no matter what do, impossible protect compiled code decompilation or reverse-engineering, stack overflow question how lock compiled java classes prevent decompilation? suggests.

how 1 go protecting app contains algorithmic trade secrets reverse-engineering?

by "how" mean not software techniques, other creative approaches.

the first stop me optimise , obfuscate code proguard known work byte code targeted @ android's dalvik vm (via dex). it's great tool , can increase difficulty of 'reversing' code while shrinking code's footprint (in cases dramatically: recent applet of mine went 600 kb down 50 kb).

like others saying, never 100% security of algorithm's details while implementation being distributed clients. that, you'd need keep code on servers alone. attempts near 100% percent security client code amount drm , can make client code fragile in face of network outages , frustrate (legitimate) users.

the android developers blog has useful articles on matter of 'tamper resistant' android apps (and recommend use of proguard part of overall approach).

with regards 'creative' approaches: developers employ debugger detection techniques prevent run-time analysis , combine encryption of portions of binary code (to deter static analysis), honest, determined enough attacker can circumvent these, while can cause legitimate user frustration illustrated windows kb article games: error message: debugger has been detected: unload debugger , try again. girlfriend's 'learn drive' dvd software not run under virtualbox reason, blames linux of course!

openrce , wikipedia's article on obfuscated code may starting points if want further. warned, may lose more through on zealous use of these techniques frustrating users through loss of trade secrets reverse engineering. anton s says, maybe 'creative' approach lies tweaking business model rather technology.

the latest android sdk update on 6th dec 2010 (coinciding android 2.3 gingerbread release):

integrated proguard support: proguard packaged sdk tools. developers can obfuscate code integrated part of release build.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -