前言

对于当前的APP来说,基本都采用了加壳这一方式来对APP进行加固,这也是在算法分析上需要过的第一个点。在挖洞过程中,主要还是针对业务层逻辑进行分析处理,寻找漏洞点。因此本篇利用某园这一APP,侧重点在于对脱壳原理的介绍和一些脱壳工具的分享和使用。

01

脱壳原理介绍

首先说一下壳的历史发展。第一代壳是对Dex加密,会进行Dex字符串加密,资源加密,对抗反编译,反调试,自定义。

第二代壳是Dex抽取与So加固,对抗第一代壳常见的脱壳法,Dex 代码抽取到外部(通常企业版),Dex动态加载,So加密。

第三代壳是Dex动态解密与So混淆,Dex 代码动态解密,So代码膨胀混淆加壳脱壳,对抗之前出现的所有脱壳法。

然后现在出现了第四代加壳技术,就是vmp壳。

而我们脱壳就是要对内存中处于解密状态的dex的dump。这就需要准确定位内存中解密后的dex文件的起始位置和大小。

02

常见壳的识别

对于市面上常见的壳,基本都可以通过其基本命名去判断。

娜迦:libchaosvmp.so , libddog.solibfdog.so爱加密:libexec.so, libexecmain.so梆梆:libsecexe.so, libsecmain.so , libDexHelper.so360:libprotectClass.so, libjiagu.so通付盾:libegis.so网秦:libnqshield.so百度:libbaiduprotect.so腾讯:lejiagu

另外还可以使用工具如PKiD,等等。

03

Youpk

首先介绍一下Youpk这一工具,项目地址:

https://github.com/Youlor/Youpk

这也是笔者常用的方法,因为手头上的测试机正好是pixel 1代,刚好适配。可以在分析的时候就把脱壳这件事做了,pixel+Youpk,站着就把钱赚了(手动狗头)。可能唯一不足的地方就是需要刷机,不过作者已经提供了一键刷机的方法,因此问题也不大。使用方法也很简单。首先在手机上启动某园APP,然后

adb shell "echo cn.domo.domo >> /data/local/tmp/unpacker.config"

之后查看日志信息等待 end即可。

然后将文件pull出来直接导入jadx(jadx支持多dex分析,免去了修复的麻烦)即可进行java层分析。

04

FRIDA-

这是hluwa大佬的作品,项目地址:

https://github.com/hluwa/FRIDA-DEXDump

只需要frida环境即可使用。可以运行frida-或者 main.py进行脱壳。

05

这是一个最近出来的工具,是最最最支持傻瓜式操作的,项目地址:

https://github.com/CodingGay/BlackDex

官方介绍:是一个运行在手机上的脱壳工具,支持5.0~12,无需依赖任何环境任何手机都可以使用,包括模拟器。只需几秒,即可对已安装包括未安装的APK进行脱壳。项目包括32位和64位, 已经在2019年9月强制所有新上架 Play 的应用提供 64 位版本,64取代32是趋势。不过国内的apk,还有很大一部分都是32位。因此如果其中一个版本没有显示你想脱壳的apk就选择另一个版本。笔者使用的一加9+ 32位进行测试。只需5秒,就出结果了。

并且还支持深度脱壳,但是还是不太稳定,期待后续吧。

06

总结

本篇文章主要注重了脱壳这一过程,没有很深入的介绍脱壳中的技术点,毕竟表哥们还要把更多的精力放在后续的挖洞上加壳脱壳,有更多关于脱壳的想法以及一些骚操作大家可以在评论区积极讨论。下一篇就将进行脱壳后的签名算法分析。

加壳脱壳_脱壳处理_脱壳的原理

【火线短视频精选】

【周度激励】2021.7.26 ~ 2021.8.1公告

【相关精选文章】

火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火线小助手]加入。

我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!

欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!

脱壳处理_加壳脱壳_脱壳的原理


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注