標籤:

Android病毒加固開發Demo

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 |