對(duì)未簽名的 APK 重簽名

在對(duì)某個(gè) APP 進(jìn)行逆向時(shí),最后一步將修改應(yīng)用到 APK 中往往會(huì)生成未簽名的 APK,而 Android 要求每個(gè) APK 都必須要有簽名才能被安裝,因此我們需要對(duì)未簽名的 APK 進(jìn)行簽名

1. 生成數(shù)字證書(shū)

在 keytool 所在的文件夾下(通常是 C:\Program Files\Java\jdk1.8.0_101\bin 之類(lèi)的)以管理員身份執(zhí)行如下命令

生成數(shù)字證書(shū)


-keystore? reverse_engineer.keystore 表示生成的數(shù)字證書(shū)的文件名為 "reverse_engineer.keystore";

-alias? rekeystore 表示證書(shū)的別名為 "rekeystore",可以與 keystore 一樣;

-keyalg RSA 表示生成密鑰文件所采用的算法為 RSA;

-validity 10000 表示該數(shù)字證書(shū)的有效期為10000天,意味著10000天之后該證書(shū)將失效;

然后根據(jù)提示輸入密鑰、地區(qū)等信息。最終,這條命令將生成名為 reverse_engineer.keystore 的數(shù)字證書(shū)

2. 重簽名

將數(shù)字證書(shū)拷貝到需要簽名的 apk 的目錄下,在 jarsigner 所在的文件夾下(通常是 C:\Program Files\Java\jdk1.8.0_101\bin 之類(lèi)的)以管理員身份執(zhí)行如下命令執(zhí)行如下命令


-keystore 表示使用當(dāng)前目錄中的 reverse_engineer.keystore 簽名證書(shū)文件;

-storepass 密鑰口令;

-signedjar crackme02_release.apk表示簽名后生成的APK名稱(chēng);

crackme02.apk 表示未簽名的APK;

rekeystore 表示 reverse_engineer.keystore 的別名


3. 重新安裝 APP

如果你不是被逆向的 APP 的作者,那么你重簽名時(shí)使用的私鑰在絕大多數(shù)情況下不會(huì)和逆向前的 APP 相同。在 Android 的安全策略下,這樣的 APP 是不能被安裝的,因此需要將之前的 APP 卸載掉,才能將重新打包后的 APK 重新安裝到 Android 設(shè)備上


參考文章:

Android反編譯(三)之重簽名

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,846評(píng)論 25 708
  • 參考什么是 Android 簽名機(jī)制,Bluebox Security 發(fā)現(xiàn)的漏洞有何威脅? Android應(yīng)用程...
    合肥黑閱讀 2,079評(píng)論 1 16
  • 寫(xiě)在前面 今天使用高德地圖為應(yīng)用添加Key的時(shí)候,發(fā)現(xiàn)有一項(xiàng)需要用到安全碼SHA1,而SHA1存在于Keystor...
    代碼咖啡閱讀 26,855評(píng)論 5 34
  • 1. 一個(gè)基本事實(shí):其實(shí)并沒(méi)有一種叫做“拖延癥”的病,對(duì)于大多數(shù)人來(lái)說(shuō),你、就、是:懶。 2. “拖延癥”患者通常...
    樂(lè)鈫閱讀 291評(píng)論 0 0
  • 早年還在校讀書(shū)的時(shí)候,時(shí)常抱著玩的心態(tài)。尤其是數(shù)學(xué)或物理,基本對(duì)于定義和闡述不屑一顧。比如“最大值”的定義,我從來(lái)...
    陳江都閱讀 517評(píng)論 0 4