當前位置:首頁 » 編程軟體 » apk反編譯工具排行榜

apk反編譯工具排行榜

發布時間: 2023-03-19 18:00:19

⑴ 怎麼反編譯APK文件

一、dexmp方法

dexmp是emulator自帶提供的查看dex文件的工具,可使用類似這樣的命令將dex文件mp到txt文件中:

D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexmp.exe -d classes.dex > spk.mp.txt

得到的文件內容,描述了類的信息,但實在是不好讀啊~~~~

二、dex2jar + XJad 方法

該方法是使用dex2jar.jar包,將classes.dex文件解包成jar,在通過XJad(或者其他class反編譯工具)進行java反編譯。如:

1、dex2jar.bat d:\play\classes.dex

默認的輸出路徑同classes.dex,生成的文件名為classes.dex.dex2jar.jar

2、使用XJad反編譯該jar包

之後的使用方法,大家都懂的:)

該方法的好處在於,通過XJad反編譯後,大家可直接開到java源文件,缺點在於只能反編譯出開發時的java文件,而開發時使用的lib包不能反編譯出來。

三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法

這個方法就強大了,AXMLPrinter2是還原AndroidManifest.xml和main.xml的工具,直接打開這兩個xml文件是亂碼,而通過還原之後,可以很明白的看到裡面的內容(我猜測還是使用了位元組異或的方式加的密)。

baksmali.jar是反解析dex的工具,smali.jar則是再還原成dex的工具

操作方式如下:

1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml > AndroidManifest.txt

2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt

3、java -jar baksmali-1.2.5.jar -o classout/ d:\play\classes.dex

baksmali可解析(注意,是解析,不是反編譯)原java包以及引用的lib包,解析出的文件認真看還是能看懂,比如以下片段:

view plain to clipboardprint?
.class Lcom/paul/test/a;
.super Landroid/view/View;

# static fields
.field private static final a:Landroid/graphics/Typeface;

