国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android 反編譯指南

opengps / 1310人閱讀

摘要:存放第三方庫(kù)存放未經(jīng)過反編譯的等文件存放資源文件,例如圖片,顏色,字符等。這是初始應(yīng)用程序的運(yùn)行效果使用反編譯打開生成的目錄進(jìn)行修改修改為另一張準(zhǔn)備好的圖片注意前后命名一致。

我們下載到的 App 安裝包是 Apk 文件(Android Application Package) 。通過 Apk 文件,我們也可以得到這個(gè)應(yīng)用的代碼和資源文件,對(duì)應(yīng)用進(jìn)行修改。

那么我們?nèi)绾潍@取這些文件呢?這就需要 Android 反編譯技術(shù)

01 所需要的軟件

Apktool

反編譯 xml 文件和 dex 文件,并可以將編譯后的項(xiàng)目重新打包成 apk。
官方下載地址: Apktool
官方的速度有時(shí)候不穩(wěn)定,也可以從我的網(wǎng)盤中下載: 鏈接 密碼:xkao

dex2jar

將 classes.dex 轉(zhuǎn)換為「.jar」文件)
官方下載地址: dex2jar
我的網(wǎng)盤: 鏈接 密碼:xkao

jd-gui

查看「.jar」文件
官方下載地址: jd-gui
我的網(wǎng)盤: 鏈接 密碼:xkao

02 Apktool

我們可以通過 Apktool 可以將 apk 文件進(jìn)行反編譯,但是直接把 apk 的擴(kuò)展名改成「.zip」也可以對(duì)其進(jìn)行解壓并得到一些資源文件。

META-INF 里保存 App 的簽名信息

classes.dex

.dex 是 Dalvik 虛擬機(jī)上的可執(zhí)行文件,需要使用 dex2jar 將其轉(zhuǎn)換為 jar 文件

AndroidManifest.xml

Android 清單文件,向 Android 系統(tǒng)提供應(yīng)用的必要信息。

assets

存放一些資源文件字體,聲音等。

lib

存放第三方庫(kù)

original

存放未經(jīng)過反編譯的等 AndroidManifest.xml 文件

res

存放資源文件,例如圖片,顏色,字符等。

smali

smali 里存放的是 java 編譯成的 smali 代碼,smali 相當(dāng)于 Android 虛擬機(jī)上運(yùn)行的語(yǔ)言。

直接解壓可以得到一些資源文件,但是 AndroidManifest.xml 和其他的 xml 文件都是亂碼,通過 Apktool 進(jìn)行反編譯,可以最大限度的還原這些文件的內(nèi)容。

02 - 1 安裝 Apktool

Windows :

到?這里?或者我的 網(wǎng)盤鏈接 里下載好 script 腳本文件,修改名稱「apktool.bat」(如果從我的網(wǎng)盤下載,無須修改名稱)

到?這里?或者我的 網(wǎng)盤鏈接 下載 apktool,然后修改名稱為「apktool.jar」

