??xml version="1.0" encoding="utf-8" standalone="yes"?>秋霞蜜臀av久久电影网免费,精品一区二区三区免费毛片,日韩在线看片http://www.aygfsteel.com/hackzhang/Z是ؓp|而生Q一个h可以被消灭,但不可以被打败!zh-cnWed, 18 Jun 2025 13:12:21 GMTWed, 18 Jun 2025 13:12:21 GMT60Android 反编译apk 到java源码的方?http://www.aygfsteel.com/hackzhang/archive/2012/03/23/372532.html_诚所臻I金石为开_诚所臻I金石为开Fri, 23 Mar 2012 04:08:00 GMThttp://www.aygfsteel.com/hackzhang/archive/2012/03/23/372532.htmlhttp://www.aygfsteel.com/hackzhang/comments/372532.htmlhttp://www.aygfsteel.com/hackzhang/archive/2012/03/23/372532.html#Feedback0http://www.aygfsteel.com/hackzhang/comments/commentRss/372532.htmlhttp://www.aygfsteel.com/hackzhang/services/trackbacks/372532.html

Apk文g破解可见源码

  Q. 获取apk?/span> ?#8205;?/span>

         直接?WinRAR打开Qres/drawable直接拖拽出来卛_?/span>

  Q.获取xml文g信息

    虽然能用WinRAR看到里面的xml文gQ但是xml是经q优化的Q无法直接查看,需要用apktool 工具 Q?/span> 下蝲 地址Q?/span> https://code.google.com/p/android-apktool/ ?/span>
下蝲 apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录, 然后把待破解的apk文g拯到同一目录QDOS在cmd下进入apktool所在\径,然后输入apktool d "XXX1" "XXX2",XXX1指的是你要反~译的apk文gQXXX2指的是反~译后文件存攄路径Q?/span>

如:apktool d "C:/taobao.apk" "C:/taobao"


  3 Q反 ~译 dex获取 Java 源代?/span>
         Apktool工具只能反编译成smali的中间代码文Ӟq里需要借助另外一?/span> 开?/span> 工具Qdex2jarQ下载地址Q?/span> http://code.google.com/p/dex2jar/ 。这个工具不能直接翻译成java文gQ但是可以把dex文g转换成jar文gQ然后可以通过 jad工具把jar文g反编译成Java源文Ӟjd-gui下蝲地址Q?/span> http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip  ?/span>
  详细步骤Q?/p>

  解压apk文gQ直接拖?rar解压软g)Q找到classes.dex文g

  在cmd下进入dex2jar.bat所在\径,

  然后输入“dex2jar.bat XXX”QXXX指的是你要反~译的apk中的classes.dex文g所在\径及名称(classes上面解压得到)Q?/span>

  如:dex2jar.bat D:/classes.dexQ?/span>

  q样会生成一?/span> classes.dex.dex2jar.jar文gQ然后用jd-gui工具jar文g反编译成java文gQ选择?存所有,它会生成一个压~文Ӟ所有的源码都在q个压羃文g中,解压了就可以看到详细的代码了。很强大吧?/span>

fromQhttp://hi.baidu.com/eblson/blog/item/312de07b5e594dff2f73b353.html

-----------------------------------------

一、获得APK源代码:

工具下蝲 Q需用到 dex2ja r ?/span> JD-GUI q?/span> 2 个工?/span>

dex2jar 下蝲地址 Q?/span> http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI 下蝲地址Q?/span>
  windows
?/span> JD-GUI Q?/span> http://laichao.googlecode.com/files/jdgui.zip
  Linux ?/span> JD-GUI Q?/span> http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz

步骤Q?/span>

1. ?/strong> apk 文g改名?/span> .zip Q然后解压羃 , 得到其中?/span> classes.dex 文gQ它是 java 文g~译后再通过 dx 工具打包成的 , 所以现在我们就用上q提到的 2 个工h逆方向导?/span> java 源文?/span>

