六阿哥博客

内存 内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的。 虚拟内存 通过操作系统的某些指令对物理内存进行映射,使得每个程序都拥有物理内存那么大的内存。假如我们电脑插入4G的...

发布

DLL动态链接库 DLL 是 Dynamic Link Library 的缩写,翻译为动态链接库。 在 Windows 中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即 DLL 文件,放置于系统中。 当我们执行某一程序时,相应...

发布

Gatekeeper macOS 10.7.5 引入的安全特性,检测从互联网下载或其他第三方安装的软件,在首次运行时,确保它们的行为对系统没有危害。 系统在默认情况下只允许用户安装来自 App Store 的软件,如果需要安装从网上下载或其他地方复制的...

发布

原理 在之前笔记中有详细写过越狱机插件开发和执行原理,我们知道插件是依赖 Cydia Substrate 基板运行的。 所以只需要将 Cydia Substrate 基板和 deb 插件内的 dylib 动态库打包进 APP 并加载,然后重签名即可运行在非越狱机上。 我...

发布

Unity版本变化 新版 Unity 打包 iOS 版本后,Unity 编写的代码会编译生成一个名为 UnityFramework.framework 的 Framework,存放在 xxx.app/Frameworks 目录下: 而 Unity 老版本打包的不会: 获取基址 使用 Unity 开发的手游,我们...

发布

功能 还原DLL文件(不包含代码),可用于提取MonoBehaviour和MonoScript 支持ELF, ELF64, Mach-O, PE, NSO和WASM格式 支持Unity 5.3 - 2020.2 生成IDA和Ghidra的脚本,帮助IDA和Ghidra更好的分析il2cpp文件 生成结构体头文件 支持从...

发布

安装 下载地址:https://github.com/tobefuturer/restore-symbol。 编译命令行工具: git clone --recursive https://github.com/tobefuturer/restore-symbol.git && cd restore-symbol && make ./restore-symbol 将...

发布

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

发布

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

发布

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

发布

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

发布

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

发布

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

发布

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

发布

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

发布