iOS安全攻防(四):阻止GDB依附

原创 2014年01月13日 15:24:54

阻止GDB依附



GDB是大多数hackers的首选,阻止GDB依附到应用的常规办法是:

#import <sys/ptrace.h>

int main(int argc, char *argv[])
{
#ifndef DEBUG
    ptrace(PT_DENY_ATTACH,0,0,0);
#endif
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));
    }
}


但遗憾的是,iPhone真实的运行环境是没有sys/ptrace.h抛出的。虽然 ptrace 方法没有被抛出, 但是不用担心,我们可以通过dlopen拿到它。

dlopen: 当path 参数为0是,他会自动查找 $LD_LIBRARY_PATH,$DYLD_LIBRARY_PATH, $DYLD_FALLBACK_LIBRARY_PATH 和 当前工作目录中的动态链接库. 

#import <dlfcn.h>
#import <sys/types.h>

typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif  // !defined(PT_DENY_ATTACH)

void disable_gdb() {
    void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
    ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
    ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
    dlclose(handle);
}

int main(int argc, char *argv[])
{
#ifndef DEBUG
    disable_gdb();
#endif
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

程序员的生存法则

前几天,和国内某知名企业的行销一线喝茶聊天,他一直在抱怨自己的上司很差劲,一直允诺追加奖金,但是月底考评结果却给的很差,奖金也没别人的多,所以他想调别的部门。我很是惊诧,这公司是你们家开的?怎么可以想...

女coder撑起半边天:女程序员的职业规划

女程序员的职业规划引子        很多姐妹发微博评论留言给我,说希望我写一篇关于女程序员职业规划的文章。很惭愧,我自己的职业规划都还没亲自验证完毕,coder之路还在继续,在此仅仅分享我的所闻、所...

iOS 安全攻防系列(四):分析二进制软件

和现代语言一样,Object-C是一种反射式语言,他可以在运行时查看和修改自己 的行为。反射机制允许程序将指令看成数据,也允许在运行的时候对自己进行修改。Object-C 运行司环境不仅可以让一个程序...

iOS安全攻防(一):Hack必备的命令与工具

你的应用正在被其他对手反向工程、跟踪和操作?你的应用是否依旧裸奔毫不防御? 郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说,进入正题。 今天总结一下为h...
  • HK_5788
  • HK_5788
  • 2016年01月06日 22:53
  • 476

iOS安全攻防(十五):使用iNalyzer分析应用程序

好想用 doxygen 画iOS app的class继承关系。 有没有比 class-dump-z 更直观的分析工具? 利器 iNalyzer 隆重登场~ 一...
  • sharpyl
  • sharpyl
  • 2014年09月24日 15:13
  • 659

iOS安全攻防(十八):数据保护API

开篇先扯几句题外话,许多朋友都问我怎么不写防啊,我确实有点犹豫。 hackers总是想象如果自己是开发者会怎么写,然后才能找到入手点。同理,开发者们也要想象自己是hackers会怎么做,才能采取相应...
  • sharpyl
  • sharpyl
  • 2014年09月24日 18:18
  • 540

[ios]安全攻防之代码混淆的一个小工具

看了“念茜”的这 http://blog.csdn.net/yiyaaixuexi/article/details/29201699 #include #include #include...
  • yxh265
  • yxh265
  • 2014年08月08日 14:38
  • 7711

iOS安全攻防(二十四):敏感逻辑的保护方案(1)

http://blog.csdn.net/yiyaaixuexi/article/details/29210413 iOS安全攻防(二十四):敏感逻辑的保护方案(1) ...

ios--安全攻防01--Hack必备的命令与工具

Hack必备的命令与工具 你的应用正在被其他对手反向工程、跟踪和操作!你的应用是否依旧裸奔豪不防御? 郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说...

iOS安全攻防(十九):基于脚本实现动态库注入

基于脚本实现动态库注入MobileSubstrate可以帮助我们加载自己的动态库,于是开发者们谨慎的采取了对MobileSubstrate的检索和防御措施。那么,除了依靠MobileSubstrate...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS安全攻防(四):阻止GDB依附
举报原因:
原因补充:

(最多只允许输入30个字)