加固与脱壳04 - 一些简单的脱壳方法

dalvik下替换so简单dump出梆梆加固保护的odex 本文介绍了一种在dalvik虚拟机下简单可行、通过替换so实现的梆梆加固脱壳的方案, 不需要定制ROM、不需要动态调试, 并且由于掌握了代码主动权, 可以进一步深入进行抽离类还原、资源修复等工作。 阅读详情

这里只讨论一些简单壳的脱壳方法及其原因。

FRIDA-DEXDump

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

适用于不需要研究那些被强保护起来的代码,只是想单纯的看看某个地方的业务逻辑。

原理:

对于完整的 dex,采用暴力搜索 dex035(DEX有多个版本,可以自行匹配)即可找到。而对于抹头的 dex,通过匹配一些特征来找到。

  • https://www.anquanke.com/post/id/221905

该工具使用起来极其简单就不演示了。

Frida-fart

这个是有两个版本,一个是修改源码的思路,一个是使用 frida 的思路。

介绍使用 frida 的思路:

  • https://github.com/jas502n/FART-dump/blob/master/frida_fart.zip

里面提供了两个脚本,一个是使用 hook,一个是使用反射,脚本里面都有详细使用说明:

拿 hook 方式来说:

  • 首先拷贝fart.sofart64.so/data/app目录下,并使用chmod 777 设置好权限,然后就可以使用了。

  • 需要以spawn方式启动app,等待app进入Activity界面后,执行fart()函数即可。

    如app包名为com.example.test,则执行frida -U -f com.example.test -l frida_fart_hook.js --no-pause,然后等待app进入主界面,再执行fart()

  • 高级用法:如果发现某个类中的函数的CodeItem没有dump下来,可以调用dump(classname),传入要处理的类名,完成对该类下的所有函数体的dumpdump下来的函数体会追加到bin文件当中。

这个会比上面的**FRIDA-DEXDump**要强一点,因为它可以主动的dump一些没有执行过的方法。因为对于函数抽取壳来说,如果一个函数没有执行,那么它 DEX 中的 CodeItem可能是没有还原过的。

上面说的这两种都没法处理具有反调试的壳。对于一些加固厂商来说,他们提供的免费版加固都是比较好处理的,没有反调试。但是对于付费版来说,反调试是必带的功能,它可以识别到 frida 特征,这个时候再去脱壳就会卡在启动界面,frida-server 进程也会挂掉。

这个时候,要么去分析反调试逻辑,要么就采用修改源码刷镜像的方式来脱壳。FART仅提供了6.08.0的镜像可以刷机。如果你刷的是 debug 版镜像,一些加固还会识别手机是否 root,这时你又要处理如何绕过 root,所以只能刷 release 镜像。

由于FRAT是一个非常知名的项目,一些加固厂商已经将 FART 的特征加到黑名单里面去了,比如:

  • https://bbs.kanxue.com/thread-266247.htm

BlackDex

  • https://github.com/CodingGay/BlackDex

这个是基于插件化的思路,将其他 app 当成一个插件,运行起来到自己的进程中,这样它就能获取到app中真实的类。有兴趣的可以去看一下作者博客,不难理解:

  • https://blog.niunaijun.top/index.php/tag/BlackDex/

由于项目开源的原因,特征也很明显,所以加固厂商也很好对抗。

讨论了一些简单的脱壳方案,发现最后还是改源码编译镜像最好。

函数抽取脱壳工具 fart代码阅读 这里传null 是有讲究的 过滤如果传进来的是我们伪造的invoke调用 直接return 不执行 但是这时候其实已经触发壳的函数解密 直接保存即可。具体实现在 art\runtime\native\dalvik_system_DexFile.cc。4 通过调用DexFile自定义的函数从而主动调用实现类dump。dumpArtMethod fart 的核心函数 即保存dex。该函数是一个native 函数 参数为一个 method 对象。1 获取当前应用的类加载器 的 (类列表)反射使函数可以调用。 阅读详情

相关推荐

12306 2.2版本SO的分析和修复

老早写的,现在已经2.3版本了,把这个放出来,这个方法要比之前的简单很多。       12306的so加载顺序是先libDexHelper.so后libcheckcode.so       一、修复libDexHelper.so       我们先把libDexHelper.so dump出来,并修复,修复后的IDA分析结果如下图: libDexHelper.so修复好后,备

