AloneMonkey

首先在本机新建文件编写如下代码: 1234567891011121314151617181920#include <stdio.h> #include <fcntl.h> #include <stdlib.h> #define FILE "/private/var/mobile/Library/Safari/Bookmarks.db" int […]

这篇讲的是如何使用Logify.pl 来跟踪函数的调用,以及获取调用的参数。 这里用到的例子还是MethodSwizzlingDemo,我们要通过Log来跟踪ViewController中的函数调用过程。 首先dump出头文件。 然后我们使用logify.pl脚本把我们要跟踪的头文件ViewController.h转换成Tweak.xm: /opt/theos/bin/logify.pl View […]

Theos的安装请参考这里:http://iphonedevwiki.net/index.php/Theos/Getting_Started 其中要注意的地方:将IOS设备上的/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate复制到Mac中,然后运行以下命令,替换无效的libsubstrate.dylib: sudo mv -f […]

直入正题,例子还是原来的那个,有两个登陆都是有验证的,前面我们分析了如何动态调试获取账号密码,以及绕过验证。下面我们使用静态反汇编修改汇编逻辑来绕过验证。 使用Hopper打开可执行文件,前面通过dump头文件可以可以分辨loginTapped:和login2Tapped:这两个方法就是登陆按钮响应执行的方法,我们来到login2Tapped:处, 上面部分验证用户名,验证失败跳转到0xaace处 […]

上一篇中已经分析了Mach-o文件的基本结构,otool工具的原理也是这样。 下面我继续来讲讲如何从Mach-o文件中分析出类名和方法名,也让我们了解下class-dump的原理。 Demo还是原来的:https://github.com/AloneMonkey/MethodSwizzlingDemo Mach-o结构有两个节:__objc_classname 和 __objc_methname […]

我们知道Windows下的文件都是PE文件,同样在OS X和iOS中可执行文件是Mach-o格式的。 所以我们如果要进行逆向分析,首先要熟悉Mach-o文件结构。 Mach-o包含三个基本区域: 头部(header structure)。 加载命令(load command)。 段(segment)。可以拥有多个段(segment),每个段可以拥有零个或多个区域(section)。每一个段(seg […]

由于GDB在使用上会遇到很多的BUG,让人用起来很是郁闷,而且Xcode也使用lldb作为调试工具,所以我们就用lldb来调试下我们的应用程序。 1.下载ldid:http://joedj.net/ldid 2.将iOS中的/Developer/usr/bin/debugserver拷贝到OSX中,为其减肥。假定你的iDevice处理器是armv7,则运行: lipo -thin armv7 de […]

今天来简单讲下如何使用introspy来实时追踪IOS应用。 首先introspy的下载地址:https://github.com/iSECPartners/Introspy-iOS/releases 下载完成后,上传到你的设备上面,使用:dpkg -i com.isecpartners.introspy-v0.4-iOS_7.deb 来安装。 安装完成之后,来到设置界面,你会看到有两个新的选项 […]

Snoop-it允许我们进行运行时分析和对iOS应用进行黑盒安全评估。 官网:https://code.google.com/p/snoop-it/ 上面可以看到它的功能。 首先添加源(http://repo.nesolabs.de)搜素snoop-it然后安装。 安装完成之后桌面上会出现一个图标,点击它,你会看到: 点击设置,默认就好,也可以去掉验证: 然后在电脑上访问上面的地址,选择你要监控的 […]

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式。每个ios程序都有一个独立的keychain存储。 从Keychain中导出数据的最流行工具是Keychain dumper。下载地址:https://github.com/ptoomey3/Keychain-Dumper 把里面的keychain_dumper文件上传到你的设备里面: 然后确保保存在/priv […]