在 macOS 上禁止 App 连网的一个方法 Proteas的专栏 4 years 11 months ago 在 macOS 上禁止 App 连网的一个方法 在 macOS 上可以使用沙盒策略来禁止 App 连网。 App 假设目标 App 的目录结构如下: /Applications/AbcdEfg.app └── Contents ├── Info.plist ├── MacOS │ ├── AbcdEfg ├── PkgInfo ├... Proteas
For Fun:使用 IDA 调试 iOS 程序的步骤 Proteas的专栏 7 years 1 month ago 前提要求 1、熟悉基本的 IDA 操作。 2、会对手机进行越狱。 3、从手机上拷贝文件到电脑,从电脑上拷贝文件到手机。 4、会使用 ldid 对 debugserver 签名,增加权限。 5、会使用工具(如:iproxy)映射手机端口。 6、了解如何使用 LLDB 调试应用,可以参考我 15 年写的文章:《在非越狱设备上使用LLDB 调试第三方 App》。 实验环境 64 位 iO Proteas
iOS 内核堆利用技术点之 mach_msg ool Proteas的专栏 9 years 5 months ago 说明 在内核堆利用中,mach_msg 主要用来填充内核堆、读内核堆。这个技术点无法单独使用,需要配合内核堆信息泄露、堆整理技术(比如:堆风水),即:首先要使堆可控。 关于 mach_msg ool 详细的信息大家可以参考《Mac OS X and iOS Internals: to Apple’s Core》的第十章、《Mac OS X Internals:A Systems Proteas
探寻不同版本的SDK对iOS程序的影响 Proteas的专栏 10 years 2 months ago 以iOS6与iOS7下状态条的外观不同为例,探寻不同版本的SDK对iOS程序的影响。 Proteas
在非越狱设备上Hook C++的虚函数是否可能? Proteas的专栏 10 years 3 months ago 关于C++中虚函数与普通函数的区别,大家可以参考:《深度探索C++对象模型》。 对于Hook普通的C++函数,与Hook C函数没什么太大区别,主要的却别在于C++有名称改编,原理是在函数入口加入跳转指令。 这块儿在Windows平台上有微软的Detours,也有开源的EasyHook。在Mac平台上有MobileSubstrate,相信做过越狱开发的对这个都比较熟悉。 所有上面列到的工具在 Proteas
对苹果“五仁”编程语言Swift的简单分析 Proteas的专栏 10 years 5 months ago 苹果在昨天的WWDC上,发布了新的编程语言Swift。这两天开发社区都在讨论这个语言,从语言的特性上大家发现了好多语言的影子,这样的情况可以说是集大成,也可以说是“五仁”。每个人看问题的角度都不同,下面从编译、工具链、逆向、及其对越狱开发的影响的角度对其进行简单分析。 Proteas
Cydia Substrate 工作流程图 Proteas的专栏 10 years 5 months ago 【附-腾讯安全管家替换 MobileSubstrate 的流程】 com.qq.mqqsecure.deb-postinst--->QSCommand--->QSTempRunner Proteas
[实验]通过内核Patch去掉iOS-v4.3.3的沙盒特性 Proteas的专栏 10 years 5 months ago 环境: 1、Mac OS X 10.9.2 2、xcode 5.1.1 3、gcc 4.8 4、redsn0w 0.9.15b3 前提: 1、获取 iOS 4.3.3 的kernelcache,并解密 操作步骤: 1、修改 datautils0/sandbox.S 的19行,将“movs r2, #19”改为“movs r2, #1” 2、编译 Proteas
Class Model of Quick Time Plugin Proteas的专栏 10 years 7 months ago Quick Time Plugin 的类图。 类图的矢量PDF格式:http://pan.baidu.com/s/1o6oFV8Q 简要说明: FigPluginView实现了WebKit的插件接口。 FPVMediaPlayerHelper 是处理插件与对应DOM媒体元素的辅助类,比如:处理事件等等。 类图: Proteas
调试没有符号的 iOS 应用 Proteas的专栏 10 years 8 months ago 使用场景: 1、调试被 strip 了的 iOS 应用 2、调试被 strip 了的 iOS 系统 dylib 在调试时没有符号的 iOS 应用时,设置断点非常不方便: 1、App:在没有开启 ASLR 时,需要首先找到方法的地址,然后针对地址设置断点 2、Dylib:在没有开启 ASLR 时,需要找到dylib的基地址,然后计算偏移 如果开启了 ASLR,设置断点会更麻烦。 Proteas
iOS中 Web 页面与 Native Code 的一种通信方式 Proteas的专栏 11 years 2 months ago 通过 HTML5 的 socket API 实现 Native Code 与 Web 页面的通信。 Proteas
使用MachOView辅助破解AppStore应用 Proteas的专栏 11 years 3 months ago 在破解iOS应用的过程中,需要经常使用 otool 获取程序本身的信息(比如:是否启用了PIE),获取加密信息, 但是CLI的程序在直观性上还是不如GUI的, 下面描述使用MachOView来查看到相关信息。 1、加载可执行文件。 运行 MachOView 后,会提示选择文件,选择将要分析的文件, 会在后台进行分析,等待分析完毕,如下图: 2、文件头信息。 Proteas
逆向iOS SDK -- _UIImageAtPath 的实现(SDK 5.1) Proteas的专栏 11 years 3 months ago +[UIImage imageNamd:]的实现分析:如果查找图片,查找哪些图片,查找顺序,缓存等。 注释过的反汇编代码:http://pan.baidu.com/share/link?shareid=3491166579&uk=537224442 伪代码(不精确,仅供参考): NSString* _UICacheNameForImageAtPath(NSString *imageName, NSBundle *bundle); NSString* ProductSu Proteas