android反编译,脱壳流程

什么是脱壳?

脱壳是把加在软件上的保护程序脱了 直接能看到它的原码
对于android而言 就是把加固后的apk打回原形 (阅读起来还是有点费力的)

脱壳所需要的软件

这里列一个清单 都是脱壳和反编译所需要的软件
地址 提取码 : hkr7
APK TOOL :谷歌提供的 APK 编译工具,可以反编译和回编译(主要看xml和资源文件这些东西)
dex2jar:将 dex 文件转换成 jar
jd-gui:用来查看 jar 包里面的代码
VirtualXposed: 一下简称 VX
FDex:
Total_Commander: 这就是一个资源文件管理器没什么新奇(如果手机未root才会用到它)

脱壳之前先要说一下反编译

------------------------第一种反编译(无法看到逻辑)------------------------
------------------------所需软件apktool------------------------
这种编译出来的文件里看不到带码逻辑因为带码部分都是.smali格式的文件

打开运行窗口进入到apk_tool所在文件夹 运行java -jar apktool.jar d -f appname.apk -o OUT
appname.apk是你要反编译的apk
OUT 是反编译之后输出的文件夹名称(可以随意取名)

反编译后的文件目录

------------------------第二种反编译(可以看到逻辑)------------------------
------------------------所需软件dex2jar和jd-gui------------------------
首先需要将下载的dex2jar和jd-gui解压
第一步: 修改.apk文件后缀名改为.zip 并且解压获取到 .dex 文件
第二步: 将获取到的dex文件复制到dex2jar解压后的文件夹中
第三步: 命令行进入到dex2jar的文件夹执行.\dex2jar.bat classes.dex执行成功会会生成.jar文件

这个步骤会有一个小细节
如果你在执行的时候报错不要慌张 打开classes.dex 把头文件改为036或者035?(我的是037 所以会报错貌似是因为什么规则)


报错截图

图片.png

第四步:打开jd-gui将生成的jar直接拖到里面就可以看到带码了
朋友没有没有觉得很复杂? 提供一个界面化的工具 地址提取码:c95n
小结: 以上就是整体的反编译过程 只适用没有加固的app如果如果加固了就像穿了衣服一样不过不用紧张 我们可以运用手段帮她脱

脱壳过程(脱衣)

首先要准备一个手机因为FDex和VX对手机版本有要求我准备了一个android6.0系统手机 9.0系统以上就不要尝试了
提前说一下手机是否有root权限均可,没有root权限就需要安装Total_Commander以便于将生成的.dex文件导出到电脑中

配置XV

第一步:装软件把以上所提到的软件统统装到手机中(还有要被脱的软件)

图片.png

第二步: 打开vx进入到设置>添加应用>选中Fdex(和刚才安装的所有应用)>安装
第三部:在xv中打开Xposed Installer > 选择右上角三 > 模块 > 勾选FDex
图片.png

第四步: 回到xv设置中重启xv
----------xv里面的设置已经全部配置好了----------

插一下说一说查看脱出来了dex(这个要提到前面说不然脱得流程可能要重新走一次)

这个分两种情况就是有没有root权限.有权限的拿到dex的输出路径自己随便搞,这里介绍一下没有权限的 就是使用Total_Commander
第一步:xv里打开Total_Commander点击书签就是那个红框框

图片.png

第二步:添加书签>位置为\data\data\io.va.exposed 如图 点击保存
图片.png

一会脱出来的dex文件就会显示在这个书签中

配置FDex2

第一步: 打开fdex2选择你要脱得的应用点他(开始解扣子咳)

图片.png

第二步: 点击ok返回到xv的首页(目前为止扣子已经解开一半了咳 ! 咳 ! )
第三部: 打开你刚刚选中的应用也就是你要脱的应用
可能说出来你不信 已经脱完了(我说的是脱壳不要瞎想)可是我们什么也没看到啊 白忙了么?怎么会...

查看脱出来的dex(赤果果?)

(这里以没有root机器为主)记得刚刚配置的Total_Commander输出路径么?用到它了
第一步:在xv中打开Total_Commander
第二步:打开刚刚创建的书签>virtual>data>user>0>要脱的包名文件夹


图片.png

第三部: 不管用什么办法将这个几个dex文件弄到sdcard目录移动复制都可以
第四步: 反编译流程走一遍 dex2jar 再用jd-gui打开编译后的jar

为什么会有这么多dex及哪个dex里面是带码逻辑什么的不要问 ,问就是不知道因为我也不太了解哈哈

360加固后脱出来的带码

脱出来的带码阅读性一般不过慢慢看还是可以的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。