最新在反编译别人的apk,有时候看到别人的app有很炫的效果,就想知道别人是怎么样实现的,顺便自己参考,借鉴一下,下一次如果工作中碰到这个问题就知道怎么实现了.最近恰好放假三天,就研究了一下,一般别人的app都对代码进行了混淆,但是我们还是可以反编译看到代码,只是方法.变量.类名用字母替代了.

我这边用到了两套反编译工具,你们可以结合使用.最后我会提供这些工具的下载地址,以下这些反编译工具的必要条件电脑必须要装jdk.

一:apktool+dex2jar+jd-gui-windows-1.4.0

1).apktool:APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,,我们一般都是用来反编译资源文件.代码反编译之后都是smali文件

     2).dex2jar dex2jar 是一款很不错的将android的,dex文件转换成Java的class文件的转换工具,把apk里面的dex反编译成jar文件

     3).jd-gui-windows-1.4.0 可以反编译jar文件,导出java源码,所以这个工具根据必须跟第二个工具结合使用

二:jadx-0.6.0

对比之前 apktool(解包apk) + dex2jar(将.dex转换成.jar) + jd-gui (查看.jar文件)反编译三件套, jadx的优点在于:可以一行命令直接反编译恢复出.java文件

下面我来说说这写工具如何使用,并且带上图片.让大家一看就懂.

一.apktool使用步骤讲解

1).解压apktool压缩包   随便解压到哪里.

2).把你要反编译的apk复制到apktool文件夹里面.

3).打开cmd窗口  cd进入apktool文件夹

4).输入命令 apktool d  "apk包名"   -o  "反编译出来源码存放的文件夹名字"

5).cmd操作,以及反编译之后的截图如下:

 二.dex2jar 使用步骤讲解

1).解压dex2jar-2.0.zip

        2).把你要反编译的apk后缀名改成.zip

        3).把里面的.dex文件解压出来

        4).把.dex文件复制到dex2jar文件夹下

        5).cmd进入dex2jar文件夹下

        6).输入命令:d2j-dex2jar  classes.dex      反编译之后可以看到一个classes-dex2jar.jar文件

7).附上效果图:

  

三.jd-gui-windows-1.4.0 使用步骤讲解

1).解压zip文件,打开里面的exe文件   把dex2jar反编译出来的jar包文件拖进去就可以,这里我就不贴出效果图了,如果这个不会我也没办法了

四.jadx-0.6.0

1).需要先把apk拷贝到jadx目录的bin目录下

    2).打开cmd窗口  cd进入jadx的bin目录

    3).在bin目录新建out文件夹

    4).cmd窗口执行命令  jadx -d "源码输出文件夹"  "要反编译的apk文件"

5).这个反编译工具时间会长一些,一定要等它log日志全部打印完毕.

6).效果图如下:

写到这里,本篇教程就结束了,最后提醒大家一句,电脑一定要装jdk.

今天看了反法西斯的阅兵,感觉中国的实力也越来越强,在这个全面信息时代,作为一名码农,我们也要加油学习,跟上祖国的脚步.不要拖祖国后腿哈哈...感觉自己废话越来越多了。

点击下载工具

android app反编译的更多相关文章

  1. Android apk反编译基础(apktoos)图文教程

    本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了 很久有写过一个广工图书馆主页 ...

  2. APP反编译第一课《如何找到核心代码》

    相信很多人都应该会去接触APP反编译,本小七给大家带来入门级别套路,自己也在慢慢摸索学习,一起成长吧.第一步,反编译需要的工具有:一.java环境,其实这里你只要安装了burp就不用管这个的二.apk ...

  3. Xamarin android如何反编译apk文件

    Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...

  4. App反编译二次打包常见问题处理

    1.二次打包时报错:Error retrieving parent for item: No resource found that matches the given name 如: D:\用户文件 ...

  5. 《Android逆向反编译代码注入》 - 逆向安全入门必看视频教程

      适合人群: Android开发人员.逆向反编译开发人员.以及对Android逆向安全感兴趣的朋友. 视频地址: 51CTO学院:https://edu.51cto.com/course/24485 ...

  6. uniapp解决测评有组件导出风险,解决APP反编译,回编译后app无法打开的问题

    1.APP反编译 使用hbx云打包,打包出apk 拿到apk后,先下载反编译工具 https://pan.baidu.com/s/1A5D8x_pdSELlHYl-Wl6Xnw 提取码 6vzd 使用 ...

  7. android apk 反编译

    Apk文件结构 apk文件实际是一个zip压缩包,可以通过解压缩工具解开.以下是我们用zip解开helloworld.apk文件后看到的内容.可以看到其结构跟新建立的工程结构有些类似. java代码: ...

  8. 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译

    反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...

  9. android 防止反编译的若干方法

    第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 ...

随机推荐

  1. Unity内存优化(贴图层面)

    聊聊近况: 距离上一篇文章已经过了好久,主要原因是我懒了.公司项目也到了开始优化的阶段,上网找的资料,看过了就忘.还是想把它整理一下,写出来.其实我说的东西,网上都有,我只是搬运工而已. 贴图压缩: ...

  2. JavaScript解惑记之Array.prototype.sort()

    前言 看JS红宝书的5.2.5章节关于sort()方法,如何用一个compare函数,让数组顺序,倒序,有点云里雾里的.在网上度娘了一下,发现更迷糊了.走投无路的情况下,只能发动神技能,去 stack ...

  3. Data对象

    var myDate = new Date(); Date()返回当日的日期 例如今天是2016/8/19 getFullYear()返回当前日期的年 myDate.getFullYear() 201 ...

  4. javascript 全局对象--w3school

    JavaScript全局对象 1.  decodeURI()解析某个编码的URI. 2.decodeURInComponent()解析一个编码的URI组件. 3.encodeURI()把字符串编码为U ...

  5. java web(六)多个请求对应一个Servlet

    概要: 提交请求的常用方式有两种,get/post , 运行程序后被请求,在加载执行web.xml文件时通过该文件中的映射关系找到即将要执行的Servlet; 而在要执行的Servlet文件中可通过反 ...

  6. HDU--洗衣服

    洗衣服 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. 基于TCP协议的socket通信

    一.服务器端 1.创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口 ServerSocket server = new ServerSocket(8888); 2. ...

  8. 纯css3 Star

    <style><!--* { box-sizing: border-box; padding: 0px; margin: 0px; } body, html { height: 10 ...

  9. table布局, td内部元素溢出边界问题。 (已解决)

    今天,我尝试用table布局有多个输入需要提交的页面, 为了使输入元素占满td,我对其宽度设置为100%, 结果text输入元素溢出td, 具体情况如下: 解决办法是对td样式设置为overflow: ...

  10. javascript中的内置对象总结

    内置对象 标准内置对象 Object Object.create Object.prototype.toString Object.prototype.hasOwnProperty Boolean S ...