首页
社区
课程
招聘
[求助]iOS中anti-debugging的方式有几种呢?
发表于: 2014-8-18 15:00 8571

[求助]iOS中anti-debugging的方式有几种呢?

2014-8-18 15:00
8571
在调试一个iOS游戏(地下城宝石,DungeonGems),gdb attach上去就segment fault,觉得是开了anti-debugging。
直接载入rb doModInit*后run的话exit code 055。
对ptrace和sysctl下断点,初步判断不是这两种anti-debugging的方式。对exit下断点也断不到,直接跑飞exit code 055。
有大大了解其他anti-debugging的方式么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 183
活跃值: (1223)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
不要想太多2333
2014-8-18 15:38
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
也没想太多吧
2014-8-18 15:42
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最后确定是通过syscall调用0x1a系统调用设置禁止调试的
2014-8-19 10:22
0
雪    币: 287
活跃值: (583)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
IOS有这种禁止调试的标志开关,LZ能科普你的经验么
2014-8-20 01:56
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有两篇文章讲这个
http://www.coredump.gr/articles/ios-anti-debugging-protections-part-1/
http://www.coredump.gr/articles/ios-anti-debugging-protections-part-2/
第一篇讲通过ptrace系统调用设置PT_DENY_ATTACH,通过断ptrace系统调用就行;有时候开发中不会直接调用ptrace,而是通过syscall加系统调用号0x1a来实现。
第二篇就是通过sysctl,查看进程信息里的标记,看自己进程有没有被trace,有的话可以自己退出或其他。

另外就是stackoverflow上也有讲其他方法,http://stackoverflow.com/questions/3596781/detect-if-gdb-is-running
fork一个子进程去ptrace attach父进程,如果父进程已经被gdb依附,这个操作就会失败,于是判断有调试器。
2014-8-25 11:53
0
雪    币: 189
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tbl
7
mark
2015-1-6 18:21
0
游客
登录 | 注册 方可回帖
返回
//