iOS安全

关于IOS逆向分析和IOS安全方面的东西。

        最近微信分身版各种疯传,不少人都安装了不同功能的微信分身版,不管是一键转发,一键评论还是带有其它功能的微信分身版。         很显然很多人安装了这些分身版却不知道其中可能存在的风险,这些微信分身版无非就是通过load command动态库 […]

目的:通过XX助手分析网络协议,然后通过代码模拟网络协议,请求数据。 1. 从界面分析程序逻辑: 来到XX助手的榜单页面,使用cycript打印界面布局: [[UIApp keyWindow] recursiveDescription].toString() 找到每一个下载控件,这里随便找一个: 通过UITableViewCellContentView这个控件找它的包含关系。 使用[#0x15ba […]

最近在模拟器上面测试SDK,想看看模拟器断开xcode调试的日志输出,发现Xcode-Window-Devices里面并不能看到。   把日志重定向输出到log文件,便可以看到实时的log日志。   重定向日志输出代码: 12345678910-(void)redirectConsoleLog{ #ifdef DEBUG     N […]

发布的app难免会出现一些奇葩的bug,为了能够实时跟踪app的崩溃,需要接管系统的异常捕获接口,自己来收集保存崩溃现场信息。 下面简单说一下几个平台的异常崩溃捕获。 1.iOS 1.1 Exception 12345678910111213141516-(BOOL)install{     if(NSGetUncaughtExceptionH […]

从AppStore上下载下来的应用都是苹果加过壳的。可以查看加密标示: 如果要class-dump或者IDA静态库分析的话肯定是需要解密的。 1、下载解密代码:https://github.com/stefanesser/dumpdecrypted/archive/master.zip   在命令行使用make编译: 编译后会生成一个dylib文件。 2、通过Cycript找到 […]

dyld_shared_cache文件包含真机上所有系统库文件,但是需要decache才能得到。 1、获取dyld源码并解压: 2、到launch-cache文件夹,修改dsc_extractor.cpp文件为,并include<dlfcn.h>:   3、编译该文件: clang++ –o dsc_extractor dsc_extractor .cpp dsc_itera […]

简单来说就是通过修改可执行文件的Load Commands,增加一个LC_LOAD_DYLIB,写入dylib路径。这样程序执行的时候就会来编译这个LC_LOAD_DYLIB找到要注入的dylib,从而进行加载。   新建一个简单的testApp,编译生成,使用MachoOView查看结构如下: 可以知道程序默认加载了Foundation、libobjc.A.dylib、libSyste […]

在网上看到一种方法可以通过在Other Linker Flags中添加: 1-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null 的方法来阻止dylib注入。   便动手试了一下,编写一个测试Demo不添加任何linker flags,然后使用theos对其进行hook。     启动后使用image list –o –f&n […]

第一题:拿到ipa习惯性的拖到IDA看一看,找到-[ViewController onClick]函数: 额。。。如果只是这样,是不是有点简单了?先不管了,既然你是调用AESCrypt来解密的,hook解密函数直接拿到结果即可。hook代码如下: 代码: 123%hook AESCrypt + (id)decrypt:(id)arg1 password:(i […]