根据原文郭霖大神的博客Android安全攻防战,反编译与混淆技术完全解析

本人亲测反编译真的没有什么卵用,个人纯属好奇就去搜了一下,偷窃有罪,抄袭可耻。

  • 1.手机上的apk都是打包好的,直接安装使用。刚开始使用就是用的三个软件,后来又找到一个集三个软件大成的软件。后来更新了Android studio3.0发现它里面好像也有这个功能了。对于大神来说是有用的,貌似可以去广告神马的。对于我来说一开始是想看看成熟的软件是怎么写的,想到汇编都能反编译为什么apk不行?后来一搜真有。当时是高兴的,但是后来随着深入,我知道了反汇编也没用。知道了大多数都是有加密的,没有加密的你也是看不懂的这种。现在写这篇博客就是想告诉自己和他人,老老实实学技术,自己会的才是真的会的。抄袭加倍罚分数,助教们这招真的好。老老实实的去学习。说了这么多,不继续废话了,怎么样也算自己了解过的技术,就写出来让大家娱乐娱乐,引以为戒,不要浪费时间。
  • 2.首先介绍入门级三个软件
    • 1.apktool,下载后拿到apktool.bat和apktool.jar,然后把这两个工具放到哪都行。这个工具的作用主要是得到apk的资源文件和配置文件
    • 2.dex2jar 下载这个工具解压后放到任意盘都可以,后面主要用这个根据apk的classes.dev文件生成供jd-gui工具解析的jar。
    • 3.jd-gui上一步提到其作用,和2一样,也是下载后放到任意盘即可,到时候只要运行jd-gui.exe打开上一步生成的jar即可查看源码

      这是准备就绪了
      之后apktool d [-s] -f com.thinkernote.Team.apk -o app1
      com.thinkernote.Team.apk是一个已有的apk,这句的意思是把它反汇编之后的文件放到app1文件中。


      下面使用dex2jar

      • 1.把你将要反编译的apk的扩展名改成压缩包的扩展名(rar\zip等),然后对其解压,找到classes.dev文件,将之复制后贴到dex2jar底下
      • 2.命令行下输入d2j-dex2jar.bat classes.dex
        这是我第一步搞好的

        执行第二步

        结果


        得到classes_dex2jar.jar了,前面说了jd-gui的作用了,直接打开这个就行了,得到的就是源代码了。
  • 3.没错现在你可能感觉很开心以为你得到了as上能用的源代码。我当时也是这么想的,但是打开一看就心里凉了半截,虽然这份没加密

    这是我在Git上为了演示得到的app

有的加密了里面就会是

完全被混淆的这种,类名变成123,abc之类的完全无法阅读。这是为什么呢?
原来这里面带有as自带的防止你反汇编的机制
在Android Studio当中混淆APK实在是太简单了,借助SDK中自带的Proguard工具,只需要修改build.gradle中的一行配置即可。可以看到,现在build.gradle中minifyEnabled的值是false,这里我们只需要把值改成true,打出来的APK包就会是混淆过的了。如下所示:

release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

这样就被混淆了。你在怎么厉害也没办法。剩下的几种我就不介绍了,原理都一样,学习永远没有近路,脚踏实地,老老实实。

个人技术博客二之apk反编译与加密的更多相关文章

  1. Android开发学习总结(六)—— APK反编译

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  2. Android开发学习总结(六)—— APK反编译(转)

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  3. 【转】APK反编译

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  4. apk 反编译

    http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 标签: android ...

  5. Android APK反编译详解(附图)

    转载自http://blog.csdn.net/sunboy_2050/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而 ...

  6. (转)Android APK反编译详解

    转载地址:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到 ...

  7. Android APK反编译具体解释(附图)

    这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的 ...

  8. Android APK反编译详解(附图) (转至 http://blog.csdn.net/ithomer/article/details/6727581)

    本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一.Apk反编译得到Java源 ...

  9. Android APK反编译详解

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

随机推荐

  1. lua热更框架之XLua

    框架介绍 xLua是当下最流行的unity热更方案之一,作者是腾讯的车雄生前辈,自2016年初推出以来,已经在腾讯的多款游戏项目上应用,目前xLua已经开源到了GitHub.xLua最大的特色是不仅支 ...

  2. [转]ASP.NET Core配置环境变量和启动设置

    本文转自:https://www.cnblogs.com/tdfblog/p/Environments-LaunchSettings-in-Asp-Net-Core.html 在这一部分内容中,我们来 ...

  3. VB如何连接访问数据库Access

    VB如何连接访问数据库Access 听语音 | 浏览:10675 | 更新:2015-05-05 11:26 | 标签:连接 access 1 2 3 4 5 6 7 分步阅读 VB即Visual B ...

  4. jQuery二维码

    现在二维码很火,因为他可以很方便的贴到任何地方,只要扫一扫就可以看到二维码的内容 ok 废话少说,上代码 这个二维码基于jquery和jquery.qrcode插件 所以使用前先引入 <scri ...

  5. xcode 调试器 LLDB

    本文完全转载,转载地址:点击这里 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函 ...

  6. Linux 文件缓存 (二)

    close系统调用入口1. 首先来到系统调用入口,主要使用__close_fd进行了具体的处理过程,并没有耗时操作.(current->files表示进程当前打开文件表信息,fd为需要关闭的文件 ...

  7. flask-login的使用3

    # coding=utf-8 import flask app = flask.Flask(__name__) app.secret_key = 'super secret string' impor ...

  8. Unity3D 场景切换加载进度条实现

    需要三个场景,场景A,场景B,场景C: 场景A:一个按钮,点击加载场景B: 场景B:从A切换到C过度场景,加载进度条: 场景C:目标场景: 创建OnProgress.cs脚本: using Syste ...

  9. JavaWEB SSH文件上传

    一.提交表单的<form> method属性必须为post  并且添加enctype="multipart/form-data" 属性 前台: <td>上传 ...

  10. redis window 安装测试--记录

    1.下载地址https://github.com/dmajkic/redis/downloads 2.打开一个cmd窗口,使用cd命令切换到指定目录(D:\redis\64bit)运行 redis-s ...