燕十二的BLOG 6262

梆梆企业版加固防dump相关文件

相关使用请参考博文: http://blog.csdn.net/oooaooo/article/details/78737272

FART脱壳实战:逆向分析某大厂App加固CodeItem修复

在移动应用安全领域,加固技术通过代码混淆、加密和虚拟化等手段保护App核心逻辑,使其成为难以直接分析的“黑盒”。其基本原理是在运行时动态解密和执行代码,导致静态分析工具失效。理解这一原理对于安全审计、漏洞挖掘和协议分析具有重要技术价值。FART(Fix Anti-Reinforcement Tool)作为高级脱壳工具,采用“内存中抓取”技术,在应用运行时从内存中Dump出已解密的Dex字节码和关键的CodeItem(方法体代码)。通过定制化脚本修复被抽取的CodeItem,能够有效对抗主流商用加固方案,还原

weixin_34254464的博客 253

逆向分析联通营业厅APP

逆向联通营业厅APP,实现登录、充值话费

super19911115的博客 2886

APK脱壳之—如何脱掉“梆梆加固”的保护壳

一、前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁。这样的恶意软件是非常让人痛恨的。所以本文就用一个案例来分析如何破解这类应用,获取解锁密码,让被骗的用户可以找回爽快! 二、分析软件锁机原理 本文用的是一款叫做:安卓性能激活.apk,关于样本apk文件后面会给出下载地址,从名字可以看到它肯定不会是一个恶意软件,但是当我们安装的时候,并且激活它的权限之后就完了。下面不多说了,直接用

白帽子九一 1万+

Frida-dexdump批量脱壳软件

给app脱壳的大致流程为安装app->运行app->查壳->脱壳->脱壳完成,但如果需要脱壳的app过多,一个个来可能会太慢太消耗时间,于是我编写了一个使用frida-dexdump加逍遥模拟器的批量脱壳脚本,使用起来可能还会有一些bug,仅以此博客作为记录,如果有人也有这方面的想法,也可以以此作为参考。

qq_46113775的博客 7682

脱壳练习(1)-360加固2,3代脱壳心得简记

这篇博客就记一下自己脱360加固2,3代的过程吧。毕竟作为一个android逆向入门小菜完全靠自己脱壳是不大现实,事实上也是借鉴了不少大佬们的博客,当然碰到了可遇而不可求的一代壳的话那是当然要垂死挣扎,好好搞明白,总要由简入深,在此基础当初当然是ida的动态调试了,详细请参看上篇博客脱壳练习(0)-动态调试1代脱壳 因为是参照网上资料做出来的,所以就简单写下心得吧 360二代脱

葱花炒蛋的博客 9928

加固脱壳08 - 编译脱壳镜像

编译的是 user 系统,是没有 root 权限的,但是一些银行app还是会检测系统是否为 test-keys,最明显的就是 build number。上一篇已经介绍了,可以去将 fartext 的代码copy过来,修改方法名,以及文件名特征即可。,主要是现在用不到,就不分析效果了。刷机前记得先备份一个原厂镜像,就不给链接了,好像会被封!里面添加上自己加的 Java 代码,否则编译报错。添加脱壳代码后,有个地方需要注意,就是要在。我编译了一个镜像(只适用于Pixel),但是。的选择,可以直接执行。

a5right的博客 438

android qq加固自动,腾讯加固纯手工脱壳修复教程

本帖最后由 世事繁华皆成空 于 2015-11-4 22:32 编辑腾讯壳本身没对代码做什么保护,主要就是让apktool和dex2jar失效而已,其中的反调试更加没用了,手工修复完全不涉及调试,主要找到方法,处理完成,就跟原来的app一样了,所以腾讯壳属于很弱的加固壳自己已经测试了一个demo和市场上的app,都没什么问题本教程不说原理了,自己根据我做的去理解一下腾讯壳针对apktool做了处理...

weixin_33724434的博客 1172

安卓逆向实战:frida-dexdump动态脱壳技术解析应用

