我们安装一下这三个反编译工具
链接:https://pan.baidu.com/s/1SDM9f2HxxbNzGg2XVBymPA
提取码:i1k9

在技术娴熟和精通之前,APP逆向是门不折不扣的玄学,既然是玄学,就会有很多不可控、随机、稀奇古怪的状况。当JADX中一个变量模糊不清的时候,你就需要去JEB中看一下它的反编译结果,或者使用JEB进行动态调试。当使用JEB遇到头疼的APK混淆时,就可以试一下开启JADX的反混淆功能。因为这几个软件的逆向原理是不同的,所以在分析具体APK时各有优势,它们的功能可以互补。多个工具结合使用可以一定程度弥补个人能力的不足,只需要几百M空间放它们即可,何乐而不为呢。

1.JADX的配置和使用

直接下载,找个合适的地方解压即可,按照自己的操作系统打开相应的文件即可。
可能出现的两个问题:

  • 为什么双击jadx-gui.bat 出现控制台一闪而过,没有正确出现界面

因为你的JAVA_HOME环境变量没有正确配置,但也不排除是JDK版本的问题。

  • 反编译卡死、闪退

Apk超过50M就很容易出现OOM(OutOfMemoryError),在win中,它默认使用4G内存,可以查看界面底部居中部分。

如果你的window系统是8G或者更高运行内存,我们可以修改参数进行扩容。文本模式打开jadx-gui.bat,将被框出的内容数值改为8g或者更大,如果电脑运行内存更大,也可以改成更高的数值。100M以内的App,8G内存足够了。
接下来重新打开JADX,内存就已经
更改了。

如果你的windows系统只有4G运行内存,我们依然有很多办法使用jadx,实战中再说。

接下来说一下mac中的扩容,文本模式打开jadx-gui这个文件,找到和上述类似的位置,更改为更大的值即可。

JADX的使用和快捷键

  1. 搜索代码、类、方法——Ctrl+N,建议不要使用左上角的搜索类/搜索文本,因为图标太小,很容易按错,如果你第一次搜索用搜索类,第二次搜索时选择搜索文本,那第一次的搜索内容和设置是不会记录下来的。所以不如直接看一下工具栏中的快捷键,只用一个。
  2. 文件-首选项中,如果内存够用,我建议勾选“自动进行后台反编译”,因为Jadx默认只有在你展开内容或者搜索内容时,才会开始反编译。不要勾选Unicode自动转义,否则代码中的中文会被转成unicode,不方便识别和搜索。
    Ctrl+鼠标左键,可以跳转到方法内部,几乎所有的代码编辑器都是这样。
    别的一些可以修改的地方我放在了下图红框里,比如反编译线程数,线程数越多,反编译越快,但占用内存也越多,建议根据电脑性能调整,不调整也OK。反混淆一般不用开。

2.JEB的配置和使用

同样直接下载,找个合适的地方解压,按照自己的操作系统打开相应的文件即可。
我们同样要进行JEB的扩容,默认为1.8G,我们需要进行更改。

更改前

更改后
Windows中JEB的扩容

将整个红框内容替换如下

:startjeb
set JEB="%~dp0bin\jeb1.exe"
if exist %JEB% goto :runlauncher
%JAVA% -jar -Xmx4g -Xms4g "%~dp0bin\app\jebc.jar" %*
exit 0
:runlauncher
%JEB% %*
exit 0

3.GDA的配置和使用

只有windows可以用,exe直接点开即可,以后会用到,到时候再说

  1. Smali是dex文件反编译的结果,可以说,smali语言是Dalvik的反汇编语言,下文会介绍DEX

  2. 我们这一个系列的教程针对的是无壳App,而当你自己拿到一个未知的App时,第一步要做的一定一定得是查壳。

  3. 得到的并不是Java源代码,这是个错误的说法,但对初学者来说比较容易理解。不管你通过什么工具反编译apk,得到的java代码都和Apk开发时的源代码相差甚远。我们能得到的仅仅是一种伪代码,它可能存在错误的逻辑、奇怪的变量名、各种各样的error,但代码总体上是靠谱的。

  4. 为了阅读和讲解的循序渐进,我们这里并没有把IDA考虑进来,IDA是神器,在后面是避免不了的。

  5. 这条注释针对没有JAVA基础的小伙伴,构造函数在JAVA中非常常见,JAVA是一门面向对象的语言,构造函数是一种特殊的函数。其主要功能是用来在创建对象时初始化对象, 构造函数与类名相同。如果听不懂也没关系,知道是个函数即可,后续也会慢慢补充JAVA知识。