2. ?/span> classes.dex 拯?/span> dex2jar.bat 所在目录?/span>
在命令行模式下定位到 dex2jar.bat 所在目录,q行 dex2jar.batclasses.dex   Q生?/span> classes.dex.dex2jar.jar

3. q行 JD-GUI 工具Q它是绿色无d装的Q?/span>
打开上面?/span> jar 文gQ即可看到源代码

---------------------------------------------------------------------------------

?/span> . 反编?/span> apk 生成E序的源代码和图片?/span> XML 配置、语a资源{文件?/strong>

工具下蝲Q?/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. 解压~下载的两个文g包, apktool-install-windows-2.1_r01-1.zip 解压~后得到的包里有 aapt.exe ?/span> apktool.bat. Q注意要?/span> apktool-1.0.0.tar.bz2 解压后的一?/span> .jar 文g copy q来Q?/span>

2. 打开命oH口 Q开?/span> > q行Q输?/span> cmd Q回车。)q入?/span> apktool.bat 的文件夹里?/span>

          输入Q?/strong>   apktool dC:/***.apk  C:/*** 文g?/span>

Q命令行解释Q?/span> apktool d 要反~译的文?/span> 输出文g夹)

特别注意Q你要反~译的文件一定要攑֜ C 盘的根目录里Q?/span>

3. 打开 C:/*** 文g?/span> 可以得到我们学院的各种资源了?/span>

fromQhttp://www.apkbus.com/forum.php?mod=viewthread&tid=118

-------------------------------------------

本文主要介绍如何逆向一个Android的APK应用E序Q本文提供的Ҏ仅供研究学习之用?/p>

本文需要用到的工具?/p>

jdk q个用于搭徏javaq行环境

AXMLPrinter2.jar  q个用于逆向.xml文g

baksmali.jar q个用于逆向classex.dex文g

׃ Android ?.apk 文g实际上就是一?zip ??/span> 可以直接?winrar ?开

如下图所C:

 

用rar打开之后 我们可以看到该文件实际上是一个zip? 里面包含了META-INF文g夹,q个文gҎ用于保存{֐文gQ确保包的完整性的

res文g夹下是apk所要用的资源文Ӟ都是原封不动C存,我们可以直接?取出来,做汉化时可以直接阅读string文g然后q行修改

 

AndroidManifest.xml文g则是~译q后的一个配|文Ӟ用于?明程序中所包含的activity,service以及E序所h的能力,也就是权限。resources.arsc则是~译q后的一个资源说明文Ӟ?我们要关注的主要是classes.dex 。我们编写的AndroidE序Q在源程序里的所?java的文Ӟ最l都~译到这??dex文g当中Q在Android手机上的dalvik虚拟 Z执行?/p>

 

首先Q我们介l如何逆向一?xml文g

 

׃apk包里的xml文g我们直接用记事本打开q是有一些ؕ?/p>

所以需要我们还原才能更好的看出

 

q里需要用到AXMLPrinter2.jar 工具

 

具体的则是打开命o? 我们以AndroidManifest.xmlZQ输入如下命?/p>

 

java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt

 

有兴的也可以写成一?bat的脚本,方便执行

我们可以看看 执行的结?/p>

 

执行前的AndroidManifest.xml文g

 

 

执行之后 我们可以再看?/p>

  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <manifest  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"   
  4.     android:versionCode="322"   
  5.     android:versionName="ver 3.2.2"   
  6.     package="com.eoeandroid.wallpapers.christmas"   
  7.     >  
  8.     <application  
  9.         android:label="@7F040000"   
  10.         android:icon="@7F020004"   
  11.         >  
  12.         <activity  
  13.             android:label="@7F040001"   
  14.             android:name=".Main"   
  15.             >  
  16.             <intent-filter  
  17.                 >  
  18.                 <action  
  19.                     android:name="android.intent.action.MAIN"   
  20.                     >  
  21.                 </action>  
  22.                 <category  
  23.                     android:name="android.intent.category.LAUNCHER"   
  24.                     >  
  25.                 </category>  
  26.             </intent-filter>  
  27.         </activity>  
  28.         <service  
  29.             android:name=".service.SyncDeviceInfosService"   
  30.             >  
  31.         </service>  
  32.         <meta-data  
  33.             android:name="com.mobclix.APPLICATION_ID"   
  34.             android:value="30c0e2bb-a878-43cb-830b-a39fcae33b0c"   
  35.             >  
  36.         </meta-data>  
  37.     </application>  
  38.     <uses-sdk  
  39.         android:minSdkVersion="3"   
  40.         >  
  41.     </uses-sdk>  
  42.     <uses-permission  
  43.         android:name="android.permission.INTERNET"   
  44.         >  
  45.     </uses-permission>  
  46.     <uses-permission  
  47.         android:name="android.permission.SET_WALLPAPER"   
  48.         >  
  49.     </uses-permission>  
  50.     <uses-permission  
  51.         android:name="android.permission.WRITE_EXTERNAL_STORAGE"   
  52.         >  
  53.     </uses-permission>  
  54.     <uses-permission  
  55.         android:name="android.permission.ACCESS_NETWORK_STATE"   
  56.         >  
  57.     </uses-permission>  
  58.     <uses-permission  
  59.         android:name="android.permission.READ_PHONE_STATE"   
  60.         >  
  61.     </uses-permission>  
  62.     <uses-permission  
  63.         android:name="android.permission.ACCESS_NETWORK_STATE"   
  64.         >  
  65.     </uses-permission>  
  66. </manifest>  
[c-sharp] view plaincopy
  1. <?xml  
  2.  version="1.0" encoding="utf-8"?>  
  3. <manifest  
  4.     xmlns:android="http://schemas.android.com/apk/res/android"  
  5.     android:versionCode="322"  
  6.     android:versionName="ver 3.2.2"  
  7.     package="com.eoeandroid.wallpapers.christmas"  
  8.     >  
  9.     <application  
  10.         android:label="@7F040000"  
  11.         android:icon="@7F020004"  
  12.         >  
  13.         <activity  
  14.             android:label="@7F040001"  
  15.             android:name=".Main"  
  16.             >  
  17.             <intent-filter  
  18.                 >  
  19.                 <action  
  20.                     android:name="android.intent.action.MAIN"  
  21.                     >  
  22.                 </action>  
  23.                 <category  
  24.                     android:name="android.intent.category.LAUNCHER"  
  25.                     >  
  26.                 </category>  
  27.             </intent-filter>  
  28.         </activity>  
  29.         <service  
  30.             android:name=".service.SyncDeviceInfosService"  
  31.             >  
  32.         </service>  
  33.         <meta-data  
  34.             android:name="com.mobclix.APPLICATION_ID"  
  35.             android:value="30c0e2bb-a878-43cb-830b-a39fcae33b0c"  
  36.             >  
  37.         </meta-data>  
  38.     </application>  
  39.     <uses-sdk  
  40.         android:minSdkVersion="3"  
  41.         >  
  42.     </uses-sdk>  
  43.     <uses-permission  
  44.         android:name="android.permission.INTERNET"  
  45.         >  
  46.     </uses-permission>  
  47.     <uses-permission  
  48.         android:name="android.permission.SET_WALLPAPER"  
  49.         >  
  50.     </uses-permission>  
  51.     <uses-permission  
  52.         android:name="android.permission.WRITE_EXTERNAL_STORAGE"  
  53.         >  
  54.     </uses-permission>  
  55.     <uses-permission  
  56.         android:name="android.permission.ACCESS_NETWORK_STATE"  
  57.         >  
  58.     </uses-permission>  
  59.     <uses-permission  
  60.         android:name="android.permission.READ_PHONE_STATE"  
  61.         >  
  62.     </uses-permission>  
  63.     <uses-permission  
  64.         android:name="android.permission.ACCESS_NETWORK_STATE"  
  65.         >  
  66.     </uses-permission>  
  67. </manifest>  
 

基本能还原的跟源E序大致相同

q里我是拿的eoe出的一个墙U程序ؓ?/p>

 

 

 

接下来,大家肯定更加兛_classes.dex的逆向

 

q个其实跟之前那个也很相?/p>

采用baksmali.jarq个工具Q国外一个对Android研究的很深入?大牛做的

 

执行代码

java -jar baksmali.jar -o classout/ classes.dex

 

讲classes.dex能逆向成一个文件夹

q里我可以截个图l大家看?/p>

 

 

点开其中一个文?我们l箋来看

 

 

大家是不是觉得这个代码很亲切

? 从这个代码我们基本能大致推断出源E序的一些结构流E?/p>

从中借鉴

 

 

本文仅供研究学习之用

Ƣ迎与我讨论交流

 

 

本文地址如下 转蝲h明此?/p>

http://blog.csdn.net/Zengyangtech/archive/2010/08/12/5807517.aspx



]]>
[JAVA]获得汉字的拼音首字母http://www.aygfsteel.com/hackzhang/archive/2012/03/23/372508.html_诚所臻I金石为开_诚所臻I金石为开Fri, 23 Mar 2012 02:15:00 GMThttp://www.aygfsteel.com/hackzhang/archive/2012/03/23/372508.htmlhttp://www.aygfsteel.com/hackzhang/comments/372508.htmlhttp://www.aygfsteel.com/hackzhang/archive/2012/03/23/372508.html#Feedback0http://www.aygfsteel.com/hackzhang/comments/commentRss/372508.htmlhttp://www.aygfsteel.com/hackzhang/services/trackbacks/372508.html --sunfruit

    提供了获得汉字的拼音首字母的Ҏ

    JDK版本    无版本限?br />    功能    实现了获得一个汉字的拼音首字母功能,为汉字排序提供了方便

    Ƣ迎大家提意见,交流

    代码如下Q?/p>

/**
 * Title:获得汉字的拼音首字母
 * Description: GB 2312-80 把收录的汉字分成两。第一U汉字是常用汉字Q计 3755 个,
 * |于 16?5 区,按汉语拼韛_母/WŞ序排列Q第二汉字是次常用汉字Q?br /> * ?3008 个,|于 56?7 区,按部首/W画序排列Q所以本E序只能查到
 * 对一U汉字的声母。同时对W合声母QzhQchQshQ只能取首字母(zQcQsQ?nbsp;
 * Copyright: Copyright (c) 2004
 * Company: 
 * @author not attributable
 * @version 1.0
 */
public class GetFirstLetter {

// 国标码和Z码{换常?br />  private static final int GB_SP_DIFF = 160;

//存放国标一U汉字不同读音的起始Z?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};

//存放国标一U汉字不同读音的起始Z码对应读?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'};

//获取一个字W串的拼音码
  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中每个字W?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码两个字节分别减?60Q{换成10q制码组合就可以得到Z?br />   * 例如汉字"?的GB码是0xC4/0xE3Q分别减?xA0Q?60Q就?x24/0x43
   * 0x24转成10q制是36Q?x43?7Q那么它的区位码是3667Q在对照表中读音?#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;
  }
}

转蝲Q?div>http://www.aygfsteel.com/yaozhuan/articles/31616.html

]]>
վ֩ģ壺 | | | | Ͻ| | | | | Ϻ| | ƫ| | | ɽʡ| ˰| | ƽ| ̨| ԰| ̫| ³ľ| | ̶| | | Զ| ƽȪ| ̫| | | ߷| | | ֹ| | ˫| | ʲ| ˮ| ˹|