我的位置: 首頁 > 學(xué)習(xí)專區(qū) > 安卓技術(shù) > 深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)

深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)

2016-08-31 16:14:15
來源:北大青鳥深圳嘉華學(xué)校
[導(dǎo)讀] 這里北大青鳥深圳嘉華老師將分享一些關(guān)于安卓開發(fā)教程中的加殼技術(shù)。希望能對想學(xué)安卓開發(fā)、或者是安卓開發(fā)工程師們有所幫助。一、加殼技術(shù)原理所謂apk的加殼技術(shù)和pc exe的加殼原理一樣,就是在程序的外面再包裹上另外一段代碼,保護(hù)里面的代碼不被非法修改或反編譯,在程序運(yùn)行的
這里北大青鳥深圳嘉華老師將分享一些關(guān)于安卓開發(fā)教程中的加殼技術(shù)。希望能對想學(xué)安卓開發(fā)、或者是安卓開發(fā)工程師們有所幫助。
一、加殼技術(shù)原理
所謂apk的加殼技術(shù)和pc exe的加殼原理一樣,就是在程序的外面再包裹上另外一段代碼,保護(hù)里面的代碼不被非法修改或反編譯,在程序運(yùn)行的時候優(yōu)先取得程序的控制權(quán)做一些我們自己想做的工作。
PC exe的加殼過程如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
二、android apk加殼實(shí)現(xiàn)
要想實(shí)現(xiàn)加殼需要解決的技術(shù)點(diǎn)如下:
(1)怎么第一時間執(zhí)行我們的加殼程序?
首先根據(jù)上面的原理我們在apk中要想優(yōu)先取得程序的控制權(quán)作為android apk的開發(fā)人員都知道Application會被系統(tǒng)第一時間調(diào)用而我們的程序也會放在這里執(zhí)行。
(2)怎么將我們的加殼程序和原有的android apk文件合并到一起?
我們知道android apk最終會打包生成dex文件,我們可以將我們的程序生成dex文件后,將我們要進(jìn)行加殼的apk和我們dex文件合并成一個文件,然后修改dex文件頭中的checksum、signature 和file_size的信息,并且要附加加殼的apk的長度信息在dex文件中,以便我們進(jìn)行解殼保證原來apk的正常運(yùn)行。加完殼后整個文件的結(jié)構(gòu)如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
(3)怎么將原來的apk正常的運(yùn)行起來?
按照(2)中的合并方式在當(dāng)我們的程序首先運(yùn)行起來后,逆向讀取dex文件獲取原來的apk文件通過DexClassLoader動態(tài)加載。
具體實(shí)現(xiàn)如下:
(1)修改原來apk的AndroidMainfest.xml文件,假如原來apk的AndroidMainfest.xml文件內(nèi)容如下:
1.  <application  
2. android:icon="@drawable/ic_launcher"  
3. android:label="@string/app_name"  
4. android:theme="@style/AppTheme" android:name="com.android.MyApplication" >  
5. </application>
修改后的內(nèi)容如下:
1. <application  
2.android:icon="@drawable/ic_launcher"  
3. android:label="@string/app_name"  
4. android:theme="@style/AppTheme" android:name="com.android.shellApplication" >  
5.<meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.android.MyApplication"/>
6. </application>
com.android.shellApplication這個就是我們的程序的的application的名稱,而
7.<meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.android.MyApplication"/>
是原來的apk的application名稱。
(2)合并文件代碼實(shí)現(xiàn)如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
  1. 在我們的程序中加載運(yùn)行原來的apk文件,代碼如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
 
 
評論
熱點(diǎn)專題
>>
相關(guān)文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
色国产综合免费视频在线播放 | 亚洲欧美日韩高清一区二区 | 午夜福利啪爽国产片精品 | 亚洲香蕉一本大道在线 | 在线播放大乳大屁股系列 | 在线6区不卡一区二区 |