安卓逆向工程之工具使用JADX,JEB,GDA的安装使用相关推荐

  1. 安卓应用自动化测试工具汇总

    安卓应用自动化测试工具之一 - PerfectoMobile 该工具的官方网址:PerfectoMobile.com 背景:美国/以色列公司,该工具已有6年历史. 突出特点:测试脚本可以跨平台(And ...

  2. win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!

    [PConline 资讯]不久前有人从泄漏的Windows 10手机版build 10240中,解包出了微软内置的可以让Windows 10手机版兼容安卓App的模块,详情可以点此查看.不过,Wind ...

  3. 编译超频Android内核,安卓超频工具apk下载

    Setcpu安卓超频工具app是专门为喜欢搞机的你准备的,可以根据系统内核和CPU架构自动检测支持的CPU频率调节值,并为不同的CPU频率单独设置电压(调压),避免因为电压过高/过低导致系统不稳定,支 ...

  4. android apk安装工具,安卓装机必备工具!一键批量安装应用apk

    原标题:安卓装机必备工具!一键批量安装应用apk 安卓如何批量安装App的apk安装包?这是很多朋友都遇到的问题.安卓可以通过apk安装电子市场所没有的App,不过有时候下载一堆apk安装包回来,还需 ...

  5. android 自动签名工具下载,安卓批量签名工具使用说明

    安卓批量签名工具使用Python编写,利用此工具对未签名apk实现修改AndroidManifest.xml的多个meta-data信息,并自动签名(可实现多个签名) 如果只需要进行多渠道打包,可参考 ...

  6. android模拟器自动化测试,安卓模拟器自动化测试工具

    原标题:安卓模拟器自动化测试工具 作者:陶_306c 来源:简书 从开始到最后实现我的项目,一共用了两种方法:第一个是adb操作,第二个是uiautomator 一.adb shell 第一个的话,要 ...

  7. 安卓逆向工程--针对授权key方式的破解

    安卓逆向工程–修改smali实现软件破解 本篇博客重点介绍基于--授权key方式的破解 1 简介 所谓授权key就是指软件通过安装在手机里的授权apk,实现各种高级功能. 而我们的目的就是不去安装授权 ...

  8. android 数据传递工具,AnyTrans for Android for Mac(安卓手机数据传输工具)

    原标题:AnyTrans for Android for Mac(安卓手机数据传输工具) AnyTrans for Android for Mac是一款好用的安卓手机数据传输工具,全面管理您的iPho ...

  9. android删除界面工具下载,安卓系统软件卸载工具

    安卓系统软件卸载工具是一款可以卸载安卓手机上的系统应用的软件,现在很多安卓手机都自带很多软件,现在你可以直接卸载系统软件了哦,而且安卓系统软件卸载工具还支持冰冻软件功能,这样不占手机垃圾了. 安卓系统 ...

最新文章

  1. 2020,人工智能和深度学习未来的五大趋势
  2. foreach判断最后一个_JavaScript很简单?那你理解的forEach真的对吗?
  3. 反函数的导数:理论与应用
  4. java params 参数_将params作为参数传递给类扩展方法的函数
  5. 物联网产业链及市场分
  6. Android开发工作中遇到的重点和难点总结
  7. Cloud Programming Simplifie : A Berkeley View on Serverless Computing
  8. Oracle 学习系列之一(表空间与表结构)
  9. Stanford UFLDL教程 稀疏自编码器符号一览表
  10. 3.QT事件处理,消息过滤器
  11. [转帖]jQuery框架学习第八天:ASP.NET jQuery实施方案
  12. ISO9000:2000 质量管理八大原则
  13. python爬虫-scrapy基于selenium进行网页截图
  14. oracle translate using,oracle translate() 详解
  15. 核心数据库保护安全技术实践
  16. Ubuntu Server 安装Nginx 实例
  17. flash 磨损均衡处理
  18. 小猫爬山(DFS+剪枝)
  19. 【C语言入门】笔记八 (数组中)
  20. 60项基于深度学习的SLAM顶会开源方案汇总(上篇)

热门文章

  1. 基于工作行为的研发管理体系设计及实践
  2. 华为云云商店星品入“沪”,加速产业数字共赢!
  3. MacBook Pro安装WIN10问题集锦
  4. PHP程序输入输出流
  5. asp.net ajax1.0基础回顾(二):经典模式
  6. 定价是什么意思_直接定价发行是什么意思?什么是直接定价发行?
  7. 如何获取京东推广的APPKEY
  8. 【前端——vue】:过滤器、侦听器、计算属性、vue-cli、vue组件、动态组件、插槽、自定义属性、路由
  9. 【JY】基于性能的抗震设计浅析(一)
  10. 给网站开发者推荐18个在线手册,值得收藏