當前位置:首頁 » 網頁前端 » apk轉腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

apk轉腳本

發布時間: 2022-08-03 08:21:56

⑴ 求高手我手裡有個APK付費的腳本誰能幫我破解了

您好,基本上破解了也是沒用的。一般有經驗的腳本寫手都會把部分的代碼存儲在按鍵伺服器上面,即使你脫殼破解屏蔽了他的網路驗證,同時也下載不鳥那一小部分代碼,腳本就無法正常使用。

⑵ 有誰會安卓模擬器APK腳本定製

就是添加你電腦上的APK應用,如果沒有APK,這安卓模擬器也是沒意義的存在。 比如你想安裝一個游戲到模擬器上,這個游戲必須是APK文件 才能安裝。 你可以在模擬器上找自己喜歡的APK應用安裝 也可以添加本地APK(就是你電腦上的APK應用)到這個模擬器上。

⑶ 腳本精靈 .se文件怎麼樣生成APK

解決方案:
重新進入.se文件)復制到手機內存卡根目錄(或者其它你可以找到目錄)
3,此時軟體界面退出,點擊確定即開始執行腳本,點擊「導入」
4,點擊下方的「設置」. 返回腳本列表,出現懸浮條
2,此時便可看到效果,如果打勾則取消
3,點擊「載入」,點擊腳本精靈懸浮條第三個按鈕「播放」,點擊游戲「開始」以後、 獲取設備信息(IMEI)
~ 1 /,彈出配置框
3。
如果P的位置不準、 腳本刷分說明
目前僅支持戀舞模式; 2 ~
進入腳本精靈. 點擊「配置」. 看「性能設置」裡面的「設備兼容模式」後面的復選框是否打勾,初次測試默認即可),看看是否花屏或者黑屏,即手機截圖
6,點擊第四個按鈕「停止」. 點擊懸浮條第二個按鈕,點擊第三項「系統信息」。
五,回遊戲大廳准備進入下一首歌曲
四,出現第二行,由於手機性能的差異,戀舞模式,在出現的懸浮窗(類似於文件管理器)裡面找到你剛才復制到手機中的腳本,在合適的時間點擊P鍵,不同的手機P的效果會有很大差異. 當一首歌播放完畢時,腳本幫你按P鍵
全自動的完全無需手動操作
4,向左或者向右、 下載導入腳本
1,然後做出判斷,點擊第二行倒數第二個按鈕,正常情況下應該是手機界面的一個縮小版. 如果正常則表示你的手機可以使用腳本精靈戀舞刷分腳本. 進入軟體. 點擊最後一項「腳本界面顯示設置」. 退出腳本精靈軟體,出現懸浮條
5. 下載戀舞刷分腳本(後綴名為. 在腳本列表點擊戀舞腳本. 進入腳本精靈腳本列表,一般情況下5像素會有明顯效果,點擊右上方第二個按鈕。
二,在這里可以看到配置參數(不同解析度手機配置參數不同,點擊「載入」,大多偏向於精確位置的左側或者右側。
半自動的前面的按鍵需要自己手動點、 界面配置及使用
1,點擊第一個選項「程序配置」
2,每點擊一次增加或減少1像素,就可以在腳本列表找到剛才導入的腳本了
三,不保證全P,腳本刷分的原理是通過取色獲取屏幕上紅色進度條的位置,選擇第二項「播放腳本前顯示」
4,此時軟體界面退出一. 將腳本文件(.se的腳本文件)
2,點擊「設置」. 進入戀舞OL,可以在播放前調整參數優化P的位置、 使用前的檢測
1,隨便點擊一個腳本

⑷ 安卓手機用的程序是APK文件,請問怎麼製作這種程序

安卓軟體的編程語言是C語。首先你要懂C語來編寫一個軟體的基建功能。做好這個功能的文件叫腳本,然後通過電腦把這個腳本生成軟體,最後用Apk打包工具打包。

⑸ 如何使用python寫一個android打包apk的腳本

這個不難,學學就行了。

⑹ 安卓手機用的程序是APK文件,請問怎麼製作這種程序

安卓
軟體

編程語言
是C語。首先你要懂C語來編寫一個軟體的基建功能。做好這個功能的文件叫
腳本
,然後通過電腦把這個腳本生成軟體,最後用Apk打包工具打包。

⑺ 安卓lua的腳本怎麼弄成apk

有現成的腳本代碼很好辦,安卓叉叉小精靈就能弄。
先用集成開發環境導出腳本文件,然後去小精靈後台上傳,改名改圖標就能弄成apk了,幾分鍾的事~

⑻ APK怎樣編寫

第一部分:apk應用介紹,解包和打包,常用軟體
相信每為機友對APK文件都不陌生。你可能每天都與APK文件打交道,無論是安裝和卸載有用的應用工具、插件、好玩的游戲等等。。。尤其是最近關於2.3.4 XXJVP ROM的漢化,更成為論壇里的熱門話題。你們可曾知道ROM是怎樣漢化的嗎?說來容易做來難。這里要涉及很廣泛的知識、手段,以及要花大量的時間。
1. APK文件簡介
APK是Android Package的縮寫,即Android application package文件或Android安裝包。每個要安裝到Android平台的應用都要被編譯打包為一個單獨的文件,擴展名為 .apk。APK文件是用專業軟體eclipse編譯生成的文件包,其中包含了應用的二進制代碼、資源、配置文件等。通過將APK文件直接傳到Android手機中執行即可安裝。APK文件其實就是zip格式,但其擴展名被改為apk,在Windows下用解壓軟體WinRAR/WinZIP/7-Zip可以直接打開。解壓後,你會看到有幾個文件和文件夾。一個典型的APK文件通常有下列內容組成:
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik位元組碼
resources.arsc 編譯後的二進制資源文件
META-INF\ 該目錄下存放的是簽名信息
res\ 該目錄存放資源文件
assets\ 該目錄可以存放一些配置文件
下面對這些文件和目錄做些基本的注釋和介紹:
• AndroidManifest.xml
該文件是每個apk應用程序都必須包含的文件,它描述了應用程序的名字、版本、許可權、引用的庫文件等等信息。
• classes.dex文件
classes.dex是java源碼編譯後生成的java位元組碼文件。dex是Dalvik VM executes的全稱,即Android Dalvik執行程序。利用解析工具可以將其轉換成java來加以閱讀和理解。
• resources.arsc
編譯後的二進制資源文件。在做主題美化時要常與這個文件打交道。
• META-INF目錄
META-INF目錄下存放的是簽名信息,有三個簽名文件,用來保證apk包的完整性和系統的安全。在eclipse編譯生成一個apk包時,會對所有要打包的文件做一個校驗計算,並把計算結果放在META-INF目錄下。這就保證了apk包里的文件不能被隨意替換。比如拿到一個apk包後,如果想要替換裡面的一幅圖片,一段代碼, 或一段版權信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染和惡意修改增加了難度,有助於保護系統的安全。
• res目錄
res目錄存放資源文件。包括圖片,字元串等等。res下有若干個子目錄,主要為drawable,layout,xml。
解包後,幾乎所有可能的修改和編輯工作基本都在這里。漢化ROM的主要工作就在這里。漢化ROM實際上就是漢化所有的apk應用程序的字元文件。
• assets目錄
assets目錄可以存放一些配置文件,這些文件的內容在程序運行過程中可以通過相關的API獲得。
下面以「設置」應用程序Settings.apk為例。用WinRAR打開文件後,看到以上介紹的六項內容。現在,即使你已經對文件解壓,你還是無法直接閱讀每個文件的內容。為了讀出這些文件的內容,從而進行進一步的修改和編輯,你就必須具有相應的工具了(請到第二節)。
2. APK應用程序的解包和打包工具
這一節主要介紹在Windows系統中常用的幾個工具包,用來對apk應用程序進行解包、打包、反編譯、解析。所有apk工具包都要求java環境(這個我就不介紹了,自己學習去吧)。這些工具可以從網上各個論壇獲取。我在近一個月里收集了幾個常用的工具包,我會打包上傳與有志於對apk進行操作的機友分享。主要推薦有三個工具包。
1) apktool
apktool可能是當今最為流行的apk工具包,由解包、打包、簽名程序組成。被稱之為「apk反編譯利器」。去Google一下apktool,有非常多的資源,無論是軟體下載,還是使用教程。對非三星的應用程序進行操作,很好用。
打開apktool工具包,看到如下內容:
Akp程序的解包和打包軟體由2個程序來完成:apktool.jar 和 aapt.exe。
另外提供一個批處理文件:apktool.bat,其內容為:
java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
運行apktools.jar需要java環境(1.6.0版本以上)。apktool.jar用於解包,apktool.jar和aapt.exe聯合用於打包。testkey.pk8和testkey.x509.pem是簽名程序。
解包命令:
apktool d xxxxxx.apk ABC
這里「d」表示要解碼。Xxxxx.apk是要解包的APK文件。ABC是子目錄名。解包的文件會放在這個子目錄內。
打包命令:
apktool b ABC yyyyy.apk
這里「b」表示要打包,ABC是子目錄名,是解包時產生的子目錄,用來存放所有解包後的和修改後的文件。yyyyy.apk是打包後產生的新的APK文件。
在上傳的apk工具包里,已經另外加了兩個批處理文件:Unpack-apk.bat和Repack-apt.bat。前者用於apk的解包過程,後者用於編輯後的文件的打包和簽名。把待解包的apk文件放到Unpack-apk.bat的同一個目錄里,雙擊Unpack-apk.bat,apk文件解包開始,產生3個子文件夾,解包後的文件被放在Working_APK文件夾內。詳細內容將在第二部分描述。另外,批處理文件允許同時對多個apk文件順序進行解包和打包。
注意:文件名里不允許有空格,不能有中文。
使用前,要先安裝框架文件:apktool if framework-res.apk
如果是三星系統,還要安裝:apktool if twframework-res.apk
2) apk manager
apk manager是另一個「apk反編譯利器」。它比apktool工具包還要強大些。三星的許多apk系統應用程序用了三星的閉源系統,用apktool可以解包,但是打包不成功。這時,apk manager就好用了。
打開apk manager工具包,看到如下內容。軟體都放在other子目錄里。運行apk manager要求adb工具包(見下圖中的3個adb文件)。把待解包的apk文件放到place-apk-here-for-modding子目錄里,雙擊腳本批處理程序Script.bat,選擇選項:9,產生一個子文件夾projects,解包後的文件被放在這個子文件夾內。詳細內容將在第二部分描述。
在使用時,有時apktool和apk manager交替使用,一個不行就用另外一個。 所以,在編輯apk應用程序時兩者都要掌握。
注意:文件名里不允許有空格,不能有中文。
使用前,要先安裝框架文件:apktool if framework-res.apk
如果是三星系統,還要安裝:apktool if twframework-res.apk
3) Dex2jar和XJad
該方法不是直接對apk文件進行解包。它是首先提取apk文件內的classes.dex文件,然後使用dex2jar.jar工具包將classes.dex解包成jar文件,再通過XJad 或者其他class反編譯工具進行java反編譯,最後生成java源文件。
但是,使用這個工具包無法進行classes.dex的還原(當然也無法進行apk的打包)。盡管如此,這個工具包仍然很重要,因為它把classes.dex文件轉換成了可以更容易閱讀的java源文件。在修改apk應用程序時,必不可少,是一極強的輔助工具。相比之下,apktool和apk manager反編譯後得到的是Dalvik 反編解碼 (Dalvik opcodes),需要很專業的知識來閱讀,很不直觀。如果你讀懂了java源文件,那修改相對應的Dalvik碼不就容易多了嗎。
4) 其它工具包簡介
此外,還有許多工具包可用。這些也容易在網上找到。
a) DoAPK
DoAPK實際上就是apktool工具包。有人把apktool寫成了帶窗口界面的可執行文件。
b) Google Smali
有兩個程序:baksmali.jar和smali.jar。baksmali.jar用來反解析dex和odex文件,得到Dalvik碼。然後用smali.jar還原成dex文件。例如,在修改狀態欄時間顯示顏色時,要用的這兩個解析程序。
c) AXMLPrinter2.jar
AXMLPrinter2.jar對apk文件內的 AndroidManifest.xml和main.xml進行操作,將XML還原成文本文件,便於閱讀。
d) Apkdb
是一個集成apktool,smali,Dex2jar,簽名等功能的工具。
e) 其它工具
不再介紹。自己動手到網上去搜索吧。
我把這些收集到的apk工具包打包上傳,供你們使用,免得你們找來找去。
集成Apk工具包下載地址:
http://u.115.com/file/clnar7bm
第二部分:三星閉源系統apk文件的處理,漢化和簽名

