如何反编译APK?
1、概述
一些商业的app都包含很多精美的图片还有一些比较好的配置文件,以前某师兄就说过apk把后缀改为zip,然后解压一下就可以获得很多图片资源,但是这时候你打开一下解压出来的xml资源全是乱码。通过反编译不仅可以获取全部图片和正常的xml配置文件,要是没有进行代码混淆的apk还可以看到源码的!所以反编译还是要掌握一下,暑假美团外卖商家版不就是被人反编译然后发现它杀死友商的后门嘛,最近在学车,这里驾校宝典apk给反编译一下来看看吧。
2、工具
通常有Apktool或者ShakaApktool ,这里用的是Apktool做的示范 (工具下载见最后)
里面有三个工具:
【apktool】获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
【dex2jar】将APK反编译成Java源码(将classes.dex转化为jar文件)
【jd-gui】查看2中转换后的jar文件,即查看Java文件
分为以下3步
2.1、使用apktool反编译APK获得图片与XML资源
为了方便这里将驾校宝典的apk放到 apktool2.2文件夹中,然后进入apktool2.2文件夹中,双击cmd.exe,输入
apktool.bat d com.handsgo.jiakao.android_6.2.9_liqucn.com.apk (可以使用Tab键补齐,不要傻傻的一个个敲)
然后我们会发现在apktool2.2文件夹多出一个反编译之后的文件夹,这时候xml文件不乱码而且图片均可获得!第一步get
2.2、使用dex2jar将classes.dex转换成jar文件
这里我需要将apk改为zip解压后获取到classes.dex文件,将它复制到dex2jar.bat所在的目录下
然后cd到dex2jar-2.0文件夹下
然后输入:d2j-dex2jar.bat classes.dex
得到我们的jar文件
2.3、使用jd-gui查看jar包中的Java代码
打开jd-gui.exe文件夹
然后打开我们转化出来的jar包,好吧这里做了代码混淆想看源码是不可能喽,这是商业软件嘛,不混淆代码就不正常了,但是仔细看看还是可以看到用的一些控件大概逻辑之类的。
最后想说一下,有时候反编译第一步出来是个空文件夹,那是apktool版本太低的原因,通常通过反编译看到配置文件和精美图片还是可以的,源码要看人品了。
工具下载地址http://download.csdn.net/detail/xsf50717/9252337
如何反编译APK?的更多相关文章
- 反编译apk
一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI 前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...
- Atitit.反编译apk android源码以及防止反编译apk
Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...
- 反编译APK文件
有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...
- ubuntu下使用反编译apk,工具dex2jar和jd-gui
ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...
- Android 反编译apk 详解
测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取) 下载 dex2jar(源码文件获取) 下载 jd-gui (源码查看) ...
- Uubuntu 14.04 LTS反编译apk
使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...
- Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...
- Android 反编译apk
工具介绍: apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 下载地址:https://bitbucket.org/iBotPeaches/apktool/downl ...
- 反编译Apk得到Java源代码
原文章转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html 本人转载自:ht ...
随机推荐
- 六星经典CSAPP-笔记(12)并发编程(上)
六星经典CSAPP-笔记(12)并发编程(上) 1.并发(Concurrency) 我们经常在不知不觉间就说到或使用并发,但从未深入思考并发.我们经常能"遇见"并发,因为并发不仅仅 ...
- CentOS7: How to install Desktop Environments on CentOS 7?
1. Installing GNOME-Desktop: Install GNOME Desktop Environment on here. # yum -y groups install &quo ...
- Playground中格式注释语法
类似于Ruby的ruby document,Xcode的Playground自身也提供一些嵌入文档中的格式注释的语法. 我们先定义一个简单的类: class A{ } 按住opt点击class A,你 ...
- Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52835829 前言:上篇中,&l ...
- NuGet包断线续传下载
NuGet包断线续传下载(金庆的专栏)NuGet是VC的扩展,用来下载依赖包.NuGet下载没有断线续传,下载源又很容易断开. https://nuget.org/api/v2/ https:// ...
- Python 3.3.3 使用requests模拟登录网站
在模拟登录上,requests确实比python标准库中的相关模块更加简洁. 假设你需要去爬一组页面(targetUrls),而这些页面要登录才能进行访问.那么requests能够提供一种相当简单的语 ...
- 23 服务的启动Demo2
MainActivity.java package com.qf.day23_service_demo2; import android.app.Activity; import android.co ...
- FFmpeg的HEVC解码器源代码简单分析:概述
===================================================== HEVC源代码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpe ...
- JSP 2.x 自定义标签
JSP 1.x的标签,虽然使用起来非常灵活,但是比较复杂,JSP 2.x提供了一组简化的标签写法 SimpleTagSupport是SimpleTag接口的子类,同时支持参数和标签体,最核心的方法时d ...
- socket系列之服务器端socket——ServerSocket类
一般地,Socket可分为TCP套接字和UDP套接字,再进一步,还可以被分为服务器端套接字跟客户端套接字.这节我们先关注TCP套接字的服务器端socket,Java中ServerSocket类与之相对 ...