iOS

用到的工具 IDA Pro 7.0:反编译工具 Reveal:UI分析工具 frida-ios-dump:砸壳工具 class-dump:导OC头文件工具 Cycript:命令行调试工具 JFTool:封装Cycript脚本 Theos:Tweak开发工具包 iOS 番茄小说 Ver 4.2.0:测试目标APP 砸...

发布 0 条评论

签名保存位置 iOS的ipa安装包里 Mach-O 文件的签名是在 Mach-o 文件中,其他所有文件的签名都在 xxx.app/_CodeSignature/CodeResources 文件内。 如果我们改动了 Mach-O 文件,或者对安装包内任何资源文件进行了改动,签名验证都会失...

发布 0 条评论

生成汇编文件 将c语言源文件编译成arm64汇编代码: xcrun --sdk iphones clang -S -arch arm64 main.c -o main.s 寄存器 arm64有34个寄存器,包括通用寄存器和fp、lr、sp、pc、cpsr。 有些书上说有 x0~x30 是通用寄存器,有些则把 f...

发布 0 条评论

未使用ASLR的Mach-O内存分布 内存是操作系统建立起来的虚拟内存,和物理内存的地址不一样,是经过操作系统映射的内存!也就是说,虚拟内存的地址可能永远不会变,但是物理地址是随机的。 每个APP都有自己独立的虚拟内存,内存地址是不...

发布 0 条评论

什么叫动态调试 将程序运行起来,通过打断点、打印等方式,查看参数、返回值、函数调用流程等。 Xcode的动态调试原理 LLDB:是一个开源的内置于 Xcode 的具有 REPL(read-eval-print-loop) 特征的 Debugger,其可以安装 C++ 或者 Pyth...

发布 0 条评论

参数接收 命令行工具也是 Mach-O 可执行文件,只是没有 GUI 界面。在终端执行命令行工具的时候,我们可以输入多个参数,而参数就是通过程序入口 main 方法接收的。 int main(int argc, char * argv[]) { return 0; } argc:argume...

发布 0 条评论

安装MonkeyDev MonkeyDev 是原有 iOS OpenDev 的升级,越狱/非越狱插件开发整合工具。 官方地址:https://github.com/AloneMonkey/MonkeyDev/ 文档地址:https://github.com/AloneMonkey/MonkeyDev/wiki/安装 1.MonkeyDev 依赖 theos...

发布 0 条评论

过程 1.将第三方插件的 deb 包解压,得到 xxx.dylib 和 xxx.plist 文件。 2.创建 Tweak 工程。 3.将 xxx.plist 文件中的内容替换我们创建的工程的 plist 文件内容。 4.将 xxx.dylib 拷贝到工程根目录的 layout/Library/MobileSubstrat...

发布 0 条评论

theos资料 目录结构:https://github.com/theos/theos/wiki/Structure 环境变量:http://iphonedevwiki.net/index.php/Theos Logos语法:http://iphonedevwiki.net/index.php/Logos %hook 和 %end:hook 一个类的开始与结束 %log:...

发布 0 条评论

环境配置 安装 ldid 包,用于 theos 项目的签名: brew install ldid 安装 fakeroot 包: brew install fakeroot 安装 dpkg 包: brew install dpkg 锁定 dpkg 包: brew pin dpkg 安装 Theos: sudo git clone --recursive https://g...

发布 0 条评论

认识加壳脱壳 加壳 加壳就是利用特殊的算法,对执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的。 我们通过开发者账号将 APP 上传到 App Store,苹果会对我们的 APP 的可执行文件进行加壳操作。 脱壳 脱壳就是...

发布 0 条评论

iOS逆向流程图 界面分析 通过 Cycript 在终端对 APP 进行分析、或者通过 GUI 工具 Reveal 直观分析界面。 代码分析 iOS开发中,所有的代码最终都会经过编译生成 Mach-O 文件,所以我们需要对 Mach-O 文件进行静态分析,可以使用 clas...

发布 0 条评论

什么是 Mach-O Mach-O 是 Mach object 的缩写,是 iOS/Mac 上用于存储程序、库的标准格式。 可执行文件是 Mach-O 文件的一种类型,不能说 Mach-O 文件等价于可执行文件。 在 xnu 源码中,可以查看 Mach-O 格式的详细定义。在源码的 EX...

发布 0 条评论

配置流程 1.在 iPhone 上的 Cydia 中安装 Reveal Loader 或 Reveal2Loader 插件。 2.在 iPhone 设置中找到 Reveal ,进入 Enabled Applications,将需要调试 UI 的 APP 打开开关。 3.在 Mac 上安装 Reveal 应用,最好是 4 以上的版...

发布 0 条评论

Cycript 是 Objective-C++、ES6(JavaScript)、Java 等语法的混合物,也就是语法格式支持这些语言。可以用来探索、修改、调试正在运行的 iOS/Mac APP。 官网:http://www.cycript.org/ 文档:http://www.cycript.org/manual/ 在使用 ...

发布 0 条评论