android 反編譯和打包簽名

apktool  

     作用:主要查看res文件下xml文件、AndroidManifest.xml和圖片。(注意:如果直接解壓.apk文件,xml文件打開全部是亂碼)

dex2jar

     作用:將apk反編譯成Java源碼(classes.dex轉化成jar文件)

jd-gui

     作用:查看APKclasses.dex轉化成出的jar文件,即源碼文件

 

然後我們把下到的工具放到同一個目錄:如我放在D:\APKTools目錄,重命名apktool_2.1.1.jarapktool.jar;解壓其他兩個文件壓縮文件

 

APKToolsdex2jar-2.0的路徑配置到系統環境變量中

 

準備一個測試apkTest_android.apk放進新建的test文件夾中,複製一個副本重命名爲Test_android.zip,然後解壓,你就可以看到一些東西了,不過這種方式看到的大部分文件內容都是亂碼,基本不可讀。不過不用擔心,通過apktool我們就可以得到除代碼文件外的大部分刻可讀文件了

 

之後就得到反編譯的文件夾,裏面的資源文件基本和原文件一樣,還原率超高

 

不過對於java文件就看不了,因爲這種方式得到的是.smali文件,必須通過另一種方式

經過這一步之後就生成了一個jar文件,在

 

 

之後用jd-gui.exe打開Test_android-dex2jar.jar,就得到了源代碼,

 

 

 

Smali2JavaUI不能用???

對於博主說得,先dex2jarclasses.dex轉爲jar,再jd-guijar轉爲源碼*.java文件。

現在可以用Smali2JavaUI這個軟件,一部到位。可以把這兩個步驟化爲一個步驟。

 

所以,如果只想反編譯看*.java文件的話,只用Smali2JavaUI軟件就可以了。

這個軟件可以直接打開***.apk文件,然後就直接看到*.java文件了。

Smali2JavaUI最新版本下載鏈接http://www.hensence.com/cn/smali2java/#Download

 

http://blog.csdn.net/ysc123shift/article/details/52985435

https://www.cnblogs.com/chen110xi/p/6612437.html


https://blog.csdn.net/wh_19910525/article/details/7915738/

1) 漢化apk應用程序省略

2)修改圖標標籤
每一個apk文件都有一個“圖標標籤”。將apk程序安裝進手機後,在圖標下面顯示圖標標籤文字。這個圖標標籤的內容是可以修改的。\res\values下找到strings.xml,修改其中的一行:
<string name="app_name">圖標標籤</string>
例如:<string name="app_name">靜音啓動</string>
同理,如果是窗口小插件,要修改widget_name。

3) 去掉apk中的廣告
有很多apk應用都帶有廣告。爲了去掉程序中的廣告,要修改main.xml文件與廣告有關的內容。在/res目錄下找到文件main.xml。通常在/layout目錄下,有時也被放在其它目錄下。甚至,有時不存在main.xml文件,廣告行被放在其它xml文件內。只能細心逐個文件進行查找。無論哪一種情況,查看其內容,你會看到有一項類似的命令如下。這就是廣告顯示。
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” /> 
將其改爲:
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” /> 
可以看到,關鍵是要把fill_parent改爲0.0dip,把wrap_content改爲0.0dip,其它內容保持不變即可。這種改法就是不給廣告顯示空間,當然你就看不到廣告了。

https://ibotpeaches.github.io/Apktool/documentation/

Decoding 

The decode option on Apktool can be invoked either from d or decode like shown below.

$ apktool d foo.jar// decodes foo.jar to foo.jar.out folder

$ apktool decode foo.jar// decodes foo.jar to foo.jar.out folder

$ apktool d bar.apk// decodes bar.apk to bar folder

$ apktool decode bar.apk// decodes bar.apk to bar folder

$ apktool d bar.apk -o baz// decodes bar.apk to baz folder

 

Building 

The build option can be invoked either from b or build like shown below

$ apktool b foo.jar.out// builds foo.jar.out folder into foo.jar.out/dist/foo.jar file

$ apktool build foo.jar.out// builds foo.jar.out folder into foo.jar.out/dist/foo.jar file

$ apktool b bar// builds bar folder into bar/dist/bar.apk file

$ apktool b .// builds current directory into ./dist

$ apktool b bar -o new_bar.apk// builds bar folder into new_bar.apk

$ apktool b bar.apk// WRONG: brut.androlib.AndrolibException: brut.directory.PathNotExist: apktool.yml

// Must use folder, not apk/jar file

 

Info 

In order to run a rebuilt application. You must resign the application. Android documentation can help with this.

 

修改完xml後,編譯apktool b bar

選擇 bar/dist/bar.apk file  去簽名

cddist目錄中

 

jarsigner [ options ] jar-file alias

jarsigner -verify [ options ] jar-file

 

-verify

如果它出現在命令行中,則指定的 JAR 文件將被校驗,而不是簽名。如果校驗成功,將顯示“jar verified”。如果試圖校驗未簽名的 JAR 文件,或校驗被不支持的算法(例如未安裝 RSA 提供者時使用的 RSA)簽名的 JAR 文件,則將有如下顯示: "jar is unsigned. (signatures missing or not parsable)"

可以校驗使用 jarsigner JDK 1.1 javakey 工具或共用二者簽名的 JAR 文件。

有關校驗的詳細信息,參見 JAR 文件校驗

 

-verbose

如果它出現在命令行中,則代表“verbose”模式,它使 jarsigner JAR 簽名或校驗過程中輸出額外信息。

 

-keystore url

指定密鑰倉庫的 URL。缺省值是用戶的宿主目錄中的 .keystore 文件,它由系統屬性“user.home”決定。

簽名時需要密鑰倉庫,因此如果沒有缺省的(或要使用非缺省的)密鑰倉庫,就必須明確指定一個。

校驗時不需要密鑰倉庫,但如果指定了一個,或存在缺省的,且 -verbose 選項也被指定了,則將輸出該密鑰倉庫中是否包含了用於校驗 JAR 文件的證書的附加信息。

注意: -keystore 參數實際上可以是指定的文件名(及路徑)而不是 URL,這種情況下它將當作“file:” URL. 也就是說,

  -keystore filePathAndName

被當作等價於

  -keystore file:filePathAndName

 

 

 jarsigner -verbose -keystore F:\code_android\generatesignedapk.jks app-debug.apk williamshen

 

  jarsigner -verify app-debug.apk,忽略警告



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