亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS安全防護系列之重簽名防護與sysctl反調試詳解

2020-07-26 02:25:51
字體:
來源:轉載
供稿:網友

一 重簽名防護

想自己的app不被重簽名,可以在代碼中檢測簽名信息,然后采取措施.

1、查看證明組織單位

或者進入.app的包內容,查看embedded.mobileprovision信息security cms -D -i embedded.mobileprovision 找到<key>application-identifier</key>的value的第一部分就是

2、利用簽名信息進行重簽名防護

void checkCodesign(NSString *id){ // 描述文件路徑 NSString *embeddedPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]; // 讀取application-identifier 注意描述文件的編碼要使用:NSASCIIStringEncoding NSString *embeddedProvisioning = [NSString stringWithContentsOfFile:embeddedPath encoding:NSASCIIStringEncoding error:nil]; NSArray *embeddedProvisioningLines = [embeddedProvisioning componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];  for (int i = 0; i < embeddedProvisioningLines.count; i++) { if ([embeddedProvisioningLines[i] rangeOfString:@"application-identifier"].location != NSNotFound) {    NSInteger fromPosition = [embeddedProvisioningLines[i+1] rangeOfString:@"<string>"].location+8;    NSInteger toPosition = [embeddedProvisioningLines[i+1] rangeOfString:@"</string>"].location;    NSRange range;  range.location = fromPosition;  range.length = toPosition - fromPosition;    NSString *fullIdentifier = [embeddedProvisioningLines[i+1] substringWithRange:range];  NSArray *identifierComponents = [fullIdentifier componentsSeparatedByString:@"."];  NSString *appIdentifier = [identifierComponents firstObject];   // 對比簽名ID  if (![appIdentifier isEqual:id]) {  //exit  asm(   "mov X0,#0/n"   "mov w16,#1/n"   "svc #0x80"   );  }  break; } }}

二 sysctl檢測是否被調試

#import <sys/sysctl.h>bool checkDebugger(){ //控制碼 int name[4];//放字節碼-查詢信息 name[0] = CTL_KERN;//內核查看 name[1] = KERN_PROC;//查詢進程 name[2] = KERN_PROC_PID; //通過進程id查進程 name[3] = getpid();//拿到自己進程的id //查詢結果 struct kinfo_proc info;//進程查詢信息結果 size_t info_size = sizeof(info);//結構體大小 int error = sysctl(name, sizeof(name)/sizeof(*name), &info, &info_size, 0, 0); assert(error == 0);//0就是沒有錯誤  //結果解析 p_flag的第12位為1就是有調試 //p_flag 與 P_TRACED =0 就是有調試 return ((info.kp_proc.p_flag & P_TRACED) !=0); }

檢測到調試就退出

if (checkDebugger()) { asm("mov X0,#0/n"  "mov w16,#1/n"  "svc #0x80"  ); }

三 針對二 破解sysctl

因為sysctl是系統方法,所以可以被fishhook給hook,所以可以動態庫注入,hook到sysctl,改變sysctl的查詢結果使用異或取反kp_proc.p_flag

//原始函數的地址int (*sysctl_p)(int *, u_int, void *, size_t *, void *, size_t);//自定義函數int mySysctl(int *name, u_int namelen, void *info, size_t *infosize, void *newinfo, size_t newinfosize){ if (namelen == 4 && name[0] == CTL_KERN && name[1] == KERN_PROC && name[2] == KERN_PROC_PID && info && (int)*infosize == sizeof(struct kinfo_proc)) { int err = sysctl_p(name, namelen, info, infosize, newinfo, newinfosize); //拿出info做判斷 struct kinfo_proc * myInfo = (struct kinfo_proc *)info; if((myInfo->kp_proc.p_flag & P_TRACED) != 0){  //使用異或取反  myInfo->kp_proc.p_flag ^= P_TRACED; }   return err; }  return sysctl_p(name, namelen, info, infosize, newinfo, newinfosize);}+(void)load{ //交換 rebind_symbols((struct rebinding[1]){{"sysctl",mySysctl,(void *)&sysctl_p}}, 1);}

四 針對三 不讓sysctl失效

可以在fishhook sysctl之前就檢測,跟我之前ptrace生效的策略一樣,自己寫庫,在庫中每隔一段時間就檢測一下sysctl。因為自己的庫最新被調用.

五 用匯編調用關鍵系統方法

自己庫最新被調用的防護方法,可以符號斷點斷住,然后定位到sysctl的位置,最后改變macho的二進制從而破解,所以通過匯編調用sysctl ptrace exit等是相對安全的

exit:

 asm("mov X0,#0/n"  "mov w16,#1/n"  "svc #0x80"  );

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本在线视频中文字字幕| 亚洲色图18p| 欧美日韩精品在线视频| 中文字幕欧美专区| 中文字幕欧美精品日韩中文字幕| 操91在线视频| 精品成人av一区| 久久久成人精品视频| 欧美成人精品在线视频| 91免费看视频.| 亚洲精品美女免费| 亚洲成av人片在线观看香蕉| 亚洲成人999| 亚洲成年网站在线观看| 亚洲网站在线播放| 亚洲国产小视频在线观看| 日韩欧美一区二区三区久久| zzjj国产精品一区二区| 欧美成人免费播放| 久久久国产成人精品| 亚洲国产精品系列| 日韩成人高清在线| 亚洲福利视频在线| 欧美激情综合色综合啪啪五月| 九九热99久久久国产盗摄| 45www国产精品网站| 精品一区精品二区| 97av在线播放| 国产精品成人av性教育| 美日韩精品免费观看视频| 欧美老女人性生活| 欧美精品一区三区| 国产美女精品视频免费观看| 国产视频综合在线| 国产精品主播视频| 精品偷拍一区二区三区在线看| 精品亚洲一区二区三区在线观看| 欧美性高潮床叫视频| 91免费电影网站| 国产一区av在线| 久久伊人精品天天| 精品国产福利视频| 国产一区二区三区四区福利| 欧美第一黄网免费网站| 欧美日韩国产成人在线| 欧美日韩中文字幕在线视频| 久久久之久亚州精品露出| 欧美理论在线观看| 成人黄色免费网站在线观看| 日韩电影网在线| 久久精品中文字幕电影| 亚洲老司机av| 亚洲国产精品悠悠久久琪琪| 日韩精品中文字幕久久臀| 国语自产精品视频在线看| 国产精品美女午夜av| 国产成人极品视频| 亚洲国产精久久久久久| 亚洲女人天堂成人av在线| 亚洲视频在线免费看| 中文字幕免费精品一区高清| 岛国av一区二区三区| 日韩在线中文字幕| 日韩欧美国产网站| 久久影视三级福利片| 亚洲欧美日韩中文在线| 国产亚洲a∨片在线观看| 久久精品视频免费播放| 高清亚洲成在人网站天堂| 在线视频欧美日韩| 欧美成人三级视频网站| 亚洲va电影大全| 日韩av在线资源| 中文字幕精品一区久久久久| 亚洲人成电影网站色…| 亚洲最大av网| 久久中文字幕视频| 亚洲精品一区在线观看香蕉| 欧美高清视频在线| 欧美激情xxxxx| 久久久久久久久中文字幕| 原创国产精品91| 日韩美女视频在线观看| 国产精品久久久久久久午夜| 欧美国产日本在线| 亚洲欧美综合另类中字| 国产精品96久久久久久| 久久夜色精品国产| 亚洲精品理论电影| 久久精品国亚洲| 国产成人啪精品视频免费网| 欧美成人性色生活仑片| 欧美在线观看一区二区三区| 78色国产精品| 亚洲女人被黑人巨大进入| 成人乱人伦精品视频在线观看| 欧美视频中文在线看| 7777kkkk成人观看| 狠狠躁夜夜躁人人躁婷婷91| 日韩在线www| 久久理论片午夜琪琪电影网| 国内偷自视频区视频综合| 亚洲无av在线中文字幕| 国产精品久久久久9999| 在线国产精品播放| 久久久久久久久久婷婷| 欧美日韩国产成人在线观看| 久久人人爽人人爽爽久久| 亚洲欧美另类自拍| 欧美黄色片免费观看| 亚洲成avwww人| 在线不卡国产精品| 日韩欧美一区二区三区| 日韩在线高清视频| 中文字幕亚洲激情| 成人免费淫片视频软件| 欧洲亚洲妇女av| 在线视频中文亚洲| 国产日本欧美一区二区三区在线| 国产精品久久久久久久久久99| 久久久久久69| 日韩精品亚洲精品| 久久久精品网站| 欧美日韩国产va另类| 亚洲一区二区三区四区在线播放| 成人妇女淫片aaaa视频| 久久久91精品| 欧美刺激性大交免费视频| 国产精品日韩在线一区| 亚洲成人中文字幕| 国产成人精品999| 久久久久久久av| 国产91色在线播放| 91成人在线观看国产| 欧美—级高清免费播放| 日韩欧美国产一区二区| 精品偷拍各种wc美女嘘嘘| 色在人av网站天堂精品| 亚洲白拍色综合图区| 午夜剧场成人观在线视频免费观看| 成人啪啪免费看| 国产精品电影观看| 韩国一区二区电影| 亚洲aa中文字幕| 91超碰中文字幕久久精品| 欧美乱大交做爰xxxⅹ性3| 日韩精品中文字| 亚洲老头老太hd| 久久综合九色九九| 国产一区二区久久精品| 国产亚洲视频中文字幕视频| 热99精品只有里视频精品| 国内精品久久久久久中文字幕| 亚洲在线免费观看| 国产丝袜视频一区| 亚洲精品久久久久久久久久久久久| 久久伊人免费视频| 91精品国产成人www| 欧美二区乱c黑人| 国产主播精品在线| 亚洲国产精品资源| 国产一区二区美女视频| 欧美午夜激情视频| 久久久国产视频|