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

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

2013-12-24 16:05
14501

标 题: 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;
   
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

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

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

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

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

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

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

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