招生熱線
0755-86191118 0755-86191118
我的位置: 首頁 > 學(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的加殼原理一樣,就是在程序的外面再包裹上另外一段代碼,保護里面的代碼不被非法修改或反編譯,在程序運行的
這里北大青鳥深圳嘉華老師將分享一些關(guān)于安卓開發(fā)教程中的加殼技術(shù)。希望能對想學(xué)安卓開發(fā)、或者是安卓開發(fā)工程師們有所幫助。
一、加殼技術(shù)原理
所謂apk的加殼技術(shù)和pc exe的加殼原理一樣,就是在程序的外面再包裹上另外一段代碼,保護里面的代碼不被非法修改或反編譯,在程序運行的時候優(yōu)先取得程序的控制權(quán)做一些我們自己想做的工作。
PC exe的加殼過程如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
二、android apk加殼實現(xiàn)
要想實現(xiàn)加殼需要解決的技術(shù)點如下:
(1)怎么第一時間執(zhí)行我們的加殼程序?
首先根據(jù)上面的原理我們在apk中要想優(yōu)先取得程序的控制權(quán)作為android apk的開發(fā)人員都知道Application會被系統(tǒng)第一時間調(diào)用而我們的程序也會放在這里執(zhí)行。
(2)怎么將我們的加殼程序和原有的android apk文件合并到一起?
我們知道android apk最終會打包生成dex文件,我們可以將我們的程序生成dex文件后,將我們要進行加殼的apk和我們dex文件合并成一個文件,然后修改dex文件頭中的checksum、signature 和file_size的信息,并且要附加加殼的apk的長度信息在dex文件中,以便我們進行解殼保證原來apk的正常運行。加完殼后整個文件的結(jié)構(gòu)如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
(3)怎么將原來的apk正常的運行起來?
按照(2)中的合并方式在當(dāng)我們的程序首先運行起來后,逆向讀取dex文件獲取原來的apk文件通過DexClassLoader動態(tài)加載。
具體實現(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)合并文件代碼實現(xiàn)如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
  1. 在我們的程序中加載運行原來的apk文件,代碼如下:
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
深圳嘉華學(xué)校安卓開發(fā)教程之加殼技術(shù)
 
 
評論
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
日韩中文无线码免费观看 | 欧美日韩激情一区二区 | 在线观看免费午夜A级毛∧ 日韩欧美亚洲国产精品影视在线 | 在线视频亚洲欧美 | 中文字幕偷乱视频 | 伊人久久五月天综合网 |