xposed反模拟器检测_进程名称检测

点击蓝字默默关注1分析进程名称检测的C代码

1.来到main函数,从main函数的coursecheck()开始分析,如下图所示。

768e62cebeb2dd2a49d9d22ff0e4f781.png

2.直接查看调用的函数coursecheck(),如下图所示。

b7fc88949063de4f9c2ed652ab436d91.png

3.分析该函数,首先它定义几个char型的数组,如下图所示。

9c87034ae7b563456010c987e38004ac.png

4.获取当前的pid,然后使用sprintf函数把pid写入/proc/%d/status字符串中,再放入filename所指地址的数组中,使用fopen函数打开filename表示的文件名,也就是执行指令/proc/%d/status,如下图所示。

38e09111caef58dc2ebfe8ae2391da57.png

5.执行命令打开文件成功后,使用fgets函数获取字符串,如下图所示。

cfc5d97f006ef59d4ca6f8ecaca4bfed.png

6.如果得到的字符串是tracepid,并且把数组里面的第11个元素转化为整型放到statue变量,如下图所示。

1b5c9b188e0b9d3bdb6219ab19bb5f7d.png

7.执行proc/pid/cmdline命令,cmdline包含进程名称的完整信息,如下图所示。

78d3b2004e12349d91952555ac023efb.png

8.对进程的完整信息进行遍历,如果存在字符串android_server,直接kill当前进程,如下图所示。

9ddafe1e981636fe841d42de1e93afc5.png

2演示进程名称检测的效果

1.将文件BubbleSort push到手机目录的data/local/tmp位置,如下图所示。

f447df92a2ed02c65d6baa8fb0baeee4.png

2.给chmod 777权限后,运行,如下图所示。

ca57068e0a34e1bde3e7d056d55e61a8.png

3.程序运行后,执行命令ps | grep BubbleSort,检查文件的进程,如下图所示。

f414baf530575582b8c543caf4a33176.png

4.继续执行命令cat /proc/29518/status ,查看进程信息,发现TracePid为0,此时程序没有被调试,可以正常运行,如下图所示。

d695ad027bb2d2ecd6a82d4421f87fd9.png

5.演示程序效果,一个简单的排序,如下图所示。

c62ac661de1615819c073eac936d0f4a.png

6.运行as,开始调试(别忘记端口转发),如下图所示。

60d14229f64a312d549e407c1228132f.png

7.打开IDA,选择Debugger,选择Run,选择Remote ARMLinux/Android debugger选项,如下图所示。

f0221b51957b38835bc732b747c34a1d.png

8.选择一系列参数,只填写以下这几项,如下图所示。

Application:运行程序的路径+文件名(文件所在手机路径)

Directory:程序所在路径

Hostname和Port和之前动态调试apk程序一样,

419577bc33ed11c61904d5cde5150713.png

9.点击OK,进入界面后,勾选三项,如下图所示。

6155fbd10e7f928d9a6b546c2432d62f.png

10.点击OK,此时的程序就处于挂起状态,如下图所示。

f3f3986e75716d318ce1ce1180d2f116.png

11.运行adb命令ps | grep BubbleSort ,查看当前程序的进程名称,如下图所示。

7f107a82fbeea1d73c7d137ab319bfe1.png

12.执行adb 命令cat /proc/14942/status,查看进程信息,如下图所示。

8da55203d5e0139465b30e9172c5aac8.png

13.此时TracePid的值发生明显变化,如下图所示。

89b594ba1026d322da3ed16f5ce7691d.png

14.TracePid的值不为零,就会执行相应源代码,直接kill程序,如下图所示。

72ee15e72e489c7cc5892a90dcf660a3.png

3如何过掉反调试

动态调试的的时候,直接修改返回值R0,将其改为0即可;或者把调用反调试的函数直接nop掉;还有一种方法就是刷机,修改系统内核,永久绕过反调试,如图3.23所示。

353f67e1f2221919bfb395c4c12eda9f.png

4小结

在今天的分享当中,分析了进程名称检测的源码,演示进程名称检测的效果 ,关注其中的执行命令以及过掉反调试的方法:

1.修改返回值R0为0;

2.刷机,修改系统内核,永久绕过反调试。

文章推荐 调试端口检测 关键文件检测 文件验证 模拟器检测 Apk 签名验证 资源文件混淆

dc793830ec8e403397b786fda0b2e428.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值