本文详细解析了frida-dexdump在安卓逆向工程中的动态脱壳技术,包括其工作原理、环境搭建、实战操作及高级技巧。通过内存扫描和特征匹配,frida-dexdump能有效应对阿里、360等加固方案,帮助开发者获取解密后的DEX文件。文章还提供了常见问题解决方案和合规建议,适合安全研究人员和逆向工程师参考。

weixin_29326909的博客 1047

安卓逆向实战:从加固脱壳到API签名算法还原全解析

在移动应用安全领域,加固保护和API签名校验是常见的安全防护手段。加固技术通过对DEX文件进行加密和混淆,增加逆向分析的难度;而API签名则基于哈希算法(如MD5、SHA-256)或HMAC,对请求参数进行运算生成唯一标识,用于验证请求的合法性,防止数据篡改和未授权访问。理解这些技术的原理,对于安全研究、漏洞挖掘和合规测试具有重要价值。在实际的安卓应用逆向工程中,分析师常需综合使用静态分析(如Jadx反编译)和动态调试(如Frida Hook)工具,先绕过加固保护获取可读代码,再定位并还原签名算法逻辑。本文

weixin_34341229的博客 432

小白从零脱壳-Frida-dexdump

9.我们还是在步骤4的文件夹运行cmd,输入“adb shell”后,如果直接输入“./data/local/tmp/fs”会提示我们没有权限,此时我们需要su拥有root权限后,在输入“./data/local/tmp/fs”,frida-server就在模拟器的运行了(此时我们不要关闭这个窗口,因为关闭窗口就停止了frida-server运行,无法执行后续脱壳的命令)。在我的工作中,需要用到脱壳。7.下载完成后我们得到一个如下的文件,我们将它重命名为“fs”,方便我们后续输入指令。

weixin_40818250的博客 2979

AI问答:理解软件开发中的几个概念 / 软件逆向、加密、加固脱壳、反编译

综上所述,软件逆向、加密、加固脱壳和反编译都是计算机安全领域中的重要技术,它们在保护软件安全、维护软件利益、提高软件可维护性等方面发挥着重要作用。

snow的博客 985

某尝准app请求体响应加密分析

包名: vz.com版本:6.3.5 最新版梆梆加固企业版需求:我们只是分析针对 加密和解密返回的响应解密分析流程。更加具体的sign等需要亲自己去尝试,作者并未对此进行分。

A_fanyifan的博客 2029

FART12刷机脱壳记录笔记

fart12 脱壳系统 可以脱邦邦 爱加密 企业壳 等;

Codeooo 博客 4369

DexHunter学习笔记记录

源地址 http://ju.outofmemory.cn/entry/267514 0x00 前言 前段时间遇到一个app,解包后发现了libDexHekper.so,搜索了一下发现是梆梆的壳,于是花了一段时间研究了一下怎么脱。这篇博客文章在 dexhunter 的基础上做了修改。 0x01 dexhunter的适配 加固发展到今天,几乎很难通过动态调试

playboyma的博客 3269

Fart:Android 自动化脱壳技术全解析

Fart 是基于主动调用方式实现的自动化脱壳技术,其核心在于利用 ART 运行时的特性,在应用运行过程中主动触发壳程序对加密代码的解密操作,从而获取原始的未加密代码,实现高效脱壳。Fart 作为一款强大的 Android 自动化脱壳技术,为研究 Android 应用的内部结构、安全漏洞以及进行逆向工程等提供了有力的支持。通过本文介绍的安装、原理、使用步骤和代码示例,希望读者能够对 Fart 有更深入的理解和掌握,在 Android 应用安全研究领域发挥其更大的价值。

m0_57836225的博客 3691

LineageOS20+Pixel6 下的Fart8.0脱壳机迁移和编译流程

​ 之前将Fart8.0的代码编译到Android13下,运行发现在将Java的Method对象转换成C的ArtMethod对象时报错,没找到原因。再加上AOSP的系统太素了,就琢磨是否可以用LineageOS来编译,所以就有了这篇文章。

lvlay79的博客 5371
上一篇: 加固与脱壳03 - 加固技术讨论
下一篇: 加固与脱壳05 - 壳类型识别
二手的程序员
博客等级 码龄3年 1411粉丝 112原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二手的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值