FART与frida结合

常用的脱壳方法 脱壳工具的使用方法。 阅读详情

1、优点:

1、对FART的脱壳能力增强,对主动调用的dex(没有初始函数)进行脱壳

function fartwithClassloader() {
    Java.perform(function () {

        Java.choose("dalvik.system. ", {

            onMatch: function (instance) {
                console.log(instance);

                try {
                    Java.use("android.app.ActivityThread").fartwithClassloader(instance);
                } catch (e) {
                    console.log(e);
                }
            },
            onComplete: function () {
                console.log("heap search complete");
            }

        });
    })


}
//hook DexClassLoader 主动调用 fartwithClassloader 来对主动调用的类进行脱壳

2、控制FART主动调用的范围,比如按需进行类甚至函数的修复

1、只对某个类主动调用加载

//cn.cntv.ui.activity.SpringPlayerActivity

function loadoneclass(classname) {
    Java.perform(function () {
//public static void loadClassAndInvoke
//(ClassLoader appClassloader, String eachclassname, Method dumpMethodCode_method)
//public static ClassLoader getClassloader()
        var appClassloader = Java.use("android.app.ActivityThread").getClassloader();
        console.log("appClassloader->", appClassloader);
        //dumpMethodCode
// private static native void dumpMethodCode(Object m);
        var DexFile = Java.use("dalvik.system.DexFile");
        var Object = Java.use("java.lang.Object");
        var array = Java.array("java.lang.Class", [Object.class]);
        var dumpMethodCode = DexFile.class.getDeclaredMethod("dumpMethodCode", array);
        dumpMethodCode.setAccessible(true);//私有函数无法直接调用,需要设置
        console.log("dumpMethodCode->", dumpMethodCode);
        Java.use("android.app.ActivityThread").loadClassAndInvoke(appClassloader, classname, dumpMethodCode);
    })
}

2、编译时不主动加载fart,使用frida主动调用脱壳线程

function justfart() {
    Java.perform(function () {
         Java.use("android.app.ActivityThread").fartthread();
    })
}

rpc远程调用

rpc.exports = ({

    loadclasslist: function (classname) {
        loadoneclass(classname);
    }

});
import frida
import sys


def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)


device = frida.get_usb_device()
if __name__ == "__main__":
    try:
        session = device.attach("cn.cntv")
        print("[Info] Attach success!")
        with open('fart_frida.js') as f:
            jscode = f.read()
        script = session.create_script(jscode)
        script.on('message', on_message)
        print('[*] Running CTF')
        script.load()
        #Lcom/hpplay/sdk/source/service/e$a;
        content=""
        with open('8848960_classlist_execute.txt','r') as f:
            content=f.read()
            f.close()
        array=content.split("\n")
        for i in array:
            print("classname->"+i)
            #Lcom/hpplay/sdk/source/service/e$a;
            i=i[1:len(i)-1]
            i=i.replace('/','.')
            print("classname->" + i)
            script.exports.loadclasslist(i)
        #script.exports.loadclasslist()
        sys.stdin.read()
    except Exception as e:
        print("[Info] Spawn and attach failed!")
        print(e)

 

 

 

使用 Frida 增强 FART:实现更强大的 Android 脱壳能力 主动调用时 dump 得到的 dex (*_dex_file.dex)和此时 dex 中的所有类列表,以及该 dex 中所有函数的 CodeItem( bin 文件)Execute 脱壳点得到的 dex (*_dex_file_execute.dex)和 dex 中的所有类列表( txt 文件)枚举出所有 ClassLoader 后,再结合 FART 的 api 就可以实现动态加载 dex 的脱壳。增强 FART 的脱壳能力:解决对抗 FART 的壳、动态加载的 dex 的 dump 和修复; 阅读详情

相关推荐

frida-fart脱壳

frida-fart快速脱壳

qq_43685281的博客 838

Android逆向:脱某软件dex函数抽取型壳

