frida一键砸壳 前两天重新给我的 iOS12 设备越狱,然后砸壳和反编译一个应用,结果又是ps命令出错、又是cycript命令出错,到处查资料,折腾了好久。后来发现竟然有一键砸壳的工具frida,这里含泪记录下来整个砸壳的流程~ frida官网:https://www.frida.re/docs/home/ 1.iOS设备配置1.1.越狱我的设备是 iOS12.1,所以使用目前最新的越狱工具uncc0ver,版 2019-03-31 其他 #逆向
iOS12越狱填坑 最近看到有新版的iOS12越狱工具发布,一时手痒,于是将手里的设备进行了越狱。这中间又出了各种问题,在这里记录下来,顺便给后面踩坑的同学做个参考~ 1.越狱工具unc0verjailbreak for iOS 11.0-12.1.2,版本号为 v3.0.0~b48,手机 Safari 中打开 这里,在第二个 Tab 的jailbreaks选项中找到unc0ver-new beta,下载完成后进入 2019-03-28 其他 #逆向
脚本混淆代码 1、逆向&破解: 通过 dumpdecrypted 给 APP 砸壳; 通过 class-dump 查看 .h文件里的函数; 通过 Hopper、IDA Pro 等工具反编译后分析业务代码; 通过 Reveal 在运行时调试和修改 iOS应用的 UI; 2、混淆代码类名、方法名、变量名等会暴露APP的很多关键信息,攻击者通过 class-dump 得到头文件后,可以根据提取到的这些字符串 2019-03-25 其他 #逆向
脚本打包与上传 打包流程: 编译.xcarchive包; 生成.ipa文件; 上传到苹果商店或第三方平台。 自动化:这里所说的自动化,主要是通过shell脚本,利用 Command Line Tools 提供的 xcodebuild 命令来编译和导出 ipa,再通过 Application Loader 提供的 altool 命令行工具,或者其他三方平台提供的命令行工具上传 ipa 和 dSYM 文件。 清理构 2019-03-23 其他 #效率
Mach-O Xcode 构建一个程序的过程中,会把源文件 (.m 和 .h) 文件转换为一个可执行文件(Mach-O executable)。这个可执行文件中包含的字节码将会被 CPU (iOS 设备中的 ARM 处理器或 Mac 上的 Intel 处理器) 执行。当然,我们也可以不使用 Xcode,而是通过苹果提供的命令行工具(command line tools)来构建一个程序。 #1 不使用 Xcode 2019-03-16 其他 #逆向
IPA 重新签名 1、需求: 非企业证书签名的 ipa 想要在企业内分发。 对商店中下载的应用砸壳并修改内容后,希望重新打包并安装到手机上; 这些都需要对ipa重新签名~ 2、原理移除原有签名,通过codesign工具对原 ipa 使用新证书重新签名并得到新的安装包。 12345$ codesignUsage: codesign -s identity [-fv*] [-o flags] [-r reqs] [- 2019-03-15 其他 #逆向
dSYM+.crash解析 一、dSYM1.dSYM调试符号表,是苹果为调试和定位问题而使用的一种调试文件。调试符号信息在构建应用时就保存在Mach-O文件中了,而.dSYM就是从Mach-O文件中抽取调试信息而得到的一个单独的文件目录。它使用的是 DWARF 结构,在 .xcarchive 目录中其层次结构如下: 123456.xcarchive--dSYMs |--Your.app.dSYM |--Content 2019-03-12 其他 #异常
应用的启动过程 文章整理自 头条技术 和 DevilH 等的博客,具体请看最后的参考链接。 启动过程分解应用启动的过程可分为两步: t(总)= t1(main函数之前) + t2(main函数之后) t1:加载系统动态库和应用可执行文件; t2:构建界面并完成渲染和展示:main函数到-application:didFinishLaunchingWithOptions:回调执行结束; 1、mai 2019-02-25 OC #机制
编译器 1.编译/解释 编译型语言 代码须编译成机器码才能在CPU上执行的语言,如OC和Swift,其优点是代码执行效率高。 解释型语言 解释型语言,如 JavaScript 和 Python,代码不需要经过编译器,而是通过解释器直接将代码解释成CPU可以执行的代码。编写灵活,但执行效率低一些~ 本篇主要关注编译型语言。编译过程可以划分为前端和后端两部分: 2.Clang编译器前端将不同的 2019-02-15 OC #机制
派发机制 函数/方法把代码内聚到一处并对外暴露函数名,这提高了代码的复用性,也对外隐藏了具体的实现过程。根据函数名找到具体的函数实现,这就是函数派发的过程。函数派发的机制分两种: 静态派发 动态派发 一、静态派发 static dispatch is a form of polymorphism fully resolved during compile time. It is a form 2018-12-12 OC #机制 #runtime