Apk鏂囦歡鐮磋В鍙婧愮爜
銆銆錛戯紟 鑾峰彇apk鐨?/span> 璧?#8205;婧?/span> 鍥劇墖
鐩存帴鐢?WinRAR鎵撳紑錛宺es/drawable鐩存帴鎷栨嫿鍑烘潵鍗沖彲銆?/span>
銆 錛掞紟鑾峰彇xml鏂囦歡淇℃伅
铏界劧鑳界敤WinRAR鐪嬪埌閲岄潰鐨剎ml鏂囦歡錛屼絾鏄痻ml鏄粡榪囦紭鍖栫殑錛屾棤娉曠洿鎺ユ煡鐪嬶紝闇瑕佷嬌鐢╝pktool 宸ュ叿 錛?/span> 涓嬭澆 鍦板潃錛?/span> https://code.google.com/p/android-apktool/ 銆?/span>
涓嬭澆 apktool-1.3.1.tar.bz2鍜宎pktool-install-windows-2.2_r01-2.tar.bz2瑙e帇鍒板悓涓涓洰褰曪紝 鐒跺悗鎶婂緟鐮磋В鐨刟pk鏂囦歡鎷瘋礉鍒板悓涓鐩綍錛孌OS鍦╟md涓嬭繘鍏pktool鎵鍦ㄨ礬寰勶紝鐒跺悗杈撳叆apktool d "XXX1" "XXX2",XXX1鎸囩殑鏄綘瑕佸弽緙栬瘧鐨刟pk鏂囦歡錛孹XX2鎸囩殑鏄弽緙栬瘧鍚庢枃浠跺瓨鏀劇殑璺緞錛?/span>
濡傦細apktool d "C:/taobao.apk" "C:/taobao"
銆銆瑙e帇apk鏂囦歡錛岀洿鎺ユ嫋鎷?rar瑙e帇杞歡)錛屾壘鍒癱lasses.dex鏂囦歡 銆銆鍦╟md涓嬭繘鍏ex2jar.bat鎵鍦ㄨ礬寰勶紝 銆銆鐒跺悗杈撳叆“dex2jar.bat XXX”錛孹XX鎸囩殑鏄綘瑕佸弽緙栬瘧鐨刟pk涓殑classes.dex鏂囦歡鎵鍦ㄨ礬寰勫強鍚嶇О(classes涓婇潰瑙e帇寰楀埌)錛?/span> 銆銆濡傦細dex2jar.bat D:/classes.dex錛?/span> 銆銆榪欐牱浼氱敓鎴愪竴涓?/span> classes.dex.dex2jar.jar鏂囦歡錛岀劧鍚庣敤jd-gui宸ュ叿灝唈ar鏂囦歡鍙嶇紪璇戞垚java鏂囦歡錛岄夋嫨淇?瀛樻墍鏈夛紝瀹冧細鐢熸垚涓涓帇緙╂枃浠訛紝鎵鏈夌殑婧愮爜閮藉湪榪欎釜鍘嬬緝鏂囦歡涓紝瑙e帇浜嗗氨鍙互鐪嬪埌璇︾粏鐨勪唬鐮佷簡銆傚緢寮哄ぇ鍚с?/span> from錛歨ttp://hi.baidu.com/eblson/blog/item/312de07b5e594dff2f73b353.html ----------------------------------------- 涓銆佽幏寰桝PK婧愪唬鐮侊細 宸ュ叿涓嬭澆 錛氶渶鐢ㄥ埌 dex2ja r 鍜?/span> JD-GUI 榪?/span> 2 涓伐鍏?/span> dex2jar 涓嬭澆鍦板潃 錛?/span> http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip 姝ラ錛?/span> 1. 鎶?/strong> apk 鏂囦歡鏀瑰悕涓?/span> .zip 錛岀劧鍚庤В鍘嬬緝 , 寰楀埌鍏朵腑鐨?/span> classes.dex 鏂囦歡錛屽畠灝辨槸 java 鏂囦歡緙栬瘧鍚庡啀閫氳繃 dx 宸ュ叿鎵撳寘鎴愮殑 , 鎵浠ョ幇鍦ㄦ垜浠氨鐢ㄤ笂榪版彁鍒扮殑 2 涓伐鍏鋒潵閫嗘柟鍚戝鍑?/span> java 婧愭枃浠?/span> --------------------------------------------------------------------------------- 浜?/span> . 鍙嶇紪璇?/span> apk 鐢熸垚紼嬪簭鐨勬簮浠g爜鍜屽浘鐗囥?/span> XML 閰嶇疆銆佽璦璧勬簮絳夋枃浠躲?/strong> 宸ュ叿涓嬭澆錛?/span> 鍦?/span> http://code.google.com/p/android-apktool/ 涓?/span> 杞借幏寰楋紝 apktool-1.0.0.tar.bz2 鍜?/span> apktool-install-windows-2.1_r01-1.zip 涓や釜鍖?/strong> 銆?/strong> 1. 瑙e帇緙╀笅杞界殑涓や釜鏂囦歡鍖咃紝 apktool-install-windows-2.1_r01-1.zip 瑙e帇緙╁悗寰楀埌鐨勫寘閲屾湁 aapt.exe 鍜?/span> apktool.bat. 錛堟敞鎰忚鎶?/span> apktool-1.0.0.tar.bz2 瑙e帇鍚庣殑涓涓?/span> .jar 鏂囦歡 copy 榪涙潵錛?/span> 2. 鎵撳紑鍛戒護紿楀彛 錛堝紑濮?/span> > 榪愯錛岃緭鍏?/span> cmd 錛屽洖杞︺傦級榪涘叆鍒?/span> apktool.bat 鐨勬枃浠跺す閲屻?/span> 杈撳叆錛?/strong> apktool dC:/***.apk C:/*** 鏂囦歡澶?/span> 錛堝懡浠よ瑙i噴錛?/span> apktool d 瑕佸弽緙栬瘧鐨勬枃浠?/span> 杈撳嚭鏂囦歡澶癸級 鐗瑰埆娉ㄦ剰錛氫綘瑕佸弽緙栬瘧鐨勬枃浠朵竴瀹氳鏀懼湪 C 鐩樼殑鏍圭洰褰曢噷錛?/span> 3. 鎵撳紑 C:/*** 鏂囦歡澶?/span> 灝卞彲浠ュ緱鍒版垜浠闄㈢殑鍚勭璧勬簮浜嗐?/span> from錛歨ttp://www.apkbus.com/forum.php?mod=viewthread&tid=118 ------------------------------------------- 鏈枃涓昏浠嬬粛濡備綍閫嗗悜涓涓狝ndroid鐨凙PK搴旂敤紼嬪簭錛屾湰鏂囨彁渚涚殑鏂規硶浠呬緵鐮旂┒瀛︿範涔嬬敤銆?/p> 鏈枃闇瑕佺敤鍒扮殑宸ュ叿鏈?/p> jdk 榪欎釜鐢ㄤ簬鎼緩java榪愯鐜 AXMLPrinter2.jar 榪欎釜鐢ㄤ簬閫嗗悜.xml鏂囦歡 baksmali.jar 榪欎釜鐢ㄤ簬閫嗗悜classex.dex鏂囦歡 鐢變簬 Android 鐨?.apk 鏂囦歡瀹為檯涓婂氨鏄竴涓?zip 鏂?浠?/span> 鍙互鐩存帴鐢?winrar 鎵?寮 濡備笅鍥炬墍紺猴細 鐢╮ar鎵撳紑涔嬪悗 鎴戜滑鍙互鐪嬪埌璇ユ枃浠跺疄闄呬笂鏄竴涓獄ip鍖? 閲岄潰鍖呭惈浜哅ETA-INF鏂囦歡澶癸紝榪欎釜鏂囦歡澶規槸鐢ㄤ簬淇濆瓨絳懼悕鏂囦歡錛岀‘淇濆寘鐨勫畬鏁存х殑 res鏂囦歡澶逛笅灝辨槸apk鎵瑕佺敤鐨勮祫婧愭枃浠訛紝閮芥槸鍘熷皝涓嶅姩鍦頒繚瀛橈紝鎴戜滑鍙互鐩存帴鎻?鍙栧嚭鏉ワ紝鍋氭眽鍖栨椂灝卞彲浠ョ洿鎺ラ槄璇籹tring鏂囦歡鐒跺悗榪涜淇敼 AndroidManifest.xml鏂囦歡鍒欐槸緙栬瘧榪囧悗鐨勪竴涓厤緗枃浠訛紝鐢ㄤ簬澹?鏄庣▼搴忎腑鎵鍖呭惈鐨刟ctivity,service浠ュ強紼嬪簭鎵鍏鋒湁鐨勮兘鍔涳紝涔熷氨鏄潈闄愩俽esources.arsc鍒欐槸緙栬瘧榪囧悗鐨勪竴涓祫婧愯鏄庢枃浠訛紝鑰?鎴戜滑瑕佸叧娉ㄧ殑涓昏鏄痗lasses.dex 銆傛垜浠紪鍐欑殑Android紼嬪簭錛屽湪婧愮▼搴忛噷鐨勬墍鏈?java鐨勬枃浠訛紝鏈緇堥兘緙栬瘧鍒拌繖鏍?涓?dex鏂囦歡褰撲腑錛屽湪Android鎵嬫満涓婄殑dalvik铏氭嫙 鏈轟笂鎵ц銆?/p> 棣栧厛錛屾垜浠粙緇嶅浣曢嗗悜涓涓?xml鏂囦歡 鐢變簬apk鍖呴噷鐨剎ml鏂囦歡鎴戜滑鐩存帴鐢ㄨ浜嬫湰鎵撳紑榪樻槸鏈変竴浜涗貢鐮?/p> 鎵浠ラ渶瑕佹垜浠繕鍘熸墠鑳芥洿濂界殑鐪嬪嚭 榪欓噷闇瑕佺敤鍒癆XMLPrinter2.jar 宸ュ叿 鍏蜂綋鐨勫垯鏄墦寮鍛戒護琛? 鎴戜滑浠ndroidManifest.xml涓轟緥錛岃緭鍏ュ涓嬪懡浠?/p> java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt 鏈夊叴瓚g殑涔熷彲浠ュ啓鎴愪竴涓?bat鐨勮剼鏈紝鏂逛究鎵ц 鎴戜滑鍙互鐪嬬湅 鎵ц鐨勭粨鏋?/p> 鎵ц鍓嶇殑AndroidManifest.xml鏂囦歡 鎵ц涔嬪悗 鎴戜滑鍙互鍐嶇湅鐪?/p> 鍩烘湰鑳借繕鍘熺殑璺熸簮紼嬪簭澶ц嚧鐩稿悓 榪欓噷鎴戞槸鎷跨殑eoe鍑虹殑涓涓綰哥▼搴忎負渚?/p> 鎺ヤ笅鏉ワ紝澶у鑲畾鏇村姞鍏沖績classes.dex鐨勯嗗悜 榪欎釜鍏跺疄璺熶箣鍓嶉偅涓篃寰堢浉浼?/p> 閲囩敤baksmali.jar榪欎釜宸ュ叿錛屽浗澶栦竴涓Android鐮旂┒鐨勫緢娣卞叆鐨?澶х墰鍋氱殑 鎵ц浠g爜 java -jar baksmali.jar -o classout/ classes.dex 璁瞔lasses.dex鑳介嗗悜鎴愪竴涓枃浠跺す 榪欓噷鎴戝彲浠ユ埅涓浘緇欏ぇ瀹剁湅鐪?/p> 鐐瑰紑鍏朵腑涓涓枃浠?鎴戜滑緇х畫鏉ョ湅 澶у鏄笉鏄寰楄繖涓唬鐮佸緢浜插垏 瀵? 浠庤繖涓唬鐮佹垜浠熀鏈兘澶ц嚧鎺ㄦ柇鍑烘簮紼嬪簭鐨勪竴浜涚粨鏋勬祦紼?/p> 浠庝腑鍊熼壌 鏈枃浠呬緵鐮旂┒瀛︿範涔嬬敤 嬈㈣繋涓庢垜璁ㄨ浜ゆ祦 鏈枃鍦板潃濡備笅 杞澆璇鋒敞鏄庢鍙?/p> http://blog.csdn.net/Zengyangtech/archive/2010/08/12/5807517.aspx
銆 3 錛庡弽 緙栬瘧 dex鑾峰彇 Java 婧愪唬鐮?/span>
Apktool宸ュ叿鍙兘鍙嶇紪璇戞垚smali鐨勪腑闂翠唬鐮佹枃浠訛紝榪欓噷闇瑕佸熷姪鍙﹀涓涓?/span> 寮婧?/span> 宸ュ叿錛歞ex2jar錛屼笅杞藉湴鍧錛?/span> http://code.google.com/p/dex2jar/ 銆傝繖涓伐鍏蜂笉鑳界洿鎺ョ炕璇戞垚java鏂囦歡錛屼絾鏄彲浠ユ妸dex鏂囦歡杞崲鎴恓ar鏂囦歡錛岀劧鍚庡彲浠ラ氳繃 jad宸ュ叿鎶妀ar鏂囦歡鍙嶇紪璇戞垚Java婧愭枃浠訛紝jd-gui涓嬭澆鍦板潃錛?/span> http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip 銆?/span>
銆銆璇︾粏姝ラ錛?/p>
JD-GUI 涓嬭澆鍦板潃錛?/span>
windows 鐗?/span> JD-GUI 錛?/span> http://laichao.googlecode.com/files/jdgui.zip
Linux 鐗?/span> JD-GUI 錛?/span> http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
2. 鎶?/span> classes.dex 鎷瘋礉鍒?/span> dex2jar.bat 鎵鍦ㄧ洰褰曘?/span>
鍦ㄥ懡浠よ妯″紡涓嬪畾浣嶅埌 dex2jar.bat 鎵鍦ㄧ洰褰曪紝榪愯 dex2jar.batclasses.dex 錛岀敓鎴?/span> classes.dex.dex2jar.jar
3. 榪愯 JD-GUI 宸ュ叿錛堝畠鏄豢鑹叉棤欏誨畨瑁呯殑錛?/span>
鎵撳紑涓婇潰鐨?/span> jar 鏂囦歡錛屽嵆鍙湅鍒版簮浠g爜
鎻愪緵浜嗚幏寰楁眽瀛楃殑鎷奸煶棣栧瓧姣嶇殑鏂規硶
JDK鐗堟湰 鏃犵増鏈檺鍒?br /> 鍔熻兘 瀹炵幇浜嗚幏寰椾竴涓眽瀛楃殑鎷奸煶棣栧瓧姣嶅姛鑳斤紝涓烘眽瀛楁帓搴忔彁渚涗簡鏂逛究
嬈㈣繋澶у鎻愭剰瑙侊紝浜ゆ祦
浠g爜濡備笅錛?/p>
/**
* Title:鑾峰緱姹夊瓧鐨勬嫾闊抽瀛楁瘝
* Description: GB 2312-80 鎶婃敹褰曠殑姹夊瓧鍒嗘垚涓ょ駭銆傜涓綰ф眽瀛楁槸甯哥敤姹夊瓧錛岃 3755 涓紝
* 緗簬 16锝?5 鍖猴紝鎸夋眽璇嫾闊沖瓧姣嶏紡絎斿艦欏哄簭鎺掑垪錛涚浜岀駭姹夊瓧鏄甯哥敤姹夊瓧錛?br /> * 璁?3008 涓紝緗簬 56锝?7 鍖猴紝鎸夐儴棣栵紡絎旂敾欏哄簭鎺掑垪錛屾墍浠ユ湰紼嬪簭鍙兘鏌ュ埌
* 瀵逛竴綰ф眽瀛楃殑澹版瘝銆傚悓鏃跺絎﹀悎澹版瘝錛坺h錛宑h錛宻h錛夊彧鑳藉彇棣栧瓧姣嶏紙z錛宑錛宻錛?nbsp;
* Copyright: Copyright (c) 2004
* Company:
* @author not attributable
* @version 1.0
*/
public class GetFirstLetter {
// 鍥芥爣鐮佸拰鍖轟綅鐮佽漿鎹㈠父閲?br /> private static final int GB_SP_DIFF = 160;
//瀛樻斁鍥芥爣涓綰ф眽瀛椾笉鍚岃闊崇殑璧峰鍖轟綅鐮?br /> private static final int[] secPosvalueList = {
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,
3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,
4390, 4558, 4684, 4925, 5249, 5600};
//瀛樻斁鍥芥爣涓綰ф眽瀛椾笉鍚岃闊崇殑璧峰鍖轟綅鐮佸搴旇闊?br /> private static final char[] firstLetter = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'w', 'x', 'y', 'z'};
//鑾峰彇涓涓瓧絎︿覆鐨勬嫾闊崇爜
public static String getFirstLetter(String oriStr) {
String str = oriStr.toLowerCase();
StringBuffer buffer = new StringBuffer();
char ch;
char[] temp;
for (int i = 0; i < str.length(); i++) { //渚濇澶勭悊str涓瘡涓瓧絎?br /> ch = str.charAt(i);
temp = new char[] {
ch};
byte[] uniCode = new String(temp).getBytes();
if (uniCode[0] < 128 && uniCode[0] > 0) { // 闈炴眽瀛?br /> buffer.append(temp);
}
else {
buffer.append(convert(uniCode));
}
}
return buffer.toString();
}
/** 鑾峰彇涓涓眽瀛楃殑鎷奸煶棣栧瓧姣嶃?br /> * GB鐮佷袱涓瓧鑺傚垎鍒噺鍘?60錛岃漿鎹㈡垚10榪涘埗鐮佺粍鍚堝氨鍙互寰楀埌鍖轟綅鐮?br /> * 渚嬪姹夊瓧"浣?鐨凣B鐮佹槸0xC4/0xE3錛屽垎鍒噺鍘?xA0錛?60錛夊氨鏄?x24/0x43
* 0x24杞垚10榪涘埗灝辨槸36錛?x43鏄?7錛岄偅涔堝畠鐨勫尯浣嶇爜灝辨槸3667錛屽湪瀵圭収琛ㄤ腑璇婚煶涓?#8216;n'
*/
private static char convert(byte[] bytes) {
char result = '-';
int secPosvalue = 0;
int i;
for (i = 0; i < bytes.length; i++) {
bytes[i] -= GB_SP_DIFF;
}
secPosvalue = bytes[0] * 100 + bytes[1];
for (i = 0; i < 23; i++) {
if (secPosvalue >= secPosvalueList[i] &&
secPosvalue < secPosvalueList[i + 1]) {
result = firstLetter[i];
break;
}
}
return result;
}
}