案例与目标 案例下载 jadx打开以后可以看到很明显的壳特征。 目标:使用工具和自行实现脱壳。   工具脱壳 FRIDA-DEXDump FRIDA-DEXDump确实很轻松就拿到了dex文件,可惜文件数据有异常,无法正常打开分析。 frida-fart 通过frida-fart同样很轻松的拿到了dex文件,以首屏SplashActivity为例进行分析。 jadx可以正常打开,但里面的函数都是nop。 Fart脱壳机镜像 pixel刷入Fart脱壳机镜像,运行后在/sdcard/fart

高新园养鸡场 2942

Frida + FART 联手:解锁更强大的 Android 脱壳新姿势

主动调用时 dump 得到的 dex (*_dex_file.dex)和此时 dex 中的所有类列表,以及该 dex 中所有函数的 CodeItem( bin 文件)Execute 脱壳点得到的 dex (*_dex_file_execute.dex)和 dex 中的所有类列表( txt 文件)枚举出所有 ClassLoader 后,再结合 FART 的 api 就可以实现动态加载 dex 的脱壳。增强 FART 的脱壳能力:解决对抗 FART 的壳、动态加载的 dex 的 dump 和修复;

1529

FART 不需要刷机,通过脚本动态脱抽取壳

frida -U -f [包名] frida_fart_hook.js --no-pause。查报名可以参考之前的文章。

moyebaobei1的博客 2209

FART+Frida动态脱壳:Android加固应用逆向分析的利器

在移动安全领域,动态脱壳是分析加固应用的核心技术。其原理在于,许多应用在运行时才会解密并加载核心代码到内存,传统的静态分析工具对此无能为力。通过修改Android运行时(ART)或利用动态插桩技术,可以在代码执行时捕获内存中的DEX文件,从而还原出可分析的原始逻辑。这项技术的价值在于,它能有效对抗代码混淆、加密等保护手段,是进行安全评估、漏洞挖掘和恶意软件分析的必备技能。其典型应用场景包括分析金融、社交类App的加固逻辑,以及研究恶意软件的隐藏行为。本文将聚焦于结合FART和Frida两大工具,前者作为AR

weixin_29323365的博客 391

Android脱壳实战:Frida-DexDump与Fart的保姆级使用指南(附避坑技巧)

本文提供了一份Android应用脱壳的实战指南,详细对比并讲解了Frida-DexDump与Fart两款主流工具的使用方法。Frida-DexDump通过内存扫描实现快速脱壳,而Fart则通过修改系统源码主动触发解密,尤其擅长应对抽取壳。文章包含从环境搭建、详细操作步骤到常见避坑技巧的全流程,旨在帮助逆向分析人员根据加固类型选择合适的工具,高效获取原始DEX文件。

weixin_29202687的博客 622

FART与Frida结合:打造更强大的动态脱壳分析环境

GitHub 加速计划(FART)是一款ART环境下的自动化脱壳方案,通过与Frida动态插桩工具结合,能够高效解决Android应用加固带来的逆向分析挑战。本文将详细介绍如何利用这两款工具构建完整的脱壳分析流程,帮助开发者和安全研究员轻松应对复杂的应用保护机制。 ## 为什么选择FART与Frida组合? 在Android应用安全分析中,脱壳是逆向工程的第一道门槛。FART作为专注于ART环

gitblog_00029的博客 819

【胖虎的逆向之路】04——Frida与Fart实战:Android二代壳脱壳新思路

本文深入探讨了针对Android二代壳(函数抽取壳)的脱壳新思路,重点介绍了如何结合Frida的动态插桩能力与Fart的主动调用思想,构建一套高效的脱壳方案。通过Frida定位并Hook关键解密函数,并模拟Fart主动触发所有方法执行,从而捕获运行时被还原的CodeItem,有效解决了二代壳按需解密带来的脱壳难题。

weixin_28452161的博客 452

mkdir函数_一个自定义classloader的函数抽取壳样本