在這一部分,我們要進入實戰。首先,利用一個具體的例子來闡述apk工具包的使用,對apk文件進行解包、漢化、打包和簽名。然後,我們來對付三星閉源系統的apk程序,達到我們修改、漢化和美化的目的。我們假定所有apk文件都是單個獨立文件,不含odex文件(在官版ROM中,通常每個apk都分成兩部分,第一部分是apk,第二部分是odex。將它們合並是另一個題目,這里不作敘述)。

1. 配置框架(Framework)環境

在處理APK文件時,apktool需要框架文件(framework-res.apk)來解碼和打包。apktool已經包含了標準的框架,所以在大多數APK文件的解包時,不需要另外提供框架文件。但是,某些製造商(例如三星)使用了他們自己的框架文件,為了解包,就不得不從手機中或從ROM中把框架文件(framework-res.apk)提取出來,然後安裝到計算機。安裝命令是:

apktool if framework-res.apk
安裝後就會得到:~\apktool\framework\1.apk
注意:三星系統(例如:I897)有兩個框架文件:framework-res.apk和twframework-res.apk。在使用apktool之前,要安裝這兩個框架文件。安裝方法同上:

apktool if framework-res.apk
apktool if twframework-res.apk
安裝後就會得到:~\apktool\framework\1.apk和
~\apktool\framework\2.apk。
許多人拿來apktool工具包用,說解不開包,運行出錯。原因是沒有配置框架環境。

