进程名称检测

往期推荐

调试端口检测

调试与反调试–关键文件检测

模拟器检测

文件检测

一:分析进程名称检测的C代码

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

二:演示进程名称检测的效果

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

8.选择一系列参数,只填写以下这几项,如下图所示。
Application:运行程序的路径+文件名(文件所在手机路径)
Directory:程序所在路径
Hostname和Port和之前动态调试apk程序一样,

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

12.执行adb 命令cat /proc/14942/status,查看进程信息,如下图所示。
在这里插入图片描述

13.此时TracePid的值发生明显变化,如下图所示。
在这里插入图片描述

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

在这里插入图片描述

三:如何过掉反调试

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

小结

分析了进程名称检测的源码,演示进程名称检测的效果 ,关注其中的执行命令以及过掉反调试的方法:
1.修改返回值R0为0;
2.刷机,修改系统内核,永久绕过反调试。

如果你也对安卓逆向感兴趣。可以加入下方的群,大家一起讨论问题,或者扫描下方二维码关注公众号,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习 Q群:876526335
vx:yijin_LX

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值