本文为看雪论坛文章看雪论坛作者ID:lemn本文为看雪安卓高研2w班(7月班)优秀学员作品。下面先让我们来看看学员的学习心得吧!学员感想本题目出自2W班7月第三题。题目要求:基于frida实现的fart的一个版本是通过对ClassLink类中的LoadMethod函数进行hook实现对函数粒度的脱壳的。请编写基于xposed实现的fart版本插件,能够实现对函数粒度的脱壳。根据题目要...

weixin_39602108的博客 268

FART 脱壳实战:从某电商App到完整DEX修复与源码还原

本文详细介绍了FART脱壳技术在电商App逆向分析中的实战应用,包括DEX修复与源码还原的全流程。通过主动调用和被动执行双模式配合,FART能够有效应对主流加固方案的代码抽取保护,特别适合处理电商App的复杂业务逻辑和频繁更新的加固策略。文章还提供了环境搭建、预处理技巧、精准脱壳及自动化系统搭建等实用指南。

weixin_42524171的博客 385

frida-dumdex脱壳js

frida-fart压缩包

【亲测免费】 FART项目安装和配置指南

FART(ART环境下自动化脱壳方案)是一个开源项目,旨在提供在Android ART环境下自动脱壳的解决方案。该项目基于Android 6.0实现,理论上可以移植到任何ART系统上。FART项目的主要编程语言是Python。 ## 2. 项目使用的关键技术和框架 FART项目使用的关键技术和框架包括: - **Android ART环境**:项目主要针对Android ART环境进行开发。 ...

gitblog_07028的博客 994

TLV320AIC3204音频CODEC硬件设计与调试实战

本文深入解析了TLV320AIC3204音频CODEC的硬件设计与调试实战。文章从芯片功能定位入手,详细阐述了电源时钟设计、模拟输入电路等关键硬件设计要点,并提供了软件驱动配置与分层调试方法,帮助工程师有效规避常见陷阱,解决底噪、失真等典型音频调试问题。

zero1的博客 1129

FART脱壳实战:从环境搭建到成功提取DEX文件的完整教程

**FART脱壳工具**是Android安全研究领域的革命性突破!🚀 这款基于ART运行时环境的自动化脱壳方案,能够帮助安全研究人员和开发者快速提取被加固保护的DEX文件,揭开Android应用保护的神秘面纱。本文将为你提供从零开始的完整FART脱壳实战指南,让你轻松掌握这一强大的Android逆向分析技术。 ## 🔍 什么是FART脱壳工具? FART(Fast ART脱壳)是一款在An

gitblog_00288的博客 646

文章详细介绍了进行DoIP(DiagnosticoverInternetProtocol)测试的完整过程,包括样件的正确接线、CANoe软件的环境配置、端口设置、VLAN配置、IP和MAC地址的设定

关于Tester和DUT的地址,其实最主要的就是DUT的IP、MAC和逻辑地址,如果不知道Tester的IP、MAC和逻辑地址,可以配置为与DUT同一网段的就可以。ps:最重的是知道DUT的IP、逻辑、MAC地址,如果有VLAN也需要知道,Tester的地址可以根据DUT地址进行设定,其余的值可根据DoIP的报文查到相关参数。ps:如果在通信中没有建立VLAN,但是源地址和目的地址都填写正确,此时就要考虑是否是遗漏了VLAN,建立一个VLAN,在重新试试是否可通信。此处与硬件连接是相对应的,要注意!

qq_40965861的博客 1130

VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)

昨晚VCSA碰到一个很诡异的问题: 使用 vSphere Web Client 连接到 vCenter Server Appliance时失败,提示: 503 服务不可用 (503 Service Unavailable) 无法连接端点 (Failed to connect to endpoint):[N7Vmacore4Http20NamedPipeServiceSpecE:0x00007f975808ee30] _serverNamespace = / action = Allow _pipeNam

徐华的博客 2万+

如何快速上手FART:5步完成Android应用脱壳实战