# instance fields
.field private b:I
.field private c:I
.field private d:Z
.field private e:J
.field private f:I
.field private l:[Ljava/lang/String;

# direct methods
.method static constructor ()V
.registers 2
sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;
const/4 v1, 0x0
invoke-static {v0, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;
return-void
.end method
#
# other methods ..........
#
# virtual methods
.method public onKeyUp(ILandroid/view/KeyEvent;)Z
.registers 4
const/16 v0, 0x42
if-eq p1, v0, :cond_8
const/16 v0, 0x17
if-ne p1, v0, :cond_b
:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V
:cond_b
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V
invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
move-result v0
return v0
.end method
.class Lcom/paul/test/a;
.super Landroid/view/View;

# static fields
.field private static final a:Landroid/graphics/Typeface;

# instance fields
.field private b:I
.field private c:I
.field private d:Z
.field private e:J
.field private f:I
.field private l:[Ljava/lang/String;

# direct methods
.method static constructor ()V
.registers 2
sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;
const/4 v1, 0x0
invoke-static {v0, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;
return-void
.end method
#
# other methods ..........
#
# virtual methods
.method public onKeyUp(ILandroid/view/KeyEvent;)Z
.registers 4
const/16 v0, 0x42
if-eq p1, v0, :cond_8
const/16 v0, 0x17
if-ne p1, v0, :cond_b
:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V
:cond_b
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V
invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
move-result v0
return v0
.end method

認真一看,就知道:

# static fields 定義靜態變數的標記

# instance fields 定義實例變數的標記

# direct methods 定義靜態方法的標記

# virtual methods 定義非靜態方法的標記

以onKeyUp方法為例,其中定義了處理邏輯,if-eq p1, v0, :cond_8 表示如果p1和v0相等,則執行cond_8的流程:

:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V

調用com.paul.test.a的d()方法

不相等: if-ne p1, v0, :cond_b 則執行cond_b的流程:

:cond_b
const/4 v0, 0x0

invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V

invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z

move-result v0

大概意思就是調用com.paul.test.a的setPressed方法,然後再調用父類View的onKeyUp方法

最後 return v0

該方法,能把外部引用的lib包類也解析出來,能開到包的全貌。缺點在於,解析出的smali文件並不是反編譯出的java文件,可讀性降低了,但仔細研究也能看出大概。

⑵ 什麼是APP怎麼打開

APP是應用程序Application的縮寫手機軟體,主要指安裝在智能手機上的軟體,完善原始系統的不足與個性化。使手機完善其功能,為用戶提供更豐富的使用體驗的主要手段。

手機軟體的運行需要有相應的手機系統,主要的手機系統有:蘋果公司的iOS,谷歌公司的Android(安卓)系統,塞班平台和微軟平台。

在Android平台中,dalvikvm的執行文件被打包為apk格式,最終運行時載入器會解壓,然後獲取編譯禪辯後的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制;

如果將apk文件傳到/system/app文件夾下,會發現執行是不受限制的。安裝的文件可能不是這個文件夾,而在androidrom中,系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。


(2)apk反編譯工具排行榜擴展閱讀


apk反編譯工具:

1、最典型的apk編譯工具的核心是apktool,但是因為操作需要調用cmd命令,所以出現了很多具有可視化界面的各種編譯工具,像easyapk、apkdb、doapk。

2、dex2jar.jar,將apk中的classes.dex轉化成Jar文件,再通過jd-gui工具反編譯jar文件。

apk編譯方法:

1、使用apkdb編譯apk文件,只需要在安裝apkdb後,直接右擊反編譯就可以將apk文件反編譯出賀孫缺來。

2、使用原生apktool工具,需要將apktool的兩個文件釋放到window目錄下,在cmd中使用apktooldapk文件名凱哪命令來編譯apk文件,此時命令行的執行目錄與apk文件所在目錄必須一致。

3、首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄,運行dex2jar.batclasses.dex。

AndroidSDK中包含了一個用於優化APK的新工具zipalign。它提高了優化後的Applications與Android系統的交互效率,從而可以使整個系統的運行速度有了較大的提升。

Android小組強烈建議開發者在發布新Apps之前使用zipalign優化工具,而且對於已經發布但不受限於系統版本的Apps,建議用優化後的APK替換現有的版本。

⑶ android 反編譯的res怎麼用

就像做菜一樣,首先我們要把料備齊,三個反編譯工具,apktool,dex2jar,jd-jui先下載下來,待用。還有有一個apk文件,一共四個文件。(簡單介紹下三個工具的作用,apktool是用來得到Android app的資源文件的,就是res文件。dex2jar和jd-jui是查看Android app源代碼的。接下來我就一步步帶大家實現反編譯。)
第一步,使用apktool得到 res文件。
壓縮下載上述工具中的apktool,解壓得到3個文件:aapt.exe,apktool.bat,apktool.jar ,將需要反編譯的APK文件放到該目錄下,
打開命令行界面(運行-CMD-回車) ,定位到apktool文件夾,(還有個簡單辦法,按住shift鍵,點擊滑鼠右鍵,在菜單中選擇「此處打開命令行窗口」),輸入以下命令:apktool.bat d -f Presidential.apk (Presidential.apk 是我要反編譯的apk的全名,apktool的指令這里就細講了,請同學們自己學習吧)命令行圖片和生成的文件的圖片如下圖。res文件就我們需要的資源文件啦。
第二步,查看apk文件的源代碼。首先將apk文件的後綴改為.rar或者.zip並解壓,得到其中的額classes.dex文件.,將獲取到的classes.dex放到之前解壓出來的工具dex2jar 文件夾內,然後用同樣的方法打開命令行,輸入:
dex2jar.bat classes.dex 回車,效果如下:
在改目錄下會生成一個classes_dex2jar.jar的文件,然後打開工具jd-gui文件夾里的jd-gui.exe,之後用該工具打開之前生成的classes_dex2jar.jar文件,便可以看到源碼了。

⑷ 有沒有可以反編譯安卓數據包的軟體(obb格式)

安卓手機上有一款軟體叫 apktool 的反編譯軟體應該可以解決你的問題 去論壇找找看

提供機鋒地址:http://bbs.gfan.com/forum.php?mod=viewthread&tid=6028134

祝你成功

忽然發現我看錯了 是obb數據包啥

obb是外部擴展的資源文件,加密

要在linux下面,掛載obb文件,必須知道它的密碼,要具備的知識太多了

⑸ 有沒有反編譯工具,可以把APK完全反成一個android項目的 , 這個android逆向助手只

我可以讓你看見項目的源碼,但是不知道怎麼才能將源碼放到eclipse中進行運行!~~我試了好多次,都不成功,導入工程後總是會出錯,不知道是我哪裡設置的和源碼中設置的不一樣!~~
方法是:第一步:你先把下載的包的後綴名改成.zip
第二步:到網上搜索dex2jar,下載一個,解壓到電腦磁碟中
第三步:打開你改完後綴名的.zip文件,將其中的.dex文件解壓出來,拷貝到dex2jar這個文件中,和lib文件夾放在同文件下
第四步:進入cmd命令,然後用cd 命令進入到dex2jar這個文件中,我的是這樣的cd C:\android反編譯工具\dex2jar-0.0.9.15\dex2jar-0.0.9.15,然後在執行dex2jar classes.dex這個命令,等待一會,反編譯好了後
第五步:到網上搜索jd_gui,然後下載一個解壓到磁碟,打開它然後點打開文件,找到剛剛反編譯好的那個文件夾,即dex2jar那個文件夾中找.jar文件,打開它就能看到源碼了!~~~
其它的資源文件什麼的就在剛剛你改完的那個zip文件中有。

不過你也可以將.apk文件再反編譯回來,在看資源和Androidmanifest.xml文件!~~~這個用到apktool,這個用起來挺簡單的,你可以到網上搜索一下!~~~

⑹ app和apk分別是什麼意思

app是指手機軟體,主要指安裝在智能手機上的軟體,完善原始系統的不足與個性化。使手機完善其功能,為用戶提供更豐富的使用體驗的主要手段。

APK是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似SymbianSis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。

1、app介紹。app即手機軟體的運行需要有相應的手機系統,目前主要的手機系統:1.蘋果公司的iOS.2.谷歌公司的Android(安卓)系統。

早期的手機主流系統有以下:Symbian、BlackBerry OS、Windows Mobile.但是在2007年,蘋果推出了運行自己軟體的iPhone;Google宣布推出Android手機操作系統平台。蘋果跟安卓兩款系統憑著強大的優勢,迅速佔領手機市場大部分份額。

2、apk介紹。apk文件和sis一樣,把androidsdk編譯的工程打包成一個安裝程序文件,格式為apk。 APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件。

Dex是DalvikVM executes的簡稱,即Android Dalvik執行程序,並非Java ME的位元組碼而是Dalvik位元組碼。Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows Mobile中的PE文件有區別。

在Android平台中,dalvik vm的執行文件被打包為apk格式,最終運行時載入器會解壓,然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制。

如果你將apk文件傳到/system/app文件夾下,會發現執行是不受限制的。安裝的文件可能不是這個文件夾,而在androidrom中,系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。

(6)apk反編譯工具排行榜擴展閱讀:

Android的官方app

就像iPhone的App Store一樣,Android也有自己的軟體商店–Market,Market中的軟體都是經過Google認可的,而且大部分應用軟體都是免費的,推薦大家通過Market下載安裝軟體。

在程序列表中點擊Market圖標,打開Market程序,首次使用會提示「Android Market服務條款」,點擊「接受」按鈕即可使用。Market軟體上方可以滾動的圖標是Google官方推薦的第三方特色軟體。

軟體分為應用程序和游戲兩類,打開後會有更加明細的分類,並能按人氣和時間進行排序,方便用戶選擇。點擊搜索,在搜索框中輸入關鍵詞,可找到所有包含該關鍵詞的軟體。

點擊一個軟體,將會顯示該軟體的詳細功能描述、網友評論、作者信息等內容。若想安裝此軟體,可以直接點擊「安裝」按鈕,然後會提示軟體許可權等信息,沒有問題的話,直接點擊「確定」按鈕,會自動下載並安裝此軟體。

軟體安裝成功後,我們可以在程序列表中找到軟體的快捷圖標,點擊即可運行使用。

⑺ apktool 反編譯apk後怎麼使用

1.下載反編譯工具
需要下載四個工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:將apk中的classes.dex轉化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。

2.解壓縮APK包
apk文件也是一種常見的zip,常用的壓縮軟體就可輕松地解壓apk文件。用壓縮軟體將apk文件中的文件解壓到一個文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。

3.反編譯dex文件
解壓apk文件後,你會發現res目錄的圖片沒有加密,但java源碼編譯成了一個classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉換成普通的jar包。
解壓下載的dex2jar,把解壓後的文件夾放到系統盤跟目錄中並把這個目錄加到系統path變數中,就可以直接用:dex2jar.bat或dex2jar.sh轉換dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通jar包的方法來反編譯這個jar包得到原文件。

4.反編譯jar包
得到jar包後,下載自已喜歡的反編譯工具,推薦使用JD-GUI,有比較簡單的圖形界面,可以反編譯單個class文件,也可以反編譯jar包,比較方便。
打開壓縮文件JD-GUI,運行jd-gui.exe,打開上面生成的jar包,即可看到源代碼了。

5.反編譯xml文件
打開解壓的res\layout目錄,有很多xml文件,如果你想看下作者是如何設計界面的,你會很失望,因為你看到的是一大堆亂碼!這個時候我們需要用到的是apktool。
具體操作方法:將下載的apktool和apktool-install-windows-r05-ibot兩個包解壓到同一個文件夾下,這個文件夾有三個文件:aapt.exe,apktool.bat,apktool.jar。把這個文件夾也放到系統盤的根目錄中並把這個目錄加到path變數中。以HelloWord.apk為例:
在DOS命令行中輸入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
這樣就得到了可以得到編譯的源碼和XML資源。
注意:文件的路徑中最好不要出現中文!

⑻ 有什麼軟體可以一鍵修改apk的名稱和圖標,教程也可以,簡單一些的。不要編程的。

這個涉及到.apk文件的打包岩棗和簽名,修改後整個程序會不可用甚至無法安裝,改了名字軟體的數字簽名就不對了,這也是安卓系統比Windows更安全的原因之一,就是防止木病馬毒篡改。

更改apk名稱我目畝螞前只知道pc端的修改方法,下載一個apk反編譯工具,將apk反編譯然後找到res文件夾裡面有一個values-zh-rCN/strings.xml,然後用記事本打開<string name="app_name">把後面的原應用程序名稱改為粗耐拆你想要的名稱,然後進行回編譯,,再簽名就可以了,簽名可以下載一個簽名軟體.
更改apk圖標很簡單,用手機下載一個re管理器,把apk安裝包解壓後進入res文件夾,然後進入drawable文件夾,裡面有一個icon.png或者app_icon.png反正是原來apk的圖標就行了,然後你再用另外一張你想要的圖片把名字改為icon.png或者app_icon.png(跟原圖標名字以及後綴名一樣就行了)粘貼到drawable文件夾,提示覆蓋確認就行了.

⑼ 有什麼手機軟體可以修改apk軟體

你好,建議使用小米人APK改之理:
小米人APK改之理是一款可視化的用於修改安卓Apk程序文件的工具,集成了ApkTool、Dex2jar、JD-GUI等Apk修改工具,集Apk反編譯、Apk打包、Apk簽名,支持語法高亮的代碼編輯器,基於文件內容的關鍵字(支持單行代碼或多行代碼段)搜索、替換引擎,打造成可視的、一體化的APK修改工具,從而大大簡化Apk修改過程中的繁瑣操作,修改更輕松。

APK簡單認識:
APK是AndroidPackage的縮寫,即Android安裝包(apk)。
APK是類似Symbian Sis或Sisx的文件格式。
通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。
apk文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。
APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執行程序,並非Java ME的位元組碼而是Dalvik位元組碼。

Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows Mobile中的PE文件有區別。
在Android平台中dalvik vm的執行文件被打包為apk格式,最終運行時載入器會解壓然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。
安裝的文件可能不是這個文件夾,而在android rom中系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。

⑽ APP怎麼打開

app打開的方式都是一樣的,直接點擊app的圖標,就可以打開app進入

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91