当前位置:首页 > Android > 正文内容

andriod的apk文件编译反编译工具及步骤

jsc10年前 (2016-04-07)Android3492

apk文件反编译工具和步骤小结


APK反编译工具下载:

1. apktool下载后解压即可使用。
   下载地址: http://code.google.com/p/android-apktool/downloads/list
2. dex2jar下载后解压即可使用。
   用途:将apk或者dex转化为可以用gui查看的class文件
   下载地址:http://code.google.com/p/dex2jar/downloads/list
3. smali.jar和smali下载后放置到apktool目录下即可
   用途:.smali文件 转成 classes.dex文件
   说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。
   用法举例:命令行:java -jar smali.jar classout/ -o classes.dex
   下载地址:http://code.google.com/p/smali/downloads/list
4. baksmali-1.2.6.jar
    用途:classes.dex文件 转成 .smali文件
    说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。
    用法:命令行:java -jar baksmali.jar -o classout/ classes.dex
    下载:http://code.google.com/p/smali/downloads/list
5. AXMLPrinter2.jar
    用途:xml文件 转成 普通文本文件(txt)
    说明:apk中的xml文件被搞成二进制了,无法阅读,使用此工具转换后,可以查看正常的xml文件。
    用法举例:命令行:java -jar AXMLPrinter2.jar main.xml > main.txt
    下载:http://code.google.com/p/android4me/downloads/list

APK反编译步骤:
1. 应用test.apk文件拷贝到apktool文件夹下

2. 打开cmd,跳转到apktool目录下输入apktool.bat d test.apk,得到test文件

    运行结果:

   


3. 经过上述步骤后,test文件中生成.smali文件,工具文件smali.jar和smali拷贝到apktool根目录下,
   再使用命令:java -jar smali.jar test/ -o classes.dex ,

   就会得到一个classes.dex文件。

   运行结果:

  

4. 把文件classex.dex拷贝到dex2jar根目录下,

   执行命令:dex2jar.bat classes.dex, 便会得到classes_dex2jar.jar文件。

   运行结果:

  

5. classes_dex2jar.bat使用jdgui打开就可以看见java代码了。

运行结果:


注:出现一些编译错误的时候,可能是工具版本的问题,请使用最新版本工具

扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://www.jsc0.com/post/104.html

分享给朋友:

“andriod的apk文件编译反编译工具及步骤 ” 的相关文章

Android中AsyncTask的简单用法

Android中AsyncTask的简单用法

        在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好 的用户体验。但是在子线程中无法去操作主线程(UI 线...

android异步任务详解 AsynTask

android异步任务详解 AsynTask

android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。其实,AsynTask类就是对Thread类的一个封装,并且加入了一些新的方法。编程时,两者都可以实现同样的功能。本文后面将对AsynTask和Thread...

Fragment生命周期

Fragment生命周期

onAttach方法:Fragment和Activity建立关联的时候调用。onCreateView方法:为Fragment加载布局时调用。onActivityCreated方法:当Activity中的onCreate方法执行完后调用。onDestroyView方法:Fragment中的布局被移除时...

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

注:(图中每一个条目和图标都是由代码动态生成) 代码动态布局,并需要为每一个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" ...

android上传图片至服务器

本实例实现了android上传手机图片至服务器,服务器进行保存服务器servlet代码publicvoid doPost(HttpServletRequest request, HttpServletResponse response)  ...

下拉刷新及滚动到底部加载更多的Listview使用

下拉刷新及滚动到底部加载更多的Listview使用

本文主要介绍可同时实现下拉刷新及滑动到底部加载更多的ListView的使用。 该ListView优点包括:a. 可自定义下拉响应事件(如下拉刷新)  b.可自定义滚动到底部响应的事件(如滑动到底部加载更多)  c.可自定义丰富的样式  d....