1概述
本文涉及的内容本质上就是APK的反编译, 作为一个开发者, 需要正视一下本文所谈及的技术, 目的是为了让你借鉴/学习优秀实践, 而非让你去盗用其它开发者得成果。事实是, 通过本文所谈及的内容, 如果不付诸实践和学习,没有比较好的Android基础, 实质上也不能从反编译的一堆代码文件中, 得到有价值的信息。本文不赞成任何有损开发者劳动成果的行为。
2 基本知识
很多东西实质已经不需要再总结, 这方面有两个不错的资料。 请移步到下面的链接中阅读:
1.
反编译apk文件,得到其源代码的方法!!
点评: 不难发现代码都被Android打包成dex文件, 通过这个文件复原出来问题不大, 但大部分的情况, 复原后的Java文件, 基本上不能保证再编译通过, 但出于技术学习的目的, 某些代码片段已经包含足够的信息, go and find it!
2. 一个APK反编译利器Apktool
不赞成文章最后去掉admob广告的做法, 这样实质上是对开发者的一种伤害, 通过XML文件的学习, 对GUI方面的了解, 可谓是比较完美了。这个也是本文今天关注的重点,开发人员对GUI这块非常头痛, 所以, 通过反编译apk, 可以好好了解一些优秀实践所采用的UI方法。另外新版本不需要apk一定得放在C盘根目录。 任意指定的位置都OK.
3. Android 布局学习工具.
/android-sdk-windows/tools 目录下的 hierarchyviewer.bat, 是一款研究别人布局的好工具. 先打开这个工具, 然后启动模拟器。发现惊喜. 可以参考这篇文章获得更多的理解。Android 利用【Hierarchy Viewer 】 工具学习别人的UI设计 结合上面的第二点。能很好的复原界面元素。
3 应用
大量教程基本上是让你汉化,破解,去广告的基本行径。 本文是为了让技术开发者更好的学习Android程序用到的技术。作为一个技术人员,基本上一点点小小的思路, 就足够让它们借题发挥了。这里也只是稍微点拨一下个人常用的方法。
1. 利用图片的名称对apk破解后的资源文件进行整体搜索。将上一章所说的第二个方法一个APK反编译利器Apktool,可以得到一堆资源文件。然后Copy到Eclipse的某个工程中。进行搜索, 最最有效率的方式(还记得快捷键吧Ctr+H)。
2. 利用R.java文件中的id号, 将上一章反编译apk文件,得到其源代码的方法!!得到的源文件进行搜索. 这个时候, 基本上所使用的元素的位置基本上清楚了。
3. 当无法定位Activity对应的Layout在哪里时, 这个时候需要用到上一章讲到的第三个方法, 利用hierarchyViewer去查看布局。然后结合1和2的信息做交叉理解。(很有必要提及的问题, hierarchyViewer里面涉及的布局, 并非跟Layout的xml完全一致, 在hierarchyViewer中,很容易看到GridView中居然可以包含一个LinearLayout, 这个实际上在XML中,是不允许这样描述的。一般Android是在源码中实现一个GridView包含一个LinearLayout的,
这个时候,不得不利用到上文1和2描述的方法交叉定位).
从上文的分析来看, 所有的信息都是片段和零散信息, 技术上并没有对原来的作品侵权, 仅作为学习交流用。
分享到:
相关推荐
Bytecode Viewer——一个轻量级的用户友好的Java字节码查看器。
windows下用的安卓apk反编译逆向工程的工具 分享给大家 windows下用的安卓apk反编译逆向工程的工具 分享给大家
学逆向的小伙伴们是不是曾经听到过这么一句玩笑:你逆向学的那么牛逼,你把我软件逆出...工具可以将apk转为可二次开发的项目工程,将痛苦的逆向环境,转化为舒服的开发环境,告别汇编,告别二进制,还有啥好说的~~!
无法反编译出java源码使用 Apktool 和 Frida 进行 Android Apk 逆向工程 表中的内容 下面提到的所有步骤都在 macOS Mojave 上 在 PC 上安装工具 使用 pip3 安装frida-tools 运行命令$ pip --version和$ pip3 --...
JEB是一款为安全专业人士设计的功能强大的Android应用程序反编译工具。用于逆向工程或审计动态调试APK文件,可以提高效率。 这个版本还可以逆向以太坊智能合约。 jeb3.19.1及kengen生成python 无需patch
Android逆向助手是一款针对安卓平台的逆向辅助软件,主要功能: 1、反编译apk; 2、重新打包成apk; 3、对apk进行签名; 4、反编译dex; 5、重新打包成dex; 6、dex转jar; 7、dex转ddx; 8、dex导出成txt...
将APK反编译为Java源代码 使用Quark-Engine进行恶意软件分析 将项目目录初始化为Git存储库 使用功能丰富的VS Code有效地分析和破解 应用MITM补丁进行HTTPS检查 从Smali和资源构建APK 在调试模式下重建APK以进行动态...
java反编译 泄露源码
反编译引擎、漏洞检测引擎、恶意行为检测引擎、污点传播分析引擎、反混淆引擎、apk壳检测引擎等等, 尤其是恶意行为检测引擎和污点传播引擎与反编译核心的完美融合, 大大提高了无源码逆向工程的效率, 此外反编译器还...
Android逆向工程之反编译三件套,包含apptool、dex2jar、jd-gui。apptool使用最新版本apktool_2.3.1版本,可以有效避免 Exception in thread "main" java.lang.ClassCastException 等异常。三个工具实乃反编译之必备...
Java反编译器-它利用FernFlower,Procyon,CFR和JD进行反编译。 字节码反编译器-CFIDE的修改版本。 十六进制查看器-由JHexPane提供支持。 每个反编译器/编辑器/查看器都是可切换的,您还可以选择将在每个窗格上...
用于反编译Apk的实用工具,在逆向工程的时候特别的有用处。 可以把Dex转成Jar包。
android程序的反编译工具集,特别分享, 简介: Apk2Java.exe由于版本较旧,有些会反向失败,但最终都会得到xml和res,xml文件可以用AXMLPrinter2.jar进行反向。 可以先把apk解压,剥离出classes.dex,再使用工具...
大多数逆向工程师主要使用java反编译器、商业dalvik反编译器jeb和smali2java来分析android应用程序。Java反编译程序基于Java字节码,包括JD、JD-GUI、JADX等。smali2java是一个基于smali代码的反编译程序。它们都有...
大多数逆向工程师主要使用java反编译器、商业dalvik反编译器jeb和smali2java来分析android应用程序。Java反编译程序基于Java字节码,包括JD、JD-GUI、JADX等。smali2java是一个基于smali代码的反编译程序。它们都有...
APK安全加固是面向移动应用程序的深度安全保护服务,可以为您的APP穿上一层“软猬铠甲”,通过加密、加壳、RPC、动态加载等技术为您的应用进行全方位安全保护,有效防止逆向工程、反编译、嵌入病毒、非法扣费等恶意...
反编译的定义--计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、...
mac端反编译相关工具,包括AndroidCrackTool、jd-gui和dex2jar,工具的使用方法详见:http://www.jianshu.com/p/56ea01d7ccac,也欢迎大家关注我的简书博客
逆向工程包括两个过程:反汇编和反编译 ·反汇编 反汇编是将机器语言翻译成汇编语言的过程。反汇编器的输出结果通常是人们适合阅读的格式,而不是注重于汇编器输入的适用性。 ·反编译 从字面意思来看,反编译...
反向工程或审计APK文件,并减少许多工程师的分析时间。JEB的独特功能是,其Dalvik字节码反编译为Java源代码的能力。无需DEX-JAR转换工具。特别是当处理混淆的或受保护的代码块。JEB的强大的用户界面,使您可以检查...