2. akp文件的漢化和修改

我首先來講對一般的(非三星)apk應用程序進行解包、漢化和打包。為你們方便和敘述目的,我在上傳的apktool和apk manager工具包里都帶了一個小的apk應用程序SilentBoot_EN.apk。這個程序是「靜音啟動」,就是通過這個程序來設置開機時是否有開機音樂。我在我的2.3.4 XXJVP ROM里也集成了這個akp程序,現在你們自己來把它漢化一下吧。我們用apktool工具包來做。

漢化步驟如下:

1) apk程序解包首先把SilentBoot_EN.apk復制到Unpack-apk.bat的同一個目錄里(我已經放好了)

雙擊Unpack-apk.bat,apk文件解包開始。DOS窗口出現,顯示解包進程和一系列信息,直到解包結束。

apk-04.gif
解包結束後,在工作目錄下產生3個子文件夾:New_APK,Raw_APK和Working_APK。解包了的文件被放在Working_APK文件夾內,原始apk文件(SilentBoot_EN.apk)被復制一份到Raw_APK文件夾保存。見界面截圖如下:
apk-05.gif
在Working_APK字文件夾里產生了一個子夾_SilentBoot_EN.apk,裡面存放所有解包後的文件。在_SilentBoot_EN.apk之下有兩個文件夾 /res和/smali,還有兩個文件AndroidManifest.xml和apktool.yml。用文本編輯器打開AndroidManifest.xml看看,是不是在第一部分里介紹的內容。你要修改的內容在/res文件夾內。
打開/res文件夾,看到裡面有5個子夾,/drawable存放apk應用的圖標(Icon),drawable-hdpi存放其它要用的圖形文件,/layout是apk的布局文件,/values里是字元文件。漢化apk就是漢化/alues文件夾內string.xml文件的內容。

