文章总结: 该文档详细介绍了基于Frida框架的Android应用脱壳技术,重点解析了针对不同Android系统版本(6-10)的Hook方法。核心内容包括通过HookOpenMemory和OpenCommon导出函数实现Dex文件内存dump的技术细节,提供了完整的FridaJavaScript代码示例和函数签名对照表。文档还推荐了相关工具链和扩展阅读资源,为移动安全研究人员提供了一套完整的动态脱壳解决方案。 综合评分: 82 文章分类: 移动安全,逆向分析,安全工具,渗透测试,二进制安全
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脱壳》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论