FART(ART环境下基于主动调用的自动化脱壳方案)是一款强大的Android应用脱壳工具,专门针对ART运行时环境设计。这款工具能够有效对抗各类Android应用加固方案,实现自动化脱壳,是安全研究人员和逆向工程师的必备利器。😎 ## 📱 什么是FART脱壳工具? FART是一款基于ART运行时的自动化脱壳工具,它采用主动调用技术,能够完整地提取内存中的DEX文件和函数体。与传统的脱壳方

gitblog_00535的博客 1054

在Proteus中用80C51模拟4线SPI点亮OLED屏幕

在Proteus里用80C51模拟4线SPI控制OLED屏幕使其显示图案(汇编实现)。

Connor3093的博客 5004

FART:革命性Android脱壳工具 - 自动化破解加固保护的终极指南

FART(ART环境下自动化脱壳方案)是一款革命性的Android应用脱壳工具,专门针对ART环境下的加固保护提供自动化解决方案。在当今移动安全领域,FART凭借其创新的主动调用技术和自动化脱壳能力,成为安全研究人员和分析师的必备利器。😊 ## 🚀 FART是什么?为什么你需要它? FART是一个基于ART(Android Runtime)环境的自动化脱壳框架,它通过主动调用技术实现对加固

gitblog_01056的博客 1149

YOLOv5轻量化实战:从Ghost模块到工业级部署的完整指南

本文详细介绍了YOLOv5轻量化实战,重点解析了Ghost模块在工业检测中的应用及其优化策略。通过Ghost卷积技术,模型参数量和GFLOPs显著降低,同时保持高精度,适用于实时性要求严格的工业场景。文章还提供了从模型优化到TensorRT加速的完整部署指南,助力开发者实现高效工业级应用。

weixin_28223453的博客 489

【SOUND】Linux音频子系统ASoC的驱动框架总分析

ALSA系统在芯片(ASoC)层的总体项目目标是为嵌入式芯片处理器(例如PXA2XX,AU1X00,IMX等)和便携式音频编解码器提供更好的ALSA支持。 在进入ASoC子系统之前,内核对SoC音频有一些支持,但是它有一些局限性:ASoC层旨在解决这些问题并提供以下内容特征 :为了实现这一切,ASoC基本上将嵌入式音频系统分为多个可重复使用的组件驱动程序:另外,这里提下OSS(Open Sound System)这个基本被弃用的音频框架。 可以参考Linux OSS架构声卡驱动框架 2.3 ASoC重要

wang 恒 的博客 1783

FART 脱壳技术全解析:深入移动应用逆向工程

FART 是一套专门针对 Android 应用加固壳进行脱壳处理的综合性技术与工具集。它基于 Android 系统的运行机制以及动态调试原理,通过一系列巧妙的操作,实现在应用运行过程中对加密或加壳后的 dex 文件进行动态解密与提取,从而获取原始的、未被保护的 dex 代码,为后续的反编译、分析与研究工作奠定基础。

m0_57836225的博客 2392

树莓派 Raspberry Pi 使用 YOLOv8 YOLOv10 YOLOv11进行目标检测及推理加速,Run YOLOv8 YOLOv10 YOLOv11 on Raspberry Pi

libcamera 是 linux 新增加用于访问 camera 的 API。树莓派参与了 libcamera 的开发,并且在新的摄像头软件中开始从依赖于固件的摄像头图像处理管道(Image processing pipeline, ISP)迁移到更加开放的 libcamera。当然这块用USB 摄像头应该也是可以的。

shiter编写程序的艺术 5570

FART社区资源汇总:从镜像下载到技术交流的完整指南

FART(ART环境下自动化脱壳方案)是一款针对Android ART环境设计的强大脱壳工具,能够帮助开发者和安全研究人员高效提取加固应用的dex文件。本指南将系统整理FART的核心资源,从镜像下载到技术交流,助你快速上手这款工具。 ## 🌟 核心功能与优势 FART基于Android 6.0实现,通过主动调用的方式实现自动化脱壳,理论上可移植到任何ART系统。其核心优势包括: - **高

gitblog_00345的博客 846

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: android源码编译笔记--踩坑
下一篇: C++11笔记
Viewz
博客等级 码龄9年 309粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值