Android alkalmazások visszafejtése

Az Android alkalmazások felépítése jelentősen eltér a többi platformon megszokottól. Az alkalmazások legnagyobb része Java nyelven készül, amelyek a Dalvik virtuális gépen futnak. Ez a működés a fejlesztő számára általában észrevehetetlen változásokat jelent az elkészült alkalmazás szempontjából, a motorháztető alatt azoban egy Dalvik byte-kód jelentősen eltér egy Java byte-kódtól.

Az alkalmazások elemzéséhez ezért más eszközökre is lehet szükség. Az app-ok visszafejtésének alapvetőn két útja képzelhető el. Az első megoldás az az, amikor a .apk file-okból kicsomagoljuk a dalvik byte-kódot tartalmazó .dex állományokat, amelyek így olvashatóvá válnak az elemző számára. A másik lehetséges elemzési módszer, ha a dalvik byte-kódot áttranszormáljuk Java byte-kóddá. Az így kapott alkalmazás ezután már könnyen elemezhető lesz a Java alakalmazások visszafejtéséhez használt eszközökkel.

A Dalvik byte-kód olvasásához nagyobb tapasztalatra lehet szükség, azonban az alkalmazás kódja ebben a formában akár meg is változtatható, így új lehetőségeket adva az elemző kezébe. A Java kóddá alakítás előnye azonban az, hogy így egy könnyebben érthető kódot kapunk, amiből a működést egyszerűbb visszafejteni. Fontos azonban megjegyezni, hogy az átalakítás során keletkezett java kód az esetek legnagyobb részében komolyan eltér az eredeti forráskódtól, így az alkalamzás kódjának a módosítására, és esetleges újrafordítására ebben a formában nincs lehetőség.