2) 字元漢化

這里只適用於懂英語的同學。如果你不懂英語,就照表抄課好了。

用文本編輯器打開string.xml,其內容為:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="app_name">Silent Boot</string>
<string name="labelEnabled">Enable Silent Boot</string>
<string name="textEnabled">Device is muted on shutdown.</string>
<string name="textDisabled">Device is NOT muted on shutdown.\nBoot sound is played if the device is shut down with sounds enabled.</string>
</resources>
要漢譯的字元是:Silent Boot,Enable Silent Boot,Device is muted on shutdown,Device is NOT muted on shutdown.\nBoot sound is played if the device is shut down with sounds enabled。
先別急,我現在來教你怎樣處理文件。有兩種漢化方法:a) 正規漢化,b) 強制漢化。

a) 正規漢化

一個apk應用在漢化後應該能在英文和中文系統下都能使用。/values目錄下的是英文語言包。為了建一個中文語言包,與/values並行創建一個子文件夾:/values-zh-rCN(必須用這個文件名!)。這里values-zh是中國地區語言包(包含港澳台及內地),values-zh-rCN是中文簡體語言包(只包含內地),values-zh-rTW是中文繁體語言包(港澳台)。
把/values文件夾里的strings.xml等語言文件復制進/values-zh-rCN。在我們的例子中,只有strings.xml一個文件。
進入/values-zh-rCN,用文本編輯器打開strings.xml,然後你就翻譯吧,把英文描述譯成相應的中文。
例如,我們可以把上面的string.xml文件譯成:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="app_name">靜音啟動</string>
<string name="labelEnabled">開啟靜音啟動</string>
<string name="textEnabled">關機也是靜音</string>
<string name="textDisabled">關機不是靜音\n如果沒有開啟靜音啟動,關機時播放開機音樂。</string>
</resources>
裡面有個操作符「\n」是換行符,迫使換行顯示文本內容。之後存檔,用「另存為」(Save As)存成UTF-8格式。這是保持中文文本的格式。
在作漢化工作時,要對string.xml文件進行修改。有時也需要修改其它xml文件,一個一個地認真查看,一個一個地漢化。
b) 強制漢化

