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

新手入门机器学习案例(附源代码)

无

guguo666的博客 6656

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

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

gitblog_00288的博客 646

手把手教你在Keil/IAR中移植SEGGER_RTT组件(避坑指南+性能对比)

本文详细介绍了在Keil/IAR开发环境中移植SEGGER RTT调试组件的完整流程与优化技巧。通过对比传统串口调试,SEGGER RTT凭借零硬件占用、高速传输和双向交互等优势,显著提升嵌入式开发效率。文章包含配置步骤、性能调优方案及常见问题解决方案,是嵌入式开发者必备的实用指南。

y7z8a的博客 243

Web3前沿技术的智能合约安全审计

随着Web3技术的快速发展,智能合约作为区块链应用的核心组件,其安全性问题日益突出。本文旨在系统性地介绍智能合约安全审计的技术体系,帮助开发者理解智能合约安全风险,掌握安全审计的方法论和工具链。智能合约安全的基本概念常见漏洞类型及其原理安全审计的技术方法实际审计案例分析安全审计工具和资源首先介绍基本概念和背景然后分析常见漏洞和安全风险接着详细讲解安全审计技术提供实际案例和代码示例最后讨论工具资源和未来趋势智能合约:运行在区块链上的自执行程序,代码即法律安全审计。

AI天才研究院 1547

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

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

gitblog_00535的博客 1054

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容

晴天的专栏 2万+

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

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

gitblog_01056的博客 1149

SQL注入详解

SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限陷)。 即:注入产生的原因是后台服务器接收相关参数未经过滤直接带入数据库查询...

渗透之路,攻防之间皆学问 26万+

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南

本文介绍了如何使用 LangGraph 构建生产级 AI Agent,重点解析了 LangGraph 的核心设计、节点与边的实现方法论、生产级实现技巧以及性能优化策略。LangGraph 通过图结构抽象复杂 AI 工作流,核心组件包括节点、边、状态和检查点。节点通过 Python 函数封装原子业务逻辑,边通过条件分支实现动态工作流。生产级实现技巧包括状态管理、多会话控制和错误处理机制。性能优化策略涉及并行执行和缓存机制设计。文章还提供了旅行规划 Agent 的实战案例和常见问题解决方案,帮助开发者构建高效、

yonggeit的博客 3270

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

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

m0_57836225的博客 2392

【Unity的HDRP渲染管线下用Steam VR串流结合使用遇到的各种问题_SteamVR 插件和Pico串流助手】

当你启用"Mock Runtime"选项后,Unity将模拟一个虚拟的OpenXR运行时环境,并提供一些虚拟的设备和功能,让你能够进行开发和调试。在Unity中,SteamVR插件是一个由Valve提供的Unity插件,它允许开发者在Unity项目中集成SteamVR功能,以便支持SteamVR设备。OpenXR是一个跨平台的虚拟和增强现实(VR/AR)开发接口,它为开发者提供了一个统一的接口,用于访问不同VR/AR硬件设备和平台的功能。这个选项是用于模拟OpenXR运行时环境的功能。

暴走约伯的博客 2800

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

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

gitblog_00345的博客 846

021、反激变换器的软启动设计

本文分享了反激变换器软启动设计的实践经验。作者通过一次上电炸机事故引出软启动的重要性,分析了启动瞬间电流冲击和环路饱和问题。介绍了三种软启动方案:效果差的RC电路、推荐使用的数字芯片方案以及分立元件实现方法,重点指出数字方案的一致性优势。文章还探讨了软启动与过流保护的配合问题,提供了实测波形、温度影响等调试要点,并总结出软启动时间选择、批量生产一致性等实用建议。最后强调软启动是电源可靠性的关键设计,不应为节省成本而忽略。全文包含多个工程实践细节,对电源设计人员具有重要参考价值。(149字)

Jack010169的博客 178

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 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、付费专栏及课程。

余额充值