首页
社区
课程
招聘
AAnti_Debug(对抗反调试)系统实现
2013-12-24 16:05 13830

AAnti_Debug(对抗反调试)系统实现

2013-12-24 16:05
13830
标 题: AAnti_Debug(对抗反调试)系统实现
作 者: 蟑螂一号
时 间: 2013-12-24,15:54:25
     Android应用中,为了防止分析人员通过调试工具调试应用,会在应用中调用ptrace,防止其他调试进程再一次附加到本应用中。AAnti_Debug系统是经过android ROM定制之后的反反调试系统。该系统主要是在系统调用ptrace中进行特殊处理,使本进程在调用ptrace时候失败,而让其他调试进程附加到进程的时候调用ptrace成功。
    AAnti_Debug系统关键技术:修改android源码中bionic中的libc中的ptrace系统调用。
    关机实现代码:
    1.根据附加进程pid返回进程uid。
     
int  get_uid_from_status(int pid)
{
   FILE *file;
   int uid=-1;
   char filename[512];
   sprintf(filename,"/proc/%d/status",pid);
   file=fopen(filename,"r");
   char line[256];
   if(!file)
   {
     return uid;
   }
   while(fgets(line,256,file))
   {
     sscanf(line,"Uid: %u",&uid);
   }
   fclose(file);
   return uid;
   
}

   2.根据传入ptrace的参数,处理参数。
   

int uid=-1;
//获取当前进程uid
int myuid=getuid();
//uid>10000为非系统应用
if(pid>=0&&myuid>10000)
{
int val=get_val();
if(val>0)
{
uid=get_uid_from_status(pid);
// __libc_android_log_print(ANDROID_LOG_DEBUG,"PTRACE","uid:%d myuid:%d",uid,myuid);
if(request==PTRACE_TRACEME)
{
return -1;
}
if(uid==myuid)
{
return -1;
}
}
}

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞1
打赏
分享
最新回复 (7)
雪    币: 131
活跃值: (98)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
gamehacker 1 2013-12-24 17:00
2
0
研究的好深入啊
雪    币: 6031
活跃值: (3950)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
pxhb 2 2013-12-24 18:33
3
0
现在还不懂,收藏备用
雪    币: 86
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
忆海拾贝 2013-12-27 14:07
4
0
ROM级别的哦,但是对于ROOT后的设备来说,这个也不能保证是安全的吧,root后对系统ptrace函数所在的文件打补丁
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
ReturnsMe 2 2014-1-8 10:06
5
0
对于真想反调试的程序:

1 是不会调用bionic 里面的ptrace的。。直接svc了

2  PTRACE_TRACEME返回 -1 ,直接不干活儿

这是最基本的吧~
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whnet 2014-1-8 10:14
6
0
第2条不成立的。 对于不想让你成功ptrace的。 可以直接返回成功。

当然这样还是可以检测的。 ptrace 后再ptrace 这时就需要记录一下之前的信息,然后做出看上去正确的反应。
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
ReturnsMe 2 2014-1-8 13:42
7
0
恩,而且还有一个方法

如果程序ptrace之后可以对调试目标的一些关键变量或者关键逻辑进行修改,

traceme却返回了假的成功,那后面也没法玩了。。
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whnet 2014-1-8 14:05
8
0
是的。。。 所以就看想做到哪个程度。
游客
登录 | 注册 方可回帖
返回