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]));
    }
}


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

iOS攻防 - (四)iOS应用防止被GDB附加到进程

GDB/LLDB 动态调试iOS应用 LLDB官方文档:https://lldb.llvm.org/tutorial.html GDB文档:https://www.cs.cmu.edu/~gilpi...
  • u013538542
  • u013538542
  • 2017年05月24日 13:36
  • 691

iOS平台的应用程序调试与分析(openssh + gdb)

标 题: 【原创】iOS平台的应用程序调试与分析 作 者: zhuliang 时 间: 2013-04-02,17:09:40 链 接: http://bbs.pediy.com/showthread...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2013年11月27日 15:25
  • 6408

iOS安全攻防(二十)动态调试利器---gdb基础篇

一、调试平台搭建   1、GNU Debugger。首先安装ios下的gdb调试器,添加源:cydia.radare.org 。搜索 GNU Debugger,安装之。(有些源的GDB好像不能用...
  • fishmai
  • fishmai
  • 2017年06月03日 20:20
  • 303

iOS中XCode的一些调试技巧

XCode的一些调试技巧  标签: xcodeexceptioncrashobjectclasscmd 2012-10-10 08:45 184人阅读 评论(0) 收藏 举报 ...
  • sevenquan
  • sevenquan
  • 2016年01月06日 15:25
  • 426

ios反调试之--Using ptrace with PT_DENY_ATTACH

 转自:http://www.coredump.gr/articles/ios-anti-debugging-protections-part-1/ Many iOS applications...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2014年10月21日 15:34
  • 1938

解决Android加固多进程ptrace反调试的思路整理

一、Android多进程反调试的原理代码 当ptrace附加目标进程时出现失败,正常情况下有理由认为目标进程已经被别的进程ptrace附加了。像梆梆加固就是采用的这种反调试的手法,效果还是不错的。 ...
  • QQ1084283172
  • QQ1084283172
  • 2016年12月13日 23:08
  • 4399

Android平台的 Ptrace, 注入, Hook 全攻略

Android平台上的Ptrace已经流行很久了,我记得最早的时候是LBE开始使用Ptrace在Android上做拦截,大概三年前我原来的同事yuki (看雪上的古河) 写了一个利用Ptrace注入的...
  • heikefangxian23
  • heikefangxian23
  • 2016年06月03日 16:25
  • 3154

iOS开发之不得不会的gdb命令

更新说明:后面发现这篇文章介绍的比较全面 http://blog.csdn.net/ch_soft/article/details/6740000 文章转载于:http:/...
  • Mars2639
  • Mars2639
  • 2012年05月22日 10:07
  • 6737

IOS之GDB调试命令

Xcode debug 命令 Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要 您可以在命令行...
  • abcso
  • abcso
  • 2014年10月02日 03:04
  • 350

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

GDB是大多数hackers的首选,阻止GDB依附到应用的常规办法是: #import     int main(int argc, charchar *argv[])  {  #ifn...
  • cancer1617
  • cancer1617
  • 2014年04月16日 20:51
  • 774
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS安全攻防(四):阻止GDB依附
举报原因:
原因补充:

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