1. 程式人生 > >Android安全/應用逆向--30--Small注入

Android安全/應用逆向--30--Small注入

7-7、smali注入

我們在破解某個APK時,通常是這樣的流程:先用某個工具逆向得到APK的原始碼,然後再修改原始碼,最後再用工具進行二次打包。通常是修改逆向出來的smali程式碼,而這個操作就叫:smali注入

本次實驗目標:修改啟動頁面

Smali注入攻擊步驟:

1、抓包進行資訊蒐集,包括關鍵URL、關鍵欄位等。

2、反編譯客戶端,使用apktool

3、查詢APP最先啟動的Activity,檢視Activity配置資訊中的intent-filter節點,如果action為Android.intent.action.MAIN,category為android.intent.category.LAUNCHER,那麼我就認為這個Activity是App執行後最先啟動的。而此時activity所對應的android:name就是第一個啟動頁面

4、查詢最先啟動的Activity名字。Activity標籤中的android:name屬性值

5、定位啟動Activity程式碼中的onCreate方法。在smali資料夾下,用Notepad++開啟該smali檔案

6、修改其函式下的暫存器個數,寫多一些。.locals的值

7、在“invoke-super{p0,p1},L<包名啟動名>;->onCreate(Landroid/os/Bundle;)V ”這條語句後面新增相關程式碼

示例程式碼:

const-string v7, "最牛逼!!"
const/4 v8, 0x1
invoke-static {p0, v7, v8}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/Char
Sequence;I)Landroid/widget/Toast;
move-result-object v9
invoke-virtual {v9}, Landroid/widget/Toast;->show()V

7、儲存,重打包,簽名

8、將顯示注入的toast程式碼(toast是指提示小窗)