1. 程式人生 > >Android逆向 Android虛擬機器

Android逆向 Android虛擬機器

一 Dalvik:是Google開發執行在Android平臺的Java虛擬機器, Android程式編譯後會生成dex檔案。Dalvik虛擬機器下執行Java時,要將位元組碼通過即時編譯器(just in time ,JIT)轉換為機器碼(機器碼才是能真正執行的),

  也就是新安裝的程式第一次執行的時候會先轉換成機器碼再執行,這會拖慢應用的執行效率。

二 ART:Google開發的新的虛擬機器叫ART(Android Runtime),應用在第一次安裝到手機上時,位元組碼就會編譯成機器碼,這個過程叫預編譯。

  這樣新安裝的程式第一次執行也會很快了。

 

ART分二種模式,解釋模式和AOT機器碼模式。

1 解釋模式 

  取出Dex程式碼並逐條解釋,執行仍然很慢。

2 AOT機器碼模式

  安裝app時就編譯好Dex對應的機器碼,執行很快。這是Android5.0以後的版本預設的方式。

 

我們知道Android程式編譯後生成dex檔案

①可以用Google提供的apktool把dex檔案轉換為smali檔案。

②或者用dex2jar把dex檔案轉換成jar檔案,然後用jd-gui檢視jar包的java原始碼(直接開啟jd-gui,直接把jar包拖入jd-gui即可檢視)。

其他逆向工具:AndroidKiller, ApkIDE