APP基于Frida脱壳

admin 2026-04-16 04:13:34 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细介绍了基于Frida框架的Android应用脱壳技术,重点解析了针对不同Android系统版本(6-10)的Hook方法。核心内容包括通过HookOpenMemory和OpenCommon导出函数实现Dex文件内存dump的技术细节,提供了完整的FridaJavaScript代码示例和函数签名对照表。文档还推荐了相关工具链和扩展阅读资源,为移动安全研究人员提供了一套完整的动态脱壳解决方案。 综合评分: 82 文章分类: 移动安全,逆向分析,安全工具,渗透测试,二进制安全


cover_image

APP基于Frida脱壳

原创

云天实验室 云天实验室

哆啦安全

2022年10月16日 09:55 新加坡

在小说阅读器读本章

去阅读

1.Hook OpenMemory的导出方法名

适用于Android6、Android7、Android8、Android9的脱壳

/data/lib/libart.sonm libart.so |grep OpenMemory
Android7.1.2_ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9_
Android9.0_ZN3art7DexFile10OpenMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEjPNS_6MemMapEPS7_
Interceptor.attach(Module.findExportByName("libart.so", "_ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9_"), {    onEnter: function (args) {
        //dex起始位置        var begin = args[1]                 //修改一下dex起始位置var begin = this.context.x0
        //打印magic        console.log("magic : " + Memory.readUtf8String(begin))        //dex fileSize地址        var address = parseInt(begin,16) + 0x20        //dex 大小        var dex_size = Memory.readInt(ptr(address))
        console.log("dex_size :" + dex_size)        //dump dex到/sdcard/目录下        var file = new File("/sdcard/xxx.xxx.xxx/" + dex_size + ".dex", "wb")        file.write(Memory.readByteArray(begin, dex_size))        file.flush()        file.close()    },    onLeave: function (retval) {        if (retval.toInt32() > 0) {            /* do something */        }    }});

2.Hook OpenCommon的导出方法名

/data/lib/libart.sonm libart.so |grep OpenCommon
Android8.1.0(方法的签名)_ZN3art7DexFile10OpenCommonEPKhmRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_PNS0_12VerifyResultE
Android9.0(方法的签名)_ZN3art13DexFileLoader10OpenCommonEPKhjS2_jRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS0_12VerifyResultE
nm libdexfile.so |grep OpenCommon
Android10libdexfile.so/apex/com.android.runtime/lib/libdexfile.so/apex/com.android.runtime/lib64/libdexfile.so_ZN3art13DexFileLoader10OpenCommonEPKhjS2_jRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS0_12VerifyResultE

https://github.com/chzphoenix/frida-unpackhttps://www.cnblogs.com/wuxianyu/p/14274667.html

3.定制Android10以上系统脱壳

推荐阅读

Frida逆向分析APP实战

Objection动态分析App

Frida Hook的使用方法

Android逆向分析基础(一)

Android逆向分析基础(二)

使用frida-net玩转frida-rpc

内置frida hook到Android系统

Objection高效对APP逆向分析实践

Android10系统内置frida相关工具实战

frida hook so导出或未导出函数的方法

Android APP开发之frida hook自吐算法

零基础培训课程+技术指导服务(技术交流社群)

定制Android系统(干掉Root检测和Frida检测)

Android渗透测试frida-Brida插件加解密实战

使用frida hook对app的常用关键代码进行定位

零基础学编程/学逆向/过检测(frida实战视频课程)

Linux+Windows安装r2Frida环境的配置及使用方法

内置frida-gadget so文件和frida-server可执行文件到系统(Android10)

Android10系统定制配置fridaserver后台进程(Moto Z2 Force机型-libqsap_sdk问题)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:哆啦安全 云天实验室 云天实验室《APP基于Frida脱壳》

APP基于Frida脱壳 网络安全文章

APP基于Frida脱壳

文章总结: 该文档详细介绍了基于Frida框架的Android应用脱壳技术,重点解析了针对不同Android系统版本(6-10)的Hook方法。核心内容包括通过
评论:0   参与:  0