1.Hook OpenMemory的导出方法名
适用于Android6、Android7、Android8、Android9的脱壳
/data/lib/libart.so nmlibart.so|grepOpenMemory
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起始位置varbegin=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.so nm 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
Android10 libdexfile.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-unpack https://www.cnblogs.com/wuxianyu/p/14274667.html
审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Android
+关注
关注
12文章
3937浏览量
127425
原文标题:APP基于Frida脱壳
文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Inline Hook Syscall详解
在安全、性能分析等领域,经常会需要对系统调用syscall进行hook。有些模块在kernel代码中已经预先hook,例如syscall trace event。
linux的类似hook函数
hook在windows下可以说是知名度相当高的一种"高级“技术想在linux下面实现像windows下的那种hook的功能,不过网上的资料很少(LD_PRELOAD 也可以做类似的事)
发表于 07-25 07:48
怎样去使用RT-Thread系统中的Hook功能呢
生成额外代码允许用户通过“插入宏的方式”在编译时刻精细控制具体HOOK哪个位置可以插入任意代码块——其中就包括函数指针、对普通函数的调用等等2、使用方法2.1 总开关 在rtconfig.h定义宏开关
发表于 06-14 10:34
讲讲Hook技术的攻防对抗思路
1、论Hook技术的攻防对抗 首先,简单认识下Hook 技术。 Hook技术是一门广泛用于计算机攻防对抗的技术。它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息进行处理。 我们
发表于 09-28 11:12
利用Hook技术实现进程控制
Windows 系统是基于消息,建立在事件驱动基础上的操作系统。Hook 是Windows 系统消息处理机制中的一个监视点。Hook 机制允许应用程序截获消息并进行处理,它为我们实现进程的控制
发表于 09-12 16:08
•10次下载
Linux下的网络HOOK实现
最近疯狂的研究Linux的种种功能,也颇有心得,这里讲述一下Linux下的Net的Hook,使用net的Hook可以实现很多很多非常底层的功能
发表于 05-14 10:27
•5148次阅读
在嵌入式设备中使用Malloc Hook的试验
在嵌入式设备中,计划使用malloc hook来进行内存跟踪,以便测试程序的内存使用。 试验1: 在程序开始,增加了mtrace函数,定义环境变量MALLOC_TRACE。 发现了
发表于 04-02 14:37
•697次阅读
内核级HOOK的几种实现方法与应用说明
实现内核级HOOK 对于拦截、分析、跟踪系统内核起着致关重要的作用。实现的方法不同意味着应用侧重点的不同。如想要拦截NATIVE API 那么可能常用的就是HOOKSERVICE TABLE 的方法
发表于 11-10 17:35
•5次下载
RTOS操作系统中HOOK函数有什么用途?
在很多操作系统中,都存在这样一类API(函数接口):HOOK函数,也叫钩子函数。 比如:Windows桌面系统、µC/OS、 FreeRTOS等RTOS中,都可以看见HOOK函数的存在。 下面结合
MACSV数据库导出、导入的方法
MACSV数据库导出、导入的方法(现代电源技术期末考试)-文档为MACSV数据库导出、导入的方法详解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
发表于 09-17 15:41
•2次下载
评论