最新在反编译别人的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. 文件处理命令:awk

    awk擅长于对数据进行分析并生成报告,简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. 使用方法:awk '{pattern +action}' {fi ...

  2. css 浅析display属性

    继续开始我的css之旅吧.今天我们来说什么啊.构思了两天还是没有什么思路,但是学习的步伐我们不能停止下来.还是按照之前的计划来讲讲display,在讲这个之前我们还是按照老规矩来扯扯蛋,步子不能够迈大 ...

  3. javax.mail 发送邮件异常

    一.运行过程抛出异常 1.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/ ...

  4. 踏上Salesforce的学习之路(二)

    一.添加一个字段到对象中 1.给Merchandise对象添加一个Price字段 先点击右上角姓名旁边的Setup(不管你在哪个页面,点击Setup都能让你快速的回到首页,如下图所示),然后在左侧的Q ...

  5. 最常见的 20 个 jQuery 面试问题及答案

    jQuery 面试问题和答案 JavaScript 是客户端脚本的标准语言,而 jQuery 使得编写 JavaScript 更加简单.你可以只用写几行的jQuery 代码就能实现更多的东西. 它是最 ...

  6. 利用js查找页面中的内链,外链

    起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊??????? 后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a ...

  7. Spring的通知(Advice)

    Spring提供了5种Advice类型: Interception Around:JointPoint前后调用 Before:JointPoint前调用 After Returning:JointPo ...

  8. Python之路第一课Day4--随堂笔记(迭代生成装饰器)

    上节回顾: 1.集合 a.关系测试 b.去重 2.文件操作及编码 3.函数 4.局部变量和全局变量 上节回顾 本节课内容: 1.迭代器生成器 2.装饰器 3.json pickle数据序列化 4.软件 ...

  9. *HDU 1757 矩阵乘法

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  10. Javascript中call和apply的区别和用法

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别.其实就是更改对象的内部指针,即改变对象的this指向的内容.这在面向对象的js编程过程中有时是很有用的.call ...