Android病毒加固開發Demo
縱觀Android應用加固的歷史,我把Android加固劃分為4個階段:
1.java層整體加固
2.navtive層整體加固
3.類抽取動態加固
4.vmp虛擬指令表替換加固
階段越高,破解難度越大同時開發難度也一樣提高,所以現存的所有病毒中大多使用第二代整體加固的方法,今天我就來為大家展示一個最為基礎的Demo加固(加「殼」)。
加固後的效果如下:
使用類似androidkiller的反編譯工具打開APP後無法找到應用的真實smali信息,只能在工程管理器中發現殼的smali信息,殼的smali代碼如下:
我們發現該殼通過載入so文件後,將本該應該在java層實現的attachBaseContext()方法和onCreate()方法註冊成為native層方法,接下來我們就要去native層完成java層中attachBaseContext()和onCreate()的功能實現。
在我們瀏覽native層代碼前,我們得縷清這樣一個邏輯:加固的實質即為調用系統函數,所以smali文件中的native onCreate()方法就是在native層中完成殼的onCreate初始化,同理,native attachBaseContext()方法就是在native層中完成真實APK的運行。
首先我們要動態註冊 onCreate()和native attachBaseContext():
onCreate()的native實現:
attachBaseContext()的native實現:
因為本Demo是最為基礎的整體加固,在此基礎上大家可以加入加密、解密、破壞、修復達到第三代加固的效果。最後完整代碼已上傳百度網盤。
推薦閱讀:
※Android編譯打包燒錄
※你值得擁有!
※書單丨十年發展,這5本書帶你開啟Android系統探索之旅
※源碼解析之ListView
TAG:Android |