首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

免越狱调试与分析黑盒iOS应用

获取目标 在上篇文章中其实有说了,开发者在编译iOS或者MacOS项目时,最终生成的应该是.app文件, 但在iOS中还需要对app文件进行打包,生成.ipa文件。.../pp2048-repack.ipa Payload 这样就生成了新的pp2048-repack.ipa文件。这时候的ipa还不能用,需要对其进行签名。...为了在应用中执行我们自己的代码,我们可以直接修改二进制的2048.app/2048文件, 毕竟,它只是一个运行于ARM平台的普通Mach-O文件而已: $ file pp2048/Payload/2048...,Mach-O支持多架构,也就是说我们可以指定多个arch,生成的文件如下: $ file libtest.dylib libtest.dylib: Mach-O universal binary with...签名 新生成的libtest.dylib此时还不能直接添加到ipa中,要时刻记住在iOS中, 所有的代码都需要有合法的签名。

1.9K40

iOS逆向-ipa包重签名及非越狱手机安装多个微信

App,程序运行主要就是加载一个Mach-o可执行文件。...逆向当中的一些专业术语 加壳:利用特殊算法(iOS中数字证书),对可执行文件的编码进行改变,以达到保护程序代码的目的 脱壳:摘掉壳程序,将未加密的可执行文件Mach-o还原出来 查看应用是否加壳 将下载好的...ipa包解压缩之后,拿到里面的Mach-o文件,cd到所在目录,执行如下命令: otool -l 可执行文件路径 | grep crypt ?...其中cryptid代码是否加壳,1代表加壳,0代表已脱壳。我们发现打印了两遍,其实代表着该可执行文件支持两种架构armv7和arm64....签名完毕之后对应的文件夹下会生成重签名之后的ipa包 ?

