resourcesarsc反編譯
A. arsc文件無法打開
resources.arsc這個文件,利用過一些hex後利用了apktool的bug,然後導致奔潰,所以我們使用aapt可以正常導出經過hex工具之後,利用apktool ,我們可以自己查看反編譯報錯信息可以發現報錯基本上都是空指針異常,也就是java.lang.NullPointerException,所以我們要使用我們的aapt工具了在控制台輸入 如下命令,注意配置了aapt到環境變數aapt l -v -a test.apk > log然後看到經過查看文件中String變數的值可以發現很多都是同一個值,只有極少數的值並不是我們的String,所以需要修改這個文件了是有壓縮軟體解壓apk,然後使用ue來搜索的這個不同的String值,把它改成和其他的一樣的值,然後保存就可以了
B. 反編譯時提示如下錯誤怎麼解決
1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。
3、出錯問題1
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
這些小小的錯誤都會導致回編時譯檢查出錯。
所以漢化時,注意對校,然後再回編譯。
建議使用一些高級的文本編輯器,支持語法高亮視圖的。
4、出錯問題2
最近發現有些APK文件 反編譯後,就算不漢化直接回編譯,都會出錯。
有可能的原因1,反編譯後XML文件語法中@符號 前面多了"\" (\@ ),
用文本編輯工具 直接替換【\@】為【@】,應該可以解決。
建議使用最新版本的反編譯工具。
5、建議大家使用新版本的APKTool工具,
當然如果新的有問題也可以試試舊的一、系統文件漢化再次強調
1、漢化Settings.apk(系統設置)、MMS.apk(信息)、Phone.apk(電話)、
等等系統文件,一定要先 安裝構架,具體看另個文件
<關於APKTool工具反編譯Settings.apk問題>。
2、系統文件漢化完後不需要簽名,直接替換漢化後的文件,就可以了。
主要是,系統文件放在系統目錄,無需再次讀取簽名獲得許可權,已經是高級了。
二、打包說明
1、通常漢化完回編譯後,會自動生成所有APK內的文件,或者自動生成*.APK文件。
但是建議大家不要直接使用該文件,進了使用替換法,替換掉你漢化後的文件,
如:resources.arsc,如果修改過的圖片,等等…
2、很多人對於APK文件 解壓縮或壓縮 都用「WinRAR」或「好壓」,這里不推薦。
希望大家安裝7-Zip這個壓縮工具,對於zip格式的支持是最好的。而且很方便,
不需要重新關聯apk 直接右鍵打開就行了。替換直接拖拉進去,就OK了一、回編譯出錯問題
(1.提示 strings.xml 最後一行錯誤,檢查是否</string>符號錯誤;
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最頂部含中文代碼首行錯誤,編碼格式不對,轉換成 UTF-8;
(3.提示 public.xml 出錯,檢查改動過的 arrays.xml 是否代碼有錯誤的地方;
C. 安卓系統systemUI.apk下的resources.arsc怎麼打開修改 還有不合並apk和odex文件也可以反編譯
修改resources.arsc幹嘛?反編譯完成不就生成新的了,替換原來的不就完了
D. MiuiSystemUI.apk反編譯並且修改後無法回編譯,提示出錯。即使反編譯後什麼都不修改直接
、反編譯=回編譯後分別是smali目錄回編譯為classes.dex文件res目錄回編譯為resources.arsc文件2、回編譯順序在回編譯時,會先檢查「源」即resources當你漢化文件,修改出錯了(缺少一個符號也不行),那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali。所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,這要會大大加快回編譯速度。1、反編譯=回編譯後分別是smali目錄回編譯為classes.dex文件res目錄回編譯為resources.arsc文件2、回編譯順序在回編譯時,會先檢查「源」即resources當你漢化文件,修改出錯了(缺少一個符號也不行),那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali。所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,這要會大大加快回編譯速度。3、出錯問題1在漢化時,往往會不小心刪掉一些符號,如""符號等等。FileManager文件管理器/string>這些小小的錯誤都會導致回編時譯檢查出錯。所以漢化時,注意對校,然後再回編譯。建議使用一些高級的文本編輯器,支持語法高亮視圖的。4、出錯問題2最近發現有些APK文件反編譯後,就算不漢化直接回編譯,都會出錯。有可能的原因1,反編譯後XML文件語法中@符號前面多了"\"(\@),用文本編輯工具直接替換【\@】為【@】,應該可以解決。建議使用最新版本的反編譯工具。5、建議大家使用新版本的APKTool工具,當然如果新的有問題也可以試試舊的一、系統文件漢化再次強調1、漢化Settings.apk(系統設置)、MMS.apk(信息)、Phone.apk(電話)、等等系統文件,一定要先安裝構架,具體看另個文件。2、系統文件漢化完後不需要簽名,直接替換漢化後的文件,就可以了。主要是,系統文件放在系統目錄,無需再次讀取簽名獲得許可權,已經是高級了。二、打包說明1、通常漢化完回編譯後,會自動生成所有APK內的文件,或者自動生成*.APK文件。但是建議大家不要直接使用該文件,進了使用替換法,替換掉你漢化後的文件,如:resources.arsc,如果修改過的圖片,等等…2、很多人對於APK文件解壓縮或壓縮都用「WinRAR」或「好壓」,這里不推薦。希望大家安裝7-Zip這個壓縮工具,對於zip格式的支持是最好的。而且很方便,不需要重新關聯apk直接右鍵打開就行了。替換直接拖拉進去,就OK了一、回編譯出錯問題(1.提示strings.xml最後一行錯誤,檢查是否符號錯誤;在漢化時,往往會不小心刪掉一些符號,如""符號等等。FileManager文件管理器/string>(2.提示strings.xml最頂部含中文代碼首行錯誤,編碼格式不對,轉換成UTF-8;(3.提示public.xml出錯,檢查改動過的arrays.xml是否代碼有錯誤的地方;二、一切能正常但無法回編譯還有一種情況,apktool最新版本能正常反編譯一個apk文件,在未做任何修改的情況下,無法回編譯。這是就要注意了,可以嘗試一下用低版本的apktool進行【反編譯】,然後在用高版本的apktoo工具【回編譯】。這里向大家推薦用【APKDB】這個工具,很方便,反編譯時可以選擇apktool的版本。
E. 反編譯最後 把resources.arsc替換原文件是什麼意思
回編譯完成替換原來apk裡面的resources.arsc文件,希望能幫到你
F. 怎樣把resources.arsc反編譯為能看懂的文字
回編譯完成替換原來apk裡面的resources.arsc文件,希望能幫到你
說明你修改的地方不是控制顯示的地方呀!你說你想弄的是什麼地方透明?狀態欄透明不是改框架的,改UI!
G. 怎麼反編譯settings.apk
事項:
1.反編譯系統文件必須是從官方提取的.APK文件。(因為APK只能實現一次反編譯,就是說如果這個文件已經反編譯過了,就不能再次反編譯,就算你反編譯了也不能回編譯。)
2.編譯工具論壇上很多可以自己搜索下載,存放的位置文件夾最好不帶中文。
3.覆蓋原文件時一定要切記,先移動到系統文件夾下,然後修改許可權,然後在覆蓋原來APK(不然會怎麼樣,我相信大家懂的{:soso_e144:} )
4.就算附件中有反編譯工具也要自己搭建好java環境(因為一切反編譯的工具都是建立在JAVA環境的基礎上的)
開始教程:
1.關於JAVA、環境變數,請搜索教程帖
2.環境變數設置成功後,就是提取你手機上的Settings.apk。
3.進行反編譯,(我想有一定美化基礎的應該很會簡單的),反編譯後得到Settings文件夾打開然後\res\values-zh-rCN\找到strings文件,右鍵打開,打開方式選擇看你習慣。
修改好以後選擇保存,回編譯。
回編譯好的APK用滑鼠右鍵單擊 選擇用好壓打開然後將resources.arsc 拖拽出來。然後在把JU1.1的Settings.APK提取出來也用好壓打開,將剛才拖拽的resources.arsc 文件在拖拽到JU得APK中。然後點覆蓋。然後在將其移動到SYSTEM\APP里 就OK了(記得修改許可權)
這個需要在手機上操作
打開RE管理器,打開裡面的system,找到build.prop.長按彈出對話框,選擇:使用文本編輯器打開(右上角要改為讀寫哦)
第四行的:ro.build.display.id= 等號後面就是你想要輸入的不要過長哦~
第八行的:ro.build.version.release= 同上
修改完成後,點擊左虛擬鍵,也就是設置鍵,選擇:保存並退出。
你會在build.prop下面發現它的備份文件,刪除,重啟,OK~全部完成~
H. APK 反編譯失敗 是為啥
1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。
3、出錯問題1
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
這些小小的錯誤都會導致回編時譯檢查出錯。
所以漢化時,注意對校,然後再回編譯。
建議使用一些高級的文本編輯器,支持語法高亮視圖的。
4、出錯問題2
最近發現有些APK文件 反編譯後,就算不漢化直接回編譯,都會出錯。
有可能的原因1,反編譯後XML文件語法中@符號 前面多了"\" (\@ ),
用文本編輯工具 直接替換【\@】為【@】,應該可以解決。
建議使用最新版本的反編譯工具。
5、建議大家使用新版本的APKTool工具,
當然如果新的有問題也可以試試舊的一、系統文件漢化再次強調
1、漢化Settings.apk(系統設置)、MMS.apk(信息)、Phone.apk(電話)、
等等系統文件,一定要先 安裝構架,具體看另個文件
<關於APKTool工具反編譯Settings.apk問題>。
2、系統文件漢化完後不需要簽名,直接替換漢化後的文件,就可以了。
主要是,系統文件放在系統目錄,無需再次讀取簽名獲得許可權,已經是高級了。
二、打包說明
1、通常漢化完回編譯後,會自動生成所有APK內的文件,或者自動生成*.APK文件。
但是建議大家不要直接使用該文件,進了使用替換法,替換掉你漢化後的文件,
如:resources.arsc,如果修改過的圖片,等等…
2、很多人對於APK文件 解壓縮或壓縮 都用「WinRAR」或「好壓」,這里不推薦。
希望大家安裝7-Zip這個壓縮工具,對於zip格式的支持是最好的。而且很方便,
不需要重新關聯apk 直接右鍵打開就行了。替換直接拖拉進去,就OK了一、回編譯出錯問題
(1.提示 strings.xml 最後一行錯誤,檢查是否</string>符號錯誤;
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最頂部含中文代碼首行錯誤,編碼格式不對,轉換成 UTF-8;
(3.提示 public.xml 出錯,檢查改動過的 arrays.xml 是否代碼有錯誤的地方;
二、一切能正常但無法回編譯
還有一種情況,apktool最新版本能正常反編譯一個apk文件,在未做任何修改的情況下,無法回編譯。
這是就要注意了,可以嘗試一下用低版本的apktool進行【反編譯】,然後在用高版本的apktoo工具【回編譯】。
這里向大家推薦用 【APKDB】 這個工具,很方便,反編譯時可以選擇apktool的版本。
I. Android反編譯(三)— 手動編譯
PS: 最近沒工作,沒工作就沒需求,沒需求就沒什麼技術總結的靈感,那就沒更新什麼。但是兩個月不更新了,要是三個月不更新就會出大事,所以這次打算做一件有意思又不難的事。
之前有發文章寫過反編譯,今天就來試試反編譯之正編譯,開玩笑的,就是試試手動編譯的過程, 平時我們在項目中編譯出包都是使用Gradle直接執行assemble任務就能解決,我打算試試手動模擬整個過程。當然我也是第一次這樣搞,所以如果有寫得不對的地方,還望指出。
眾所周知,apk實質上就是一個壓縮包。復習一下,我們寫個最簡單的Demo,然後打包,然解壓,注意是解壓,不是反編譯,意義是不同的。
注意我這個Demo很簡單,什麼都不引入
然後我們看看整個出包的過程,隨便從網上拿張圖
然後這里我們用Android SDK給我們提供的工具來完成整個流程,工具在sdk文件夾下的build-tools文件夾下,有什麼aapt.exe、dx.bat,用的就是這些
這步應該是整個流程最簡單的吧,我感覺,所以從最簡單的開始。
我們先看看生成的dex有什麼
對比項目,我是一開始最基本的項目,什麼都沒動,所以只有一個MainActivity.clas,所以這里肯定是要先想辦法得到BuildConfig.class和R.class。
輸入命令:
aapt p -f -m -J <輸出路徑> -S <res路徑> -I <android.jar路徑> -M <Manifest路徑>
下一步,我們需要BuildConfig.class
這個BuildConfig.java是由gradle在我們配置好gradle之後自己幫我們生成的,所以我們直接拿來用,然後再javac就得到class文件了
然後我們再編譯我們的MainActivity.java並將它們放到同一個文件夾下, MainActivity因為引用了Android.jar和R文件,所以編譯時注意點,我為此被動好好的復習了一遍javac,都是淚
最後一步,我們用dx工具就能打出dex文件了
然後執行命令就得到一個Dex文件,看看這個文件裡面和上面直接打出的apk中的Dex文件有什麼不同:
看圖,我們上一步已經生成.dex了,那麼我們需要和compiled Resource 還有 Other Resource 一起生成APK。
我們先來生成compiled Resource,也就是resources.arsc
發現之前使用aapt生成R文件的時候沒寫完整,當時可以加一個-F參數直接生成arsc和Manifest
導出的abc.zip裡面就有resources.arsc和AndroidManifest.xml。
因為之前寫漏了,所以肯定要重新編一次MainActivity.java和Dex
我們把剛才的dex文件和aapt生成的resources.arsc、AndroidManifest.xml和res放到一個文件夾裡面。
PS:res文件夾也是上面aapt的命令生成的
然後我們對比這個文件夾和之前apk解壓的文件夾
最後運行
看來是成功了。
再說說遇到的還有兩個問題,並說下我解決問題的思路
(1)我把它們都放到一個文件夾之後,我壓縮成壓縮包,然後改後綴成.apk,然後發現安裝不了,我就直接反編譯,發現發編譯失敗,提示包有問題,以我多點玩包的經驗,我感覺就是壓縮工具出了問題,然後我去下個「好壓」(這不是廣告啊),然後就能正常反編譯了。
(2)但是還是安裝不了,再根據我多年的玩包經驗,我感覺是簽名問題,然後我隨便給這個包上一個簽名,就能正常安裝得到上圖的結果了。
總體來說,還真挺好玩的,這整個過程,就是翻車了幾次。做完之後感覺非常牛逼,為什麼這樣說,因為我知道這整個過程,我就可以做到,我不經過gradle來打包,我自己寫個python腳本來調用aapt和dx來打包也是能做到的。
當然上面純屬異想天開,因為這是個什麼都沒有的Demo所以覺得簡單,要是一個真實的項目,我感覺肯定要有很多坑,別的先不說,一個項目那麼多依賴關系,我這javac要搞死人。
最後如果有不對的地方,希望有大佬能夠指出,畢竟能運行也不能證明完全沒問題。然後我使用的build-tools是28的,不敢保證其它版本包括以後版本的玩法都一樣。
J. 為什麼我把framework-res.apk反編譯成功,替換resources.arsc,圖片也替換了,還是老樣子
哥們,說明你修改的地方不是控制顯示的地方呀!你說你想弄的是什麼地方透明?狀態欄透明不是改框架的,改UI!