所謂「強制漢化」就是不產生/values-zh-rCN文件夾。而是在/values文件夾內把需要漢化的文件都直接譯成中文。顯然,如果在英文操作系統中沒有中文字型檔的話,強制漢化的apk在英文系統中可能顯示亂碼。所以,建議養成良好習慣,採用「正規漢化」。
高級內容:以上的漢化是修改string.xml,把英文譯成相應的中文就好了,然後打包和簽名。但是,在有些apk文件里,所顯示的字元文字並不都在xml文件里。apk原作者把某些字元寫在代碼中。反編譯後,存放在/smali文件夾里。一層一層地找下去,最後你會看到一大堆Dalvik碼文件,都是以.smali為文件擴展名。舉一個例子,用文本編輯器打開某個.smali文件,看到:

const-string v5, "ServiceMode"
「ServiceMode」會在apk執行時顯示為英文。因此,需要漢化。在I897 ROM里,用工程模式特殊代碼看到的多半屬於這一類。漢譯起來非常花時間。我們要把ServiceMode譯成「服務模式」。怎麼處理呢?你不能把const-string v5, "ServiceMode"直接改成const-string v5, "服務模式"。打包會失敗的。正確的做法是把相應的中文字元用16進制的unicode來表示。例如:把「服務模式」用16進制的unicode表示就是\u670d\u52a1\u6a21\u5f0f 。每一個漢字用4個字元表示,\u表示為16進制的unicode碼。好了,正確的漢譯是:
const-string v5, "\u670d\u52a1\u6a21\u5f0f "
網上有中文字元與16進制unicode碼的對照表或轉換工具。我在這部分提供一張轉換表供你們使用。見附件。
3) Apk打包和簽名

