android frida检测绕过

news/2024/11/23 16:50:58/

Frida检测是一种常见的安卓逆向技术,常用于防止应用程序被反向工程。如果您遇到了Frida检测,您可以尝试以下方法来绕过它:

  1. 使用Magisk Hide模块:Magisk是一个强大的安卓root工具,它附带了一个Magisk Hide模块,可以帮助您隐藏root权限。这可以帮助您绕过Frida检测。

  2. 使用Xposed框架:Xposed框架可以帮助您实现一些高级的安卓逆向技术,包括绕过Frida检测。您可以使用Xposed模块来隐藏您的应用程序信息。

  3. 使用Frida Gadget:Frida Gadget是一个用于Frida检测的小型应用程序,可以帮助您绕过检测。将其与Frida一起使用,可以帮助您实现高级的安卓逆向技术。

 apk案例分析

在使用frida 附加时候发现进程退出,我们首先查看是在哪里结束进程的

function hook_dlopen() {Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"),{onEnter: function (args) {var pathptr = args[0];if (pathptr !== undefined && pathptr != null) {var path = ptr(pathptr).readCString();console.log("load " + path);}}});
}

 通过 dlopen可以发现在模块libnative-lib.so 执行处进程结束

 分析模块libnative-lib.so,找关键位置

 有两处位退出进程位置函数 check_loop通过maps 内存中的关键字符串查找检测frida.

void __fastcall __noreturn check_loop(void *a1)
{for ( i = 0; ; ++i ){fd = open("/proc/self/maps", 0);if ( fd >= 1 ){while ( read(fd, buf, 0x200u) >= 1 ){v11 = buf;v10 = "frida";haystack = buf;needle = "frida";if ( strstr(buf, "frida") ){v1 = getpid();kill(v1, 9);}if ( sscanf(buf, "%x-%lx %4s %lx %*s %*s %s", &buf[516], &buf[512], &v5, &v4, s) == 5&& v5 == 114&& v6 == 112&& !v4 ){strlen(s);}}}close(fd);sleep(1u);}
}

 通过断点标记这两处进程退出位置方便后续返回查看

修改位置有两处,直接IDA keypath nop掉重打包,或这利用frida hook.下面用frida hook方式nop掉结束进程的两处关键点  

1.nop 掉0x9498处exit调用

 2.nop 掉0x92C2处kill

 实现代码如下

//指令输出
function dis(address, number) {for (var i = 0; i < number; i++) {var ins = Instruction.parse(address);console.log("address:" + address + "--dis:" + ins.toString());address = ins.next;}
}
/*call_functionstatic void call_function(const char* function_name __unused,linker_ctor_function_t function,const char* realpath __unused       //加载的当前模块路径
) }*/function hook() {//call_function("DT_INIT", init_func_, get_realpath());var linkermodule = Process.getModuleByName("linker");var call_function_addr = null;var symbols = linkermodule.enumerateSymbols();for (var i = 0; i < symbols.length; i++) {var symbol = symbols[i];if (symbol.name.indexOf("__dl__ZL13call_functionPKcPFviPPcS2_ES0_") != -1) {call_function_addr = symbol.address;}}Interceptor.attach(call_function_addr, {onEnter: function (args) {var type = ptr(args[0]).readUtf8String();var address = args[1];var sopath = ptr(args[2]).readUtf8String();console.log("loadso:" + sopath + "--addr:" + address + "--type:" + type);if (sopath.indexOf("libnative-lib.so") != -1) {var libnativemodule = Process.getModuleByName("libnative-lib.so");var base = libnativemodule.base;//nop kill//    .text:000092BA                 B               loc_92BC//    .text:000092BC ; ---------------------------------------------------------------------------//    .text:000092BC//    .text:000092BC loc_92BC                                ; CODE XREF: check_loop(void *)+5E↑j//    .text:000092BC                 BLX             getpid//    .text:000092C0                 MOVS            R1, #9  ; sig//    .text:000092C2                 BLX             killconsole.log("---------------- nop kill begin -------------")dis(base.add(0x92BA).add(1), 10);//方式一修改内存// Memory.protect(base.add(0x92C2), 4, 'rwx');// base.add(0x92C2).writeByteArray([0x00, 0xbf, 0x00, 0xbf]);//方式二修改内存var patchaddr=base.add(0x92C2);Memory.patchCode(patchaddr, 4, patchaddr => {var cw = new ThumbWriter(patchaddr);cw.putNop();var cw = new ThumbWriter(patchaddr.add(0x2));cw.putNop();cw.flush();});console.log("++++++++++++ nop kill end   +++++++++++++")dis(base.add(0x92BA).add(1), 10);// nop exit//   .text:0000948E                 CMP             R0, #0//   .text:00009490                 BEQ             loc_949C//   .text:00009492                 B               loc_9494//   .text:00009494 ; ---------------------------------------------------------------------------//   .text:00009494//   .text:00009494 loc_9494                          ; CODE XREF: anti_frida_loop(void)+26↑j//   .text:00009494                 MOV.W           R0, #0xFFFFFFFF ; status//   .text:00009498                 BLX             exitconsole.log("--------------- nop exit begin -------------")dis(base.add(0x948E).add(1), 10);  //keystoneMemory.protect(base.add(0x9498), 4, 'rwx');base.add(0x9498).writeByteArray([0x00, 0xbf, 0x00, 0xbf]);console.log("+++++++++++++++ nop exit end   +++++++++++++")dis(base.add(0x948E).add(1), 10);}}})
}
function main(){hook();
}
setImmediate(main);

 总结:

