Android安全/應用逆向--30--Small注入
阿新 • • 發佈:2018-12-13
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是指提示小窗)