3.7K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    二、应用脱壳

    ipa文件 6.1 一键快速脱壳 Frida-ios-dump的原理和dumpdecrypted一样,都是通过把内存中已解密的数据dump再修复Mach-O,但是dumpdecrypted仅能dump主程序...Clutch脱壳的程序是能正常运行的,对其源代码研究后发现它进行了hash(散列,由叫“哈希”)值的修正处理。...在学习Mach-O文件格式时讲过,LC_CODE_SIGNATURE加载命令存放的是一些与签名有关的数据,而里面最重要的是CSSLOT_CODEDIRECTORY和CSSLOG_ALTERNATE_CODEDIRECTORIES...所以我们需要根据校验原理编写一个mac端工具,它能自动修正签名段的hash值,然后修改dump.py文件,让脚本在生成ipa文件之前先调用我们编写的工具。...lipo的功能非常强大,不但能合并多个Mach-O文件到一个胖文件格式,也能从一个胖文件格式中分离指定架构的Mach-O文件,下面的例子使用lipo工具的-info参数查看目标文件的架构,然后使用-thin

    1.4K10

    1.6k stars以HW行动红队渗透测试团队为场景的多端信息收集扫描工具

    对WEB网站源代码进行URL地址、IP地址、关键字等信息进行采集等(可以是开源的代码也可以是右击网页源代码另存为)。 对H5页面进行进行URL地址、IP地址、关键字等信息进行采集等。...对某个APP进行定相信息收集等 功能介绍: [x] 支持目录级别的批量扫描 [x] 支持DEX、APK、IPA、MACH-O、HTML、JS、Smali、ELF等文件的信息收集 [x] 支持APK、IPA...DEX File or APK Download Url or Save File Dir> 扫描iOS应用的IPA文件、Mach-o文件、需要下载的IPA文件下载地址、保存需要扫描的文件目录 python...app.py ios -i IPA file or Mach-o File or IPA Download Url or Save File Dir> 扫描Web站点的文件、目录、需要缓存的站点...: 此处配置需要进行扫描的WEB文件后缀名称 sniffer_filter: 此处用于配置需要进行忽略网络嗅探的文件后缀名称 headers: 用于配置自动下载过程中需要的请求头信息 data: 用于配置自动下载过程中需要的请求报文体

    62730

    (5)初识Mach-O

    对运行中的APP进行代码调试 debugserver、LLDB 代码编写 注入代码到APP中 必要时还可能需要重新签名、打包ipa class-dump 顾名思义,它的作用就是把Mach-O...文件的class信息给dump出来(把类信息给导出来),生成对应的.h头文件 官方地址:http://stevenygard.com/projects/class-dump/ 下载完工具包后将class-dump...文件复制到Mac的/usr/local/bin目录,这样在终端就能识别class-dump命令了 常用格式 class-dump -H Mach-O文件路径 -o 头文件存放目录 -H表示要生成头文件...Hopper Disassmbler能够将Mach-O文件的机器语言代码反编译成汇编代码、OC伪代码或者Swift伪代码 常用快捷键 Shift + Option + X(找出哪里引用了这个方法...由于执行过程中,只调用一部分代码,运行起来也不需要额外的内存 因为文件比原来的要大,也被称为“胖二进制文件”(Fat Binary) dyld和Mach-O dyld用于加载以下类型的Mach-O文件

    1.1K40

    iOS 裁包大作战 —— JOOX Music 如何瘦身40MB

    Mach-O 是一种用于记录可执行文件、对象代码、共享库、动态加载代码和内存转储的文件格式。...还提供良好的插件支持,允许用户在编译时,运行额外的自定义动作。如此,我们便可利用 clang 生成的语法树来判断哪些方法是可以被程序主入口访问到的。...但 Google 默认工具生成的代码比较冗余,像序列化、反序列化、计算序列化大小等方法都生成在具体的 pb 类里,每个类的实现大同小异。...开发脚本,将每天 DailyBuild 打出来的包拉取下来,对比昨天的包分析新增内容,发现较大新增文件时发出邮件告警。并持续监控 ipa 包的大小变化趋势。...Xcode中和symbols有关的几个设置Mach-O可执行文件解读 Mach-O 文件格式减小ipa体积之删除frameWork中无用mach-O文件WebP 探寻之路Android APK瘦身-JOOX

    94940

    【神兵利器】红队移动端评估测试工具

    WEB站点中关键的资产信息并提供基本的信息输出,例如:Title、Domain、CDN、指纹信息、状态信息等 适用场景 日常渗透测试中对APP中进行关键资产信息收集,比如URL地址、IP地址、关键字等信息的采集等...对WEB网站源代码进行URL地址、IP地址、关键字等信息进行采集等(可以是开源的代码也可以是右击网页源代码另存为)。 对H5页面进行进行URL地址、IP地址、关键字等信息进行采集等。...对某个APP进行定相信息收集等 功能介绍 支持目录级别的批量扫描 支持DEX、APK、IPA、MACH-O、HTML、JS、Smali、ELF等文件的信息收 支持APK、IPA、H5等文件自动下载并进行一键信息收集...支持自定义请求头、请求报文、请求方法 支持规则自定义,随心自定义扫描规则 支持自定义忽略资源文件 支持自定义配置Android壳规则 支持自定义配置中间件规则 支持Android加固壳、iPA官方壳的检测...系列的系统 具备简单的AI识别功能,可以快速过滤三方URL地址 指纹识别模块 添加国际化语言包 一键对APK文件进行自动修复 识别到壳后自动进行脱壳处理 使用截图

    7010

    class dump使用方式和原理

    这边以ipaguard为例,目前还在免费阶段,想薅羊毛的快快试试。 Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。...可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。...文件夹里(不需要事先创建) 结果在testgod里发现 这个是dump之前的工程文件 ​ 这个是dump出来的工程文件 ​ dump的很准确 对比前后ViewController.h里的文件 这是原文件...在研究完Mach-O文件内部揭秘中就可以回答这个问题 Mach的文件结构里的data部分,就只有类的名称和类的方法,class-dump自然是根据Mach的文件结构来分析的。...而关于class-dump的解析原理,以及本文中提及到的两个问题 都和Mach-o文件解析格式有关。 ​

    51010

    iOS开发(1)iOS签名机制

    是从AppStore下载安装的,你会发现里面是没有mobileprovision文件的 它的验证流程会简单很多,大概如下所示 45.png 十、重签名 如果希望将破坏了签名的安装包,安装到非越狱的手机上...需要再.app包中提供对应的embedded.mobileprovision文件 iReSign https://github.com/maciekish/iReSign 可以对ipa进行重签名...需要提供entitlements.plist、embedded.mobileprovision文件的路径 3、动态库注入 可以使用insert_dylib库将动态库注入到Mach-O文件中 https...-all-yes,后面所有的选择都为yes insert_dylib的本质是往Mach-O文件的Load Commands中添加了一个LC_LOAD_DYLIB或LC_LOAD_WEAK_DYLIB...可以通过otool查看Mach-O的动态库依赖信息 otool -L Mach-O文件 4、更改动态库加载地址 可以使用install_name_tool修改Mach-O文件中动态库的加载地址

    1.6K30

    iOS安装包体积优化

    LinkMap 文件 Link Map File 直译为链接映射文件,是 Xcode 生成可执行文件时一起生成的文本,用于记录链接相关信息。 Link Map File 有什么用?...查看代码加载顺序 理解内存分段分区 Crash 时通过 Symbols 定位源码的机制 分析可执行文件中类或库体积,优化包体积 这里,我们主要用到的就是第四点,分析可执行文件的类库体积,优化包体积。...上图中的Object files,这里展示的信息是链接时用到的文件,包括.o文件和dylib库。第一列的序号是类的编号,通过该编号可以对应到具体的类。...分析并获取结果 参考LinkMapParser开源的脚本,针对自己应用进行修改,最后的对比结果如下: iPA 文件 分析ipa文件 除了通过linkmap文件分析之外,在和开发的沟通中,还提出了对...ipa文件内容进行分析的需求,主要需要关注package、assert、bundle三个目录的大小,最后通过编写shell完成分析的过程,主要代码如下: payload="/Payload/xxx.app

    86530

    ios-class-guard - iOS代码混淆与加固实践

    是从 AppStore 上下载的,都是经过签名加密的,需要先进行砸壳 1. class-dump 的原理 利用 Objective-C 语言的 runtime 特性,将存储在 Mach-O 文件中的...对 Mach-O 文件进行静态扫描,通过文件地址分析出类、方法的名字,然后通过宏定义替换方法成无序随机字符串来达到混淆的效果 三、ios-class-guard 混淆结果 使用 ios-class-guard...的 option,最后 -o 会输出方法名的宏定义,-m 生成方法名和随机字符串的映射表,需要将 -o 输出的宏定义头文件导入到 Prefix.pch 四、ios-class-guar 的使用 1....Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。...可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。

    68410

    几个面试题

    开篇 自己出了几个面试题,后面有时间把答案写详细 1、苹果审核流程是什么,审是机审,什么是人审,都审什么 提交-待审-审核-过审-发布 机审审代码、简单bug,包括代码查重,一般4.3 2.1 会出现此步骤...人审审流程,UI等,内购、金融APP账号资质会卡在这个环节 2、ipa上架后,到安装到手机,都做了什么 一个ipa 签名的过程,自己百度 3、APP从程序运行都做了什么 分为main之前和main后...前:一个加载动态链接库的过程,这个过程会读取库的镜像文件、处理_DATA段、绑定外部库符号然后是执行类的objc_init和load 读取库的镜像文件的过程,会解析Mach-O文件 objc_init...的过程中,会注册类、添加category 后:AppDelegateLaunch里面做的工作 傻子也知道 4、简单谈谈苹果编译器 一开始他用gcc编译,后来他有很多功能gcc不给做,他就自己再上面去修改...,做出来gcc-clang,后来gcc改了license,苹果不能用了,就研究出了llvm-clang,也就是现在这个玩意 编译过程词法、语法、语义分析、生成中间代码、优化中间代码、生成目标代码 5、

    62340

    iOS强化: 编译与链接

    前言 ---- 上一节学习了 iOS强化 : 熟悉 Mach-O 文件, 对 Mach-O 有个大致的了解,今天来学习 Mach-O 可执行文件的生成过程 :编译与链接。...Mach-O 文件生成过程 ---- 链接的本质 :就是把多个⽬标⽂件组合成⼀个⽂件(Mach-O可执行文件) 目标文件 :通常.o文件被我们称之为目标文件 ▐ 2.1 目标文件的生成过程 ?...对于外部导入符号,它的调用地址无法得知,需要将其放到重定位符号表中 生成一个或多个.o目标文件 此时链接器(llvm-ld)并没有被执⾏ ▐ 2.2 目标文件的生成过程 ?...多个目标文件合并 符号表(包括重定位符号表)合并成一张表 生成一个Mach-O可执行文件 3. 静态链接 ---- 代码经过编译链接最后分配虚拟内存地址生成可执行文件或动态库 ? 4....生成一个或多个.o目标文件 链接本质:多个目标文件合并,符号表(包括重定位符号表)合并成一张表,生成一个Mach-O可执行文件

    77030

    iOS 包大小二进制优化,一行代码减少 60 MB 下载大小

    原文链接 一、代码配置 如果使用 xcconfig 来管理构建参数的,如果你也使用该方式,那么使用下面这一行代码就能完成配置: APP_THIN_LINK_FLAGS = -Wl,-rename_section...文件 在xcode项目编译后,在项目目录下找到Product文件夹,下面有个xxxx.app的文件,右键show in finder,下面有个和项目同名的可执行文件这个就是Mach-O文件 2、查看Mach-O...在终端进入此文件夹,运行下面命令:比如你的文件名叫MachDemo $xcrun size -lm MachDemo 没移动__TEXT之前 ?...mach-o before.png 移动后 ? mach-o after.png 三、成果 将最新的IPA上传App Store后查看下载大小及安装大小。...发现新上传的1.9.3版本明细下载大小减少了十几兆。安装大小也有不同程度的减少。第一列是下载大小,第二列是安装大小。 ? 1.9.2.png ? 1.9.3.png

    1.3K30

    今日头条 iOS 安装包大小优化 - 新阶段、新实践

    [表格:今日头条落地的优化项和收益一览] 一、安装包的构成 当我们通过构建,获得了一个经过了 App Slicing 后的 ipa 文件后,将其用 zip 解压缩方式解压,进入 .app 文件后,我们就可以直观地看到安装包中的内容...[图:Asset Catalog] 1.2、Mach-O 文件 Mach-O 文件是 iOS 上的可执行文件,它是由代码源文件经过编译和静态链接获得。...通过分析 Mach-O 文件,我们发现,一个属性可以分为三个部分: (1)成员变量部分:成员变量本质是一个大小 32B 的结构体,结构体中三个指针(Offset、Name、Type)指向的内容的大小分别为...同时,代码中存在大量通过脚本自动生成的 JSONModel 子类,这些子类往往拥有大量属性。这里也就存在着包大小优化空间。...3.6、二进制段压缩 Mach-O 文件占据了 Install Size 中很大一部分比例,但并不是文件中的每个段/节在程序启动的第一时间都要被用到。

    2K00

    iOS应用程序混淆加固原理及逆向工具介绍

    编译过程 Xcode将源文件转换为可执行文件的过程包括预处理、符号化、语法和语义分析、生成抽象语法树、生成中间码、优化和生成目标代码等步骤,其中涉及到多个工具链和编译器前端后端。 3....逆向工具 class-dump:用于提取Mach-O文件结构里的类属性和方法等信息。...OLLVM:基于LLVM进行编写的开源项目,用于对中间代码进行混淆。 5. ipaguard Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。...可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。...可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。

    42910

    iOS开发之动态库与静态库

    库 库是一份可执行代码的二进制代码,可以被操作系统载入内存,并且被识别、使用。 在链接阶段,会将汇编生成的目标文件与引用的库一起链接,打包进可执行文件中。...优点:不受外部环境的影响,即使删除了静态库,对可执行文件不会造成影响,因为静态库在链接时就已经打包到了可执行文件中,成为 App 的一部分。 缺点:浪费内存空间。...动态库 以.tbd、.framework、.xcframework为后缀的文件。 动态库在链接时不会直接复制,而只会存储指向动态库的引用,等到程序运行时才被载入到内存中,以供使用。...如何区分 查看 Build Settings —> Mach-O Type 的值。 查看 ipa 的目录结构。 通过file xxx.a/framework命令查看。...原因是静态库不需要在运行时再次加载, 如果多个动态库依赖同一个静态库, 则会出现多个静态库的拷贝。 framework 一种资源打包方式,可以将代码文件、头文件、资源文件、文档等集中在一起。

    1K31

    使用class-dump 和Hopper实现简单反编译

    一、Class-Dump 1.Class-Dump是一款可以导出头文件的命令行工具,改程序用于检查objective - c运行时信息存储在Mach-O文件,它生成类的声明,类别和协议。...2.安装后,把里面的文件 /usr/local/bin 目录下 ? 3.把IPA文件归档处理 ? 4.打开刚才归档的 /Payload 目录下的.app 文件 ?...一、Hopper Hopper Disassembler是Mac上的一款二进制反汇编器,基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control Flow Graph),支持ARM指令集并针对...4.切换不同的查看方式 ? 从中我们就可以分析代码结构啦! 注意:上面的两种方法,都针对已经砸壳的IPA文件。...代码混淆请参考:https://www.jianshu.com/p/31eff4175a6b

    4.2K20
    领券