绕过Frida检测的方法有很多种,以下是一些可能的方法:

1. 使用Frida Bypass插件:这是一款Frida插件,可以自动绕过Frida检测,并让Frida无法对应用程序进行监控。

2. 使用Frida Gadget库:这是一个动态Frida库,可以在运行时注入Frida,以避免被检测到。

3. 修改应用程序代码:通过修改应用程序代码,可以让Frida无法监控应用程序。

4. 使用防检测框架:有些防检测框架可以绕过Frida的检测,例如Xposed框架、VirtualXposed、Magisk等。

5. 使用其他工具:除了Frida,还有其他工具可以用来监控应用程序,例如Xposed、Cydia Substrate等。如果使用这些工具,Frida将无法监控应用程序。


http://www.ppmy.cn/news/283652.html

相关文章

69、基于STM32单片机智能两轮双轮自平衡小车 蓝牙app控制系统设计

毕设帮助、开题指导、技术解答&#xff08;有偿&#xff09;见文末。 目录 摘要 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、程序源码 六、资料包括 摘要 目前&#xff0c;国内市场上的平衡车琳琅满目&#xff0c;但多数功能单一&#xff0c; 价格昂贵&…

基于STC单片机的两轮平衡车设计

给大家传福利了。。后续继续共享基于Arduino/安卓Android/树莓派raspberry等平台的两轮车设计 这是我前年暑假做的一个小项目&#xff0c;今年拿出来整理了下当毕设了&#xff08;当然毕设里添加了许多其他元素&#xff0c;比如Arduino/安卓Android/树莓派raspberry等&#x…

平衡小车从0开始stm32带源码

平衡小车为鸭脖智能的&#xff0c;但不推荐购买&#xff0c;太垄断了&#xff0c;一般零件只能买他们家的&#xff0c;而且还贵&#xff0c;不开源。做的不错&#xff0c;不如原子好。 一、电机、编码器介绍 电机使用的是JGB37-520&#xff08;带有霍尔编码器&#xff09;&am…

从零开始写STM32平衡小车代码,从0到1

从零开始写STM32平衡小车代码&#xff0c;从0到1 教你从零开始写STM32平衡小车代码 前言&#xff1a; 本人也是学生&#xff0c;只是分享一下自己的设计思路与代码教学。 这次STM32平衡小车是基于STM32CubeMX软件生成HAL库代码编写。 第一部分&#xff1a;前期准备 这部分…

STM32C8T6制作平衡小车笔记

本人大一学生和学长一起参加电赛&#xff0c;目前正在学习PID&#xff0c;所以制作了一下两轮平衡小车&#xff0c;当然是看了大量视频&#xff0c;大量代码的&#xff0c;最终才做出了自己的平衡车&#xff0c;目前刚达到保持平衡的状态&#xff0c;转向环还没加&#xff0c;简…

树莓派3B+ 平衡车 wiringPi 实验详录

一.材料 树莓派(2B、3B、3B或zero) ~~两片外壳~~ 充电宝 microUSB电源线 L298N电机驱动板 18650锂电池 锂电池座 锂电池充电器 MPU6050模块 母对母杜邦线12芯以上 TT马达 车轮 红黑导线 车地盘以及铜柱螺丝等 注意&#xff1a;这一部分看似简单&#xff0c;实际…

地心一号-基于STM8的超迷你自平衡小车-DIY套件

大家好&#xff0c;我是起航&#xff0c;我又来了&#xff0c;这次跟大家聊聊平衡小车。了解我的朋友都知道&#xff0c;我极有可能会把帖子写的又臭又长&#xff0c;所以&#xff0c;&#xff0c;&#xff0c;做好准备&#xff0c;上车吧&#xff01; 先说项目初衷&#xff1…

中国代步平衡车市场销售态势与消费趋势预测报告(2022-2027年)

中国代步平衡车市场销售态势与消费趋势预测报告(2022-2027年) 【报告编号】: BG423940 【出版时间】: 2022年4月 【出版机构】: 中智正业研究院 免费售后服务一年&#xff0c;具体订购流程欢迎咨询客服人员。 内容简介&#xff1a; 第一章 中国代步平衡车行业宏观环境分析23…