【iOS 安全攻防】
文章平均质量分 74
念茜
别叫我前辈,别称呼您,别弹视频,别天天要现成代码,别问我在哪上班,别问我多大了真身是男是女,别在上班时间Q我求帮忙解决这解决那,我是一单线程妞,忙不过来
展开
-
iOS安全攻防(十九):基于脚本实现动态库注入
基于脚本实现动态库注入MobileSubstrate可以帮助我们加载自己的动态库,于是开发者们谨慎的采取了对MobileSubstrate的检索和防御措施。那么,除了依靠MobileSubstrate帮忙注入dylib,还有别的攻击入口吗?理理思路,条件、目的很明确:1)必须在应用程序启动之前,把dylib的环境变量配置好2)dylib的位置必须能被应用程序放问到3)最后再启动应用程序啊哈,原汁原原创 2014-02-21 22:26:20 · 26924 阅读 · 7 评论 -
iOS安全攻防(十七):Fishhook
Fishhook众所周知,Objective-C的首选hook方案为Method Swizzle,于是大家纷纷表示核心内容应该用C写。接下来进阶说说iOS下C函数的hook方案,先介绍第一种方案————fishhook .什么是fishhookfishhook是facebook提供的一个动态修改链接Mach-O符号表的开源工具。什么是Mach-OMach-O为Mach Object文件格式的缩写,原创 2014-02-12 00:08:03 · 44856 阅读 · 22 评论 -
iOS安全攻防(二十):越狱检测的攻与防
越狱检测的攻与防在应用开发过程中,我们希望知道设备是否越狱,正以什么权限运行程序,好对应采取一些防御和安全提示措施。iOS7相比之前版本的系统而言,升级了沙盒机制,封锁了几乎全部应用沙盒可以共享数据的入口。即使在越狱情况下,限制也非常多,大大增加了应用层攻击难度。比如,在iOS7之前,我们可以尝试往沙盒外写文件判断是否越狱,但iOS7越狱后也无该权限,还使用老方法检测会导致误判。那么,到底应该如何原创 2014-03-02 13:38:28 · 43738 阅读 · 15 评论 -
iOS安全攻防(二十二):static和被裁的符号表
static和被裁的符号表为了不让攻击者理清自己程序的敏感业务逻辑,于是我们想方设法提高逆向门槛。本文就介绍一个防御技巧————利用static关键字裁掉函数符号。原理如果函数属性为 static ,那么编译时该函数符号就会被解析为local符号。在发布release程序时(用Xcode打包编译二进制)默认会strip裁掉这些函数符号,无疑给逆向者加大了工作难度。验证写个demo验证一下上述理论,原创 2014-03-18 17:11:18 · 23055 阅读 · 15 评论 -
iOS安全攻防(二十四):敏感逻辑的保护方案(1)
iOS安全攻防(二十四):敏感逻辑的保护方案(1)Objective-C代码容易被hook,暴露信息太赤裸裸,为了安全,改用C来写吧!当然不是全部代码都要C来写,我指的是敏感业务逻辑代码。本文就介绍一种低学习成本的,简易的,Objective-C逻辑代码重构为C代码的办法。也许,程序中存在一个类似这样的类:@interface XXUtil : NSObject+ (BOOL)isVerifi原创 2014-06-07 19:04:38 · 43700 阅读 · 73 评论 -
iOS安全攻防(四):阻止GDB依附
阻止GDB依附GDB是大多数hackers的首选,阻止GDB依附到应用的常规办法是:#import int main(int argc, char *argv[]){#ifndef DEBUG ptrace(PT_DENY_ATTACH,0,0,0);#endif @autoreleasepool { return UIApplicationMain(ar原创 2014-01-13 15:24:54 · 28023 阅读 · 11 评论 -
iOS安全攻防(十三):数据擦除
数据擦除对于敏感数据,我们不希望长时间放在内存中,而希望使用完后立即就被释放掉。但是不管是ARC还是MRC,自动释放池也有轮循工作周期,我们都无法控制内存数据被擦除的准确时间,让hackers们有机可乘。本文介绍一个小技巧——及时数据擦除。假如一个View Controller A的一个数据被绑在一个property上,@interface WipingMemoryViewController :原创 2014-01-22 18:47:20 · 20930 阅读 · 23 评论 -
iOS安全攻防(九):使用Keychain-Dumper导出keychain数据
使用Keychain-Dumper导出keychain数据iOS系统及第三方应用都会使用Keychain来作为数据持久化存储媒介,或者应用间数据共享的渠道。所以Keychain数据库是hacker们最关注的数据源头之一。不知道是算幸运还是不幸,导出Keychain数据库数据的工具早已非常完善,下载地址:Keychain-Dumper传送门操作步骤极其简单:1)赋予Keychain数据库可读权限Pr原创 2014-01-17 12:23:55 · 33576 阅读 · 6 评论 -
iOS安全攻防(二十三):Objective-C代码混淆
iOS安全攻防(二十三):Objective-C代码混淆class-dump可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善的程序给同行留下笑柄。所以,我们迫切的希望混淆自己的代码。混淆的常规思路混淆分许多思路,比如:1)花代码花指令,即随意往程序中加入迷惑人的代码指令2)易读字符替换等等防止class-dump出可读信息的有效办法是易读字符替换。Obj原创 2014-06-07 17:00:47 · 136033 阅读 · 41 评论