smali怎麼反編譯
A. smali怎樣取反,或者怎樣正變負
apk編譯工具_baksmali和smali簡介:一個強大的apk文件編輯工具。使用方法如下:首先把baksmali-1.3.2.jar和smali-1.3.2.jar文件放到android sdk安裝路徑下的tools裡面,把apk文件改成rar文件,解壓後取出classes.dex文件,也放入tools裡面,然後用命令行,cd tools目錄下,
java -jar baksmali-1.3.2.jar -o classout/ classes.dex
下免就可以使用java命令,tools目錄下多了一個classout文件夾,裡面就是smali類型的文件,裡面是反編譯出的代碼,但是不是java代碼,還是能看出變數和方法的,
用jd_gui來看反編譯出的Java代碼,這樣便於尋找自己想要改的東西,找到後可以到baksmali classout下去修改相應的地方。然後是利用smali編譯回去:
命令如下:java -jar smali-1.3.2.jar classout/ -o classes.dex
把classout下編譯成classes.dex然後把classes.dex放回apk下覆蓋原來的classes.dex文件。
B. 如何反編譯android應用並重新打包
反編譯android步驟入下:
第一:使用apktool直接反編譯apk
第六:把生成的hellodemo.apk安裝到手機,可以看到主界面上已經顯示的是hello,而不再是你好。說明反編譯重新打包成功!
C. APKTool解包後都為smali格式 然後如何編輯修改apk名稱
一、相關工具(針對windows系統)
下載windows安裝版的程序,安裝後不用管它了。
下載apktool-install-windows-2.2_r01-3.tar.bz2和apktool1.3.2.tar.bz2,用winrar解壓後把解壓出來的文件都放在一個目錄下,比如:E:/apktool/ 下(為簡單起見,下文都用這個路徑為apktool工作目錄)。
Auto-Sign簽名工具:N/A
二、反編譯
說要把apk「裝冰箱(反編譯)」分三步走:
第一步:先把apk程序(這里用ThinkingSpacePro.apk)程序放到 E:/apktool/ 下。
第二步:啟動windows的cmd.exe,用命令行cd到 E:/apktool 目錄下。
第三步:鍵入命令
apktool d ThinkingSpacePro.apk
這個命令的格式是:
apktool d xxx.apk output
其中 d 參數用來指示工具要進行反編譯操作,xxx.apk是要反編譯的程序,output 源碼輸出的路徑。如果最後不指定輸出的路徑,默認是放在同目錄下的 xxx 文件夾下(即apk程序名稱去掉.apk後的名稱)。如果你的apk文件名稱中有空格,那鍵入命令時用雙引號引起來,不過為方便起見,反編譯之前把apk文件名中的空格都去掉先。
運行反編譯命令後會在同級目錄下得到一個 ThinkingSpacePro 文件夾,源文件都在裡面了。
三、漢化
漢化這個比較簡單,在反編譯apk程序得到源碼後,一般程序的文檔都放在res目錄下,都是些xml文檔,用記事本之類的打開查看一下,一般都會比較容易看出來哪些是可以漢化的文本。這個就不去弄它了。可能不同程序還有不一樣的,反正英語差點,漢化這種事我也不去深究了。你如果只想漢化的話,進res文件夾找找,完成漢化後就可以直接重新編譯程序了(最後講編譯),不用太多的編程知識。思維導圖本身支持多國語言(都在源文件的res文件夾里),所以也用不著漢化了。但大致的漢化過程就是這樣了。
另外貌視還有Android ResEdit之類的專用漢化軟體,不用搞什麼反編譯,用起來可能更簡單。
四、SDcard to Flash
對於N5p,app2sd只是一個傳說,不過sd2flash下面就可以實現。用SD卡玩機的人可以無視。
下面這個是本文的重點。目的就是要修改程序的默認數據讀取和保存路徑,主要針對那些必須有SD卡才能使用的程序。比如說一個游戲它分為主程序和游戲的關卡數據。主程序可能只有1M,但游戲關卡數據可能是幾十甚至上百M,這類游戲一般是主程序安裝在內存中,而關卡數據會要求你安裝或下載到SD卡上。如果你沒有SD卡,那就玩不成了。我之所以要改它的路徑,就是不想讓它占我的SD卡,N5p不是自帶8G(實際好像只有6.5G)Flash快閃記憶體么,那為什麼不用它?下面的修改就是要欺騙apk程序,我們的Flash快閃記憶體就是程序你要的SD卡。
正式修改時,除了要修改所有源文件(主要是.smali程序源文件)中的/sdcard 路徑,使之指向 /flash 外,還要修改含有Environment.getExternalStorageState 和 Environment.getExternalStorageDirectory的源文件,前者用於檢測是否安裝SD卡,後者獲取SD卡的路徑。
那麼從頭來修改思維導圖 Thinking Space Pro 2.16的數據讀寫路徑。原版程序你必須要有SD卡才能正常保存你的數據,修改之後,所有數據讀取、保存都針對N5p自己的Flash快閃記憶體,從而解放SD卡。
用apktool反編譯ThinkingSpacePro.apk
apktool d ThinkingSpacePro.apk
D. apk反編譯後smali文件怎麼查看
1,首先得下載SublimeText
2,安裝好後,需要去給它安裝一個插件包
3,點擊Install Now 按鈕後進入,然後復制對應的版本下的代碼
4,打開SublimeText 按下快捷鍵 ctrl+~,或者打開菜單欄View點擊Hide Console 顯示控制台,並將第3步中復制的代碼粘貼到控制欄並按Enter鍵確認,然後重新開啟SublimeText
5,打開SublimeText,我們可以看到在Preferences下多了一個菜單Package Control,好了那麼就點擊這個菜單(Package Control)就會彈出界面
6,在彈出框中點擊Package Control:Install Package這一行,就會彈出提示,然後直接輸入smali
7,搜到後就直接點擊Smali這一行,它就已經裝了,然後分分鍾後就好了,你可以隨意打開一個反編譯的apk文件中的smali文件了,還自帶高亮顯示哦!
E. 電腦端反編譯apk 反編譯出現下面 輸出文件只有smali文件,怎麼解決
修改smali文件,再反編譯回去
F. android反編譯APK後,是smali文件,能反編譯成dex文件嗎
dex文件不需要反編譯的,apk就是個壓縮文件,dex可以通過解壓直接得到
G. 安卓反編譯出來的都是.smali文件,怎麼反編譯位原工程啊修改後還能重新編譯回去
反編譯步驟:
下載apktool 並設置環境變數
命令行進入apk目錄執行:apktool d xx.apk (如果遇到一些錯誤說明apk做了防破解處理)
執行成功後會生成xx文件夾,進入xx文件夾修改需要修改的內容,如果需要修改代碼,進入xx\smali\裡面,需要懂一些smali語法
修改完後回到命令行,執行:apktool b xx ,會在xx文件夾裡面生成一個dist文件夾,裡面的apk就是回編譯的,這個apk是沒有簽名的
下載網上的簽名工具對apk簽名,完了就可以安裝了(如果你下載了源碼或者sdk,裡面自帶一個signapk也可以簽名)
H. 反編譯後,怎麼就一個smail文件
因為反編譯失敗了,所以只有smali文件夾了。
1.反編譯Apk得到Java源代碼
首先要下載兩個工具:dex2jar和JD-GUI
前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。
具體步驟:
首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄
運行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件
還是下載工具,這次用到的是apktool
具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar 文件到解壓後的\apktool-install-windows-r04-brut1文件夾里)
2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里