[mobile]patch apk後重打包重簽名

patch apk後重打包重簽名

有很多時候想要逆向分析一個apk文件,單純的靜態分析不能解決我們的需求,我們需要patch一下apk的庫文件(比如patch反調試),或是修改java源碼等,我們希望修改之後重新打包成apk,然後裝入實機調試,那麼就需要將其重打包重簽名。

工具

java環境

java環境是必不可少的,後面的所有工具都依賴java環境。

apk tools

下載apk tools

https://ibotpeaches.github.io/Apktool/install/
在這裏插入圖片描述

以windows平臺來講,需要下載的內容有兩個,分別是途中畫紅框的,bat 腳本和apktool.jar 將bat腳本拷貝下來保存爲apktool.bat並與apktool.jar放在一個目錄下,我連測試用apk也放在了一起:
在這裏插入圖片描述

Android Studio

生成簽名文件用,官網下載即可:https://developer.android.com/studio

然後一頓下一步安裝即可,沒什麼坑。

解包

.\apktool.bat d .\test.apk

運行上述腳本進行解包:
在這裏插入圖片描述
解包好之後會出現test文件夾,裏面都是apk包中的內容:
在這裏插入圖片描述

patch文件

這裏我是patch了一下庫文件,原本庫文件中有ptrace反調試,被我nop掉了,然後將patch後的so文件與原文件替換:
在這裏插入圖片描述

重打包

patch之後我們想重新做成apk文件,首先要進行重打包。

再返回apktool目錄,運行下面指令重打包:

.\apktool.bat b test -o new_test.apk   //test:文件夾名  new_test.apk重打包後的名字

在這裏插入圖片描述
發現多了一個new_test.apk,這就是重打包好的apk文件:
在這裏插入圖片描述
但目前還無法正常安裝,因爲還沒有爲其簽名。

生成簽名文件

想要重打包成可以正常安裝的apk文件,我們還需要爲其簽名,這時我們需要準備一個簽名文件,可以使用Android Studio來生成

首先用Android Studio打開apk,然後頭部菜單中的build->Generate Signed APK
在這裏插入圖片描述

選擇apk:
在這裏插入圖片描述
新建一個key store password:
在這裏插入圖片描述

然後輸入祕鑰信息,選擇保存路徑,下面的密碼設置一下(我兩個密碼設置的一樣,反正我也分不清哪個是幹啥的),之後簽名的時候會用到,alias是祕鑰別名,起了別名之後也記住了,之後會用到,下面的certificate 中至少寫一行就可以了(參照網上攻略所說,並不是專業搞Android的,馬馬虎虎吧):
在這裏插入圖片描述
新版的Android studio會報這個錯:
在這裏插入圖片描述
不用管 ,直接ok,會自動給你改成新的祕鑰格式,然後什麼都不用碰,直接下一步,然後完成即可:
在這裏插入圖片描述
生成的祕鑰文件:
在這裏插入圖片描述

給apk簽名

給apk簽名用到java環境中的jarsigner,如果java環境安裝沒有問題的話,是自動有的,使用命令如下:

jarsigner.exe -verbose -keystore .\testSign.jks -signedjar test_finish.apk .\new_test.apk cat -digestalg SHA1 -sigalg MD5withRSA 
//.\testSign.jks  簽名文件
//test_finish.apk 給簽名玩生成的apk起個名
//.\new_test.apk  要簽名的apk
//cat      		  之前生成簽名文件時設置的別名

然後還需要輸入一下之前設置的密碼:
在這裏插入圖片描述
之後就自動申城了簽名好的apk:
在這裏插入圖片描述

安裝測試

在這裏插入圖片描述
在這裏插入圖片描述
安裝成功,並且成功將反調試patch調了。

參考資料

Android Studio生成簽名文件:https://m.imooc.com/article/details?article_id=73361

重打包重簽名:https://www.jianshu.com/p/792a08d5452c

https://www.jianshu.com/p/db709a280d9a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章