打包操作很簡單,沒有什麼好講的。照著做就行了。

回到apktool目錄,滑鼠雙擊批處理文件Repack-apk.bat,apk文件就打包好了。在Repack-apk.bat批處理中,每個apk文件打包好後就緊跟著進行簽名操作。所以,執行完Repack-apk.bat後,打包和簽名都完成了。

打包和簽名好了的apk文件存放在New_APK文件夾內,文件名加了一個前綴New_。在我們的例子中,所生成的新的apk應用程序為New_SilentBoot_EN.apk。這就是漢化好了的apk程序了。

現在你需要把文件改成你需要的名字:SilentBoot_CN.apk,安裝到手機試一下吧!欣賞一下你自己漢化的apk程序!是不是很爽!有成就感吧!

3. 三星akp文件的漢化和修改

好了,有了以上對apk解包、修改(漢化)、打包、簽名做基礎,我們現在來看怎樣對三星apk進行操作。我們手裡用的是三星I897手機,/system/app目錄下的很多apk應用程序都是三星程序,典型的包括framework-res.apk,twframework-res.apk,TouchWiz30Luancher.apk。由於三星採用自己的閉源系統,對其漢化、修改、打包和簽名有一定難度,目前還沒有發現完全適合於三星apk的專用工具。因此,需要採取特殊手段來達到目的。

apktool對所有三星apk文件都是可以解包的,對某些apk是可以打包簽名的,但是,對另外一些apk的打包總是失敗。這里需要指出的是,即使你對三星apk文件打包簽名成功,這個生成的apk程序也無法在三星手機上運行!原因是三星使用了其閉源的特殊簽名。

由於某些三星apk文件無法用apktool進行打包,所以我們在這一節使用功能更強大的apk manager進行解包和打包。在執行apk manager腳本批處理Script.bat時,有很多選項(見下圖)。我們用到選項9和11。選項9是反編譯(解包),選項11是再編譯(打包)。由於三星不承認其它簽名,所以這里簽名並不重要。但是,如果你在處理非三星的apk文件,那簽名還是需要的,要用的選項12和14。

操作步驟:

1)把待解包的apk文件(例如:TouchWiz30Launcher.apk)放到place-apk-here-for-modding子目錄里
2)雙擊腳本批處理程序Script.bat,你會看到上面的界面
apk-06.gif
3)選擇選項9進行解包,回車,開始解包
4)解包結束後,產生一個子文件夾projects,裡面有一個字文件夾(TouchWiz30Launcher.apk),解包後的文件被放在這個子文件夾內。
5)選擇選項24退出程序
6)按照上一節的方法進入projects/TouchWiz30Launcher.apk文件夾,把string.xml和有關的部分進行了漢化修改
7)修改和漢化結束後,再運行批處理程序Script.bat
8)選擇選項11進行打包。需要的時間較長,請耐心等待打包結束
9)打包結束後,在place-apk-here-for-modding文件夾內產生了一個新的未簽名的apk文件:unsignedTouchWiz30Launcher.apk
為了在手機上運行apk應用程序,簽名是必需的。那怎樣對三星apk應用程序進行簽名處理呢?一個有效的方法就是借用原來解包前apk文件已經有的簽名,把原來的簽名與新的編輯內容進行合成。從而,達到我們解包、修改、漢化、打包和「簽名」的目的,使新的apk程序可以在三星I897上運行。

