第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

怎樣阻止GDB依附應(yīng)用問題的解決方式!!!(開發(fā)者須知)

標(biāo)簽:
iOS 資訊 架構(gòu)

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


1.  #import <sys/ptrace.h>  3.  int main(int argc, charchar *argv[])  
4.  {  
5.  #ifndef DEBUG  6.  ptrace(PT_DENY_ATTACH,0,0,0);  
7.  #endif  8.  @autoreleasepool {  
9.  return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));  
10.  }  
11.  }


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

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

1.  #import <dlfcn.h>  2.  #import <sys/types.h>  4.  typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);  
5.  #if !defined(PT_DENY_ATTACH)  6.  #define PT_DENY_ATTACH 31  7.  #endif  // !defined(PT_DENY_ATTACH)  9.  void disable_gdb() {  
10.  void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);  
11.  ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");  
12.  ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);  
13.  dlclose(handle);  
14.  }  

16.  int main(int argc, charchar *argv[])  
17.  {  
18.  #ifndef DEBUG  19.  disable_gdb();  
20.  #endif  21.  @autoreleasepool {  
22.  return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));  
23.  }  
24.  }


--------“不积小流,无以成江海;不积跬步,无以至千里。 ”--------

谢谢iOS开发小伙伴们的点赞和支持 ! 万分感谢呢 ~.~

email GitHub  <感受下代码>

點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消