0%

作为一项安全措施,Apple要求其信任的开发人员对在其设备上运行的所有代码进行数字签名。有时我们需要对第三方包进行修改后重新安装,因此需要进行重签名通过验证。

阅读全文 »

配置debugserver

debugserver运行在的iOS上,顾名思义,它作为服务端,实际执行LLDB(作为客户端)传过来的命令,再把执行结果反馈给LLDB,显示给用户,即所谓的“远程调试”。在默认情况下,iOS设备上并没有安装debugserver,只有在设备连接过一次的Xcode,并在窗口→设备菜单中添加此设备后,debugserver才会被Xcode中安装到iOS版的“/开发人员的/ usr / bin中/”目录下。

阅读全文 »

预处理指令是我们写在程序代码中的给预处理器(preprocessor)的命令,该指令将在编译器进行编译之前对源代码做某些转换。预处理指令以#号开头(# 号必须是该行除了任何空白字符外的第一个字符),#后是指令关键字,在关键字和# 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令。

使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。

阅读全文 »

frida是一款基于python + java 的hook框架,可运行在Android、iOS、Linux、Windows、MAC OS X各平台,主要使用动态二进制插桩(dynamic binary instrumentation ,DBI)技术。

动态二进制插桩技术,可以在不影响程序动态执行结果的前提下,按照用户的分析需求,在程序执行过程中插入特定分析代码,实现对程序动态执行过程的监控与分析。目前,应用广泛的动态二进制分析平台有Pin,DynamoRIO和Frida等。

这篇文章针对已经对Frida有过了解的初学者,对Frida的实际操作中常用方法进行总结。如果你还没有使用过Frida,可以先阅读Frida的官方文档,里面很详细地说明了Frida的功能和使用方式。

阅读全文 »

Mach-O是什么

Mach-O 是 Mach object 文件格式的缩写,它是一种用于记录可执行文件、对象代码、共享库、动态加载代码和内存转储的文件格式。类似于windows上的PE文件以及linux上的ELF文件。作为 a.out 格式的替代品,Mach-O提供更多的可扩展性和更快的符号表信息存取。大多数基于 Mach 内核的操作系统都使用 Mach-O。NeXTSTEP、OS X 和 iOS 是使用这种格式作为本地可执行文件、库和对象代码的例子。

阅读全文 »