麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

iOS安全防護系列之字符串及系統函數隱藏詳解

2019-10-21 18:40:46
字體:
來源:轉載
供稿:網友

前言

用hopper打開macho文件可以看出你具體函數跳轉與字符串的使用,那么在項目中,你的加密Key就容易泄漏,你使用的加密方法如果是系統的,那么可以被fishhook給hook住,所以字符串和系統方法的隱藏可以作為安全防護的一環。

一 字符串加密

如果你使用對稱加密,你的秘鑰很可能被macho文件暴露

iOS,安全防護,字符串,系統函數隱藏

要想字符串不進常量區,可以先用一個字符去異或,然后再異或回來,字符串直接換算,就不會被macho暴露。

//測試環境static NSString * KEY(){ unsigned char key[] = {  (pw_encrypt_key ^ 'a'),(pw_encrypt_key ^ '2'),(pw_encrypt_key ^ 's'),(pw_encrypt_key ^ '5'),(pw_encrypt_key ^ '4'),(pw_encrypt_key ^ 'b'),  (pw_encrypt_key ^ 'e'),(pw_encrypt_key ^ '5'),(pw_encrypt_key ^ 'f'),(pw_encrypt_key ^ '3'),(pw_encrypt_key ^ 'f'),(pw_encrypt_key ^ '4'),  (pw_encrypt_key ^ 'f'),  (pw_encrypt_key ^ '/0') }; unsigned char *p = key; while (((*p) ^= pw_encrypt_key) != '/0') {  p++; } return [NSString stringWithUTF8String:(const char *)key];}

二 隱藏系統函數

當你調用系統函數加密是,macho是可以找到對應的函數跳轉的:

iOS,安全防護,字符串,系統函數隱藏

要想隱藏系統函數,可以直接從庫里面找到函數句柄,然后調用函數指針進行加密。

1、找到庫

下符號斷點,找到自己的加密函數CCCryptorCreate;

iOS,安全防護,字符串,系統函數隱藏

然后lldb調試:(lldb) image list;

找到libcommonCrypto.dylib庫在:[ 39] 50EEB933-DCEB-3AA2-8A43-DD3A791139CE 0x0000000182e1e000 /Users/mac/Library/Developer/Xcode/iOS DeviceSupport/11.3 (15E216)/Symbols/usr/lib/system/libcommonCrypto.dylib

libcommonCrypto.dylib的位置是:/usr/lib/system/libcommonCrypto.dylib

2、獲取句柄

#import <dlfcn.h>//句柄 void * handle = dlopen("/usr/lib/system/libcommonCrypto.dylib",RTLD_LAZY);

RTLD_LAZY:懶加載表

3、獲取加密函數

 unsigned char str[] = {  ('a' ^ 'C'),  ('a' ^ 'C'),  ('a' ^ 'C'),  ('a' ^ 'r'),  ('a' ^ 'y'),  ('a' ^ 'p'),  ('a' ^ 't'),  ('a' ^ 'o'),  ('a' ^ 'r'),  ('a' ^ 'C'),  ('a' ^ 'r'),  ('a' ^ 'e'),  ('a' ^ 'a'),  ('a' ^ 't'),  ('a' ^ 'e'),  ('a' ^ '/0') }; unsigned char * p = str; while (((*p) ^= 'a') != '/0') p++;CCCryptorStatus (* CCCryptorCreate_p)(         CCOperation op,    /* kCCEncrypt, etc. */         CCAlgorithm alg,   /* kCCAlgorithmDES, etc. */         CCOptions options,   /* kCCOptionPKCS7Padding, etc. */         const void *key,   /* raw key material */         size_t keyLength,         const void *iv,    /* optional initialization vector */         CCCryptorRef *cryptorRef) /* RETURNED */ __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) = dlsym(handle, (const char *)str);

4、用函數指針加密

 status = CCCryptorCreate_p( kCCEncrypt, algorithm, options,         [keyData bytes], [keyData length], [ivData bytes],         &cryptor );

結果如下

iOS,安全防護,字符串,系統函數隱藏

總結

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产一区二区在线 | 毛片午夜 | 久草成人在线 | 亚洲精中文字幕二区三区 | 草碰人人 | 毛片视频免费观看 | 天天曰夜夜操 | 精品国产一区二区亚洲人成毛片 | 日本a∨精品中文字幕在线 被啪羞羞视频在线观看 | av电影免费在线看 | 夜夜夜精品视频 | a黄网站 | 91精品免费观看 | 午夜爽爽爽男女免费观看hd | 天堂成人国产精品一区 | 中文字幕亚洲一区二区三区 | 99在线在线视频免费视频观看 | 黄色a级片视频 | 99国产精品欲a| 99re色| 国产精品久久二区 | 久久久久久久91 | 精品国产一区二区三区成人影院 | 中文字幕在线观看91 | 色综合久久久久久 | 92自拍视频 | 亚洲天堂中文字幕在线观看 | 亚洲小视频在线播放 | 极品大长腿啪啪高潮露脸 | 日本在线免费观看视频 | 欧美一级做a | 成人精品 | 中文字幕激情 | 欧洲成人一区 | 国产噜噜噜噜久久久久久久久 | 午夜精品一区二区三区免费 | 91香蕉国产亚洲一区二区三区 | 久久久久av电影 | 国产精品剧情一区二区三区 | 精品国产91久久久久 | 懂色粉嫩av久婷啪 |