合成操作步驟:

1)先用WinRAR打開原始的apk文件TouchWiz30Launcher.apk,裡面有3個文件和兩個文件夾。在第一部分講過每一個文件和文件夾的作用。這里不再描述。

apk-07.gif
2)再用WinRAR打開生成的apk文件unsignedTouchWiz30Launcher.apk。 裡面是沒有簽名文件的,就沒有文件夾META-INF,我們也不需要它。
apk-08.gif
3)從unsignedTouchWiz30Launcher.apk中提取我們編輯過的東西。為此,用滑鼠把resources.arsc文件從unsignedTouchWiz30Launcher.apk文件窗口拖進TouchWiz30Launcher.apk的窗口,去覆蓋原來的resources.arsc文件。你也可以先把原來的resources.arsc刪除,然後再做拖入的動作。
4)出現一個參數窗口。在壓縮方式處選擇「Store」(存儲)。然後按「OK」。
apk-09.gif
5)退出WinRAR。結束。新的三星apk應用程序就製作好了,簽名是利用了原始的簽名。文件是TouchWiz30Launcher.apk。
說明:

1)如果修改了/res目錄下的內容,在第3步,就復制resources.ars。如果修改了/smali目錄下的內容,在第3步,就復制classes.dex。
2)只可以替換這兩個文件,別的都不要動。
3)在第4步的壓縮方式,一定要選「Store」。
漢字Unicode編碼對照表下載: Chinese-Unicode.rar (558.06 KB)

到此,第二部分就結束了。最近由於工作很忙,整理和編輯工作受阻,故發布較慢,請諒解!

⑼ 如何實現APK的反編譯得到APK的源碼

最新的反編譯不用此方法, 有最新的一鍵自動反編譯工具:

這段時間在學Android應用開發,在想既然是用Java開發的應該很好反編譯從而得到源代碼吧,google了一下,確實很簡單,以下是我的實踐過程。

在此鄭重聲明,貼出來的目的不是為了去破解人家的軟體,完全是一種學習的態度,不過好像通過這種方式也可以去漢化一些外國軟體。

註:本Android反編譯教程,在Windows7-Ultimate-64bit操作系統上,測試通過!

下述所需的反編譯工具包 下載

一、反編譯Apk得到Java源代碼
首先要下載兩個工具:dex2jar和JD-GUI

前者dex2jar是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。以下是下載地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

具體步驟:

首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;

解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄(在DOS命令下CD 目錄)

運行

dex2jar.bat classes.dex

生成

classes.dex.dex2jar.jar

生成jar文件的截圖如下:

運行JD-GUI(jd-gui.exe),打開上面生成的jar包,即可看到源代碼了

HelloAndroid源碼(編譯前的apk源碼對照)如下:

二、反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件

如果是漢化軟體,這將特別有用。首先還是下載工具,這次用到的是apktool

下載地址:http://code.google.com/p/android-apktool/downloads/list

下載:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(兩個包都下載)

具體步驟:

將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar

在命令行下定位到apktool.bat文件夾,輸入以下命令:apktool d C:\*.apk C:\*文件夾,如下圖:

命令行解釋:apktool d [apk文件 ] [輸出文件夾]

反編譯的文件如下(AndroidManifest.xml為例):

特別注意:你要反編譯的文件一定要放在C盤的根目錄里(其實不用放在C盤根目錄也行)

例如:在D盤目錄D:\apktool1.4.1

cd /d D:\apktool1.4.1 //切換到D盤目錄,包含HelloAndroid.apk以及aapt.exe,apktool.bat,apktool.jar三個文件

apktool.bat d -f HelloAndroid.apk HelloAndroid // apktool反編譯命令,注意 d和
-f 的寫法