「apktool.jar」「apktool.bat」移動(dòng)到 windows 目錄(一般在 C://windwos?下)

在命令行中輸入

$ apktool

?? ??
如果出現(xiàn)

則說明安裝成功,若沒有出現(xiàn),則需要把「apktool.jar」、「apktool.bat」的路徑添加到系統(tǒng)的環(huán)境變量中。

Mac OS:

到?這里?或者我的 網(wǎng)盤鏈接 里下載好 script 腳本文件,修改名稱「apktool」(如果從我的網(wǎng)盤下載,無須修改名稱) 。

到?這里?或者我的 網(wǎng)盤鏈接 下載 apktool,然后修改名稱為「apktool.jar」

「apktool」「apktool.jar」移動(dòng)到 /usr/local/bin目錄下

在命令行中 cd 到 /usr/local/bin中然后分別輸入下面兩條命令

$ chmod a+x d2j_invoke.sh
$ chmod a+x d2j-dex2jar.sh

在命令行中輸入

$ apktool

出現(xiàn)

則安裝成功

02 - 2 反編譯 Apk

cd 到 apk 的目錄下

輸入

$ apktool d test.apk

運(yùn)行完成后,得到一個(gè)包含資源文件和代碼的文件:

注意:
此時(shí) dex 文件直接反編譯成了 smali 文件,而我們需要的是 .dex 文件。

此時(shí)再運(yùn)行:

$ apktool d -s -f test.apk

-d 反編譯 apk 文件
-s 不反編譯 dex 文件,而是將其保留
-f 如果目標(biāo)文件夾存在,則刪除后重新反編譯

此時(shí)得到這樣的文件夾:

02 - 3 打包、簽名新的 Apk

為了演示如何將修改過后的 Apk 文件重新打包簽名,我寫了一個(gè)簡(jiǎn)單的 Demo:把 Demo 的背景換了之后,進(jìn)行打包、簽名。

這是初始應(yīng)用程序的運(yùn)行效果:

使用 Apktool 反編譯

打開生成的目錄進(jìn)行修改

修改 bg.jpg 為另一張準(zhǔn)備好的圖片(注意前后命名一致)。

重新打包

$ apktool b b_test -o newtest.apk

-b 是指 build
b_test 是剛才反編譯出的文件所在的目錄
-o 用于指定新的文件名稱,這里指定為「newtest.apk」

得到新的 apk 文件

注意:
此時(shí)的 apk 文件是不能安裝的,還需要對(duì)其進(jìn)行簽名。

對(duì)新的 Apk 進(jìn)行簽名:

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testjks -storepass password newtest.apk aliasName

簽名文件是我自己生成的,沒有辦法使用 Apk 原來的簽名進(jìn)行簽名。

現(xiàn)在將 Apk 安裝一下試試看:

可以看到,背景資源已經(jīng)成功替換成我們?cè)O(shè)置的第二張圖片了。

03 dex2jar

下載、解壓好 dex2jar

將上一步得到的 classes.dex 文件(有時(shí)候還有 classes2.dex,說明方法數(shù)過多,把它當(dāng)成 classes.dex 處理就好了)復(fù)制到 dex2jar 解壓好的目錄中。

在命令行中運(yùn)行:

$ sh d2j-dex2jar.sh classes.dex

如果提示:

d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied

執(zhí)行

$ sudo chmod +x d2j_invoke.sh

后再次執(zhí)行

$ sh d2j-dex2jar.sh classes.dex

運(yùn)行成功,在當(dāng)前目錄下生成了 classes-dex2jar.jar 文件。

04 jd-gui

安裝好 jd-gui 之后,用其將 classes-dex2jar.jar 打開,就可以看到反編譯出來的 java 代碼了!

這里的代碼沒有經(jīng)過混淆,所以命名容易識(shí)別,如果是從應(yīng)用市場(chǎng)下載下來的 apk 文件,反編譯出來的代碼大部分是混淆過后的代碼。

出于對(duì)開發(fā)者的尊重和為了保持應(yīng)用的穩(wěn)定,希望大家不要隨意修改別人的應(yīng)用程序,請(qǐng)僅從技術(shù)層面上妥善利用這一技術(shù)!

歡迎關(guān)注本文作者:

掃碼關(guān)注并回復(fù)「干貨」,獲取我整理的千G Android、iOS、JavaWeb、大數(shù)據(jù)、人工智能等學(xué)習(xí)資源。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74372.html

相關(guān)文章

  • Android 應(yīng)用防止被二次打包指南

    摘要:接下來,我就來詳解一下如何防止被二次打包。開發(fā)階段移動(dòng)應(yīng)用開發(fā)時(shí)接入安全組件,保護(hù)數(shù)據(jù)安全。 前言 Android APP二次打包則是盜版正規(guī)Android APP,破解后植入惡意代碼重新打包。不管從性能、用戶體驗(yàn)、外觀它都跟正規(guī)APP一模一樣但是背后它確悄悄運(yùn)行著可怕的程序,它會(huì)在不知不覺中浪費(fèi)手機(jī)電量、流量,惡意扣費(fèi)、偷窺隱私等等行為。 二次打包問題只是Android應(yīng)用安全風(fēng)險(xiǎn)中...

    PAMPANG 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<