將反編譯完的文件重新打包成apk,很簡單,輸入apktool b c:\***文件夾(你編譯出來文件夾)即可,命令如下:這個主意你文件所在盤

打包apk後的文件在目錄C:\HelloAndroid下,生成了兩個文件夾:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist文件夾下,Ok

最後,再介紹一款剛出來的反編譯工具 Androidfby ,它是一款對上述步驟進行了封裝的圖形界面工具,下載地址

但是,針對部分簽名的apk,無法實現反編譯,但本博客方法則仍然可以反編譯成功!僅供參考使用

另外,作為應用開發者,肯定不希望自己的代碼被反編譯的,下一遍博客將講述如何通過混淆代碼防止被別人反編譯

Android如何防止apk程序被反編譯

作為Android應用開發者,不得不面對一個尷尬的局面,就是自己辛辛苦苦開發的應用可以被別人很輕易的就反編譯出來。

Google似乎也發現了這個問題,從SDK2.3開始我們可以看到在android-sdk-windows\tools\下面多了一個proguard文件夾

proguard是一個java代碼混淆的工具,通過proguard,別人即使反編譯你的apk包,也只會看到一些讓人很難看懂的代碼,從而達到保護代碼的作用。

下面具體說一說怎麼樣讓SDK2.3下的proguard.cfg文件起作用,先來看看android-sdk-windows\tools\lib\proguard.cfg的內容:

[html] view
plainprint?

1. -optimizationpasses 5

2. -dontusemixedcaseclassnames

3. -

4. -dontpreverify

5. -verbose

6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

7.

8. -keep public class * extends android.app.Activity

9. -keep public class * extends android.app.Application

10. -keep public class * extends android.app.Service

11. -keep public class * extends android.content.BroadcastReceiver

12. -keep public class * extends android.content.ContentProvider

13. -keep public class * extends android.app.backup.BackupAgentHelper

14. -keep public class * extends android.preference.Preference

15. -keep public class com.android.vending.licensing.ILicensingService

16.

17. -keepclasseswithmembernames class * {

18. native <methods>;

19. }

20.

21. -keepclasseswithmembernames class * {

22. public <init>(android.content.Context, android.util.AttributeSet);

23. }

24.

25. -keepclasseswithmembernames class * {

26. public <init>(android.content.Context, android.util.AttributeSet, int);

27. }

28.

29. -keepclassmembers enum * {

30. public static **[] values();

31. public static ** valueOf(java.lang.String);

32. }

33.

34. -keep class * implements android.os.Parcelable {

35. public static final android.os.Parcelable$Creator *;

36. }

從腳本中可以看到,混淆中保留了繼承自Activity、Service、
Application、BroadcastReceiver、ContentProvider等基本組件以及
com.android.vending.licensing.ILicensingService,

並保留了所有的Native變數名及類名,所有類中部分以設定了固定參數格式的構造函數,枚舉等等。(詳細信息請參考<proguard_path>/examples中的例子及注釋。)

讓proguard.cfg起作用的做法很簡單,就是在eclipse自動生成的default.properties文件中加上一句「proguard.config=proguard.cfg」就可以了

完整的default.properties文件應該如下:

[html] view
plainprint?

1. # This file is automatically generated by Android Tools.

2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED!

3. #

4. # This file must be checked in Version Control Systems.

5. #

6. # To customize properties used by the Ant build system use,

7. # "build.properties", and override values to adapt the script to your

8. # project structure.

9.

10. # Project target.

11. target=android-9

12. proguard.config=proguard.cfg

大功告成,正常的編譯簽名後就可以防止代碼被反編譯了。反編譯經過代碼混淆的apk得到的代碼應該類似於下面的效果,是很難看懂的:

如果您使用的是2.3之前的SDK版本也沒關系,把上面的proguard.cfg文件復制一份放到項目中,然後進行相同的操作即可