动态库的加载

其实动态库是缓存到我们手机的某个地方,但是他是怎样和我们的app进行链接的呢? 其实是通过这个

来进行链接的,其中他里面有动态编辑器和动态加载器,来进行链接

运用官方工具拆除出UIKit框架

1.具体的步骤我用一个图片来显示(前提是你要下载源码并且用xcode打开)其实我们也可以把dsc_extractor放到我们的/usr/local/bin目录下,我这里没有放,那么直接就用./直接执行。 我的执行结果为:

其实我们也可以把dsc_extractor放到我们的/usr/local/bin目录下,我这里没有放,那么直接就用./直接执行。 我的执行结果为:

首先我们破解好了,找一下UIKit的Mach-o文件,他在这个地方

你刚才命名的文件夹/System/Library/Frameworks/UIKit.framework

会看到我们期望已久的Mach-o文件

将这个文件拖拽到到Hopper Disassembler中然后开始解析(怎样解析和安装插件我上面说到了),大约等了一个世纪,终于解析完成。找到那个文件happly死了。

关于Mach-o的简单介绍

简介: Mach-o其实是Mach object的缩写,是mac\ios上存储程序、标准库格式。

  • 常见的类型:

    我们可以通过xcode进行来查看mach-o文件

  • 查看mach-o文件的一些命令(怎样显示一个可执行文件的通用二进制文件,xcode选择release模式下真机运行app,找到.app文件显示包内容,最后找到可执行的文件) 1.查看可执行文件支持架构的信息

ipo -info

可执行文件或者file 可执行文件

2.剥离出一种架构

lipo 可执行文件 -thin 架构 -output 架构位置

3.组合二种架构

lipo -create 一种可执行文件路径(带名字) 一种可执行文件(带名字) -output 想要的可执行文件路径(带名字)

通用二进制文件 通用二进制文件就是包含多了多种架构的二进制文件或者说是包含了独立的二进制文件。

Mach-o的基本结构

他的官方的描述:developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html 他的结构主要包含三个方面: 1.Header 主要包含一些文件类型,目标架构类型等等。 2.load Commands 描述文件在虚拟内存中的结构、布局等等。 3.Raw Segments Data 在load Commands中的Segments的原始数据。 他的结构图为:

一个可以查看Mach-o文件的工具

github.com/gdbinit/MachOView

我随便找一个可执行的文件看下

然后我们也可以看下具体的头信息

注意:值得说的是github上machview这个工具有一些bug,如果你想要一个没有bug的请联系我,我这有直接是dmg的。

dyld和Mach-o的关系 其实dyld主要是加载这几种类型的Mach-o文件 MH_EXCUTE MH_DYLIB MH_BONDLE APP的可执行文件、动态库文件都是有dyld进行加载的。 我们可以从dbld的源码中找到答案(前面有说在哪里下载dyld源码,然后找到dyld.cpp文件)

逆向破解思路和获取app的代码,脱壳操作(三)相关推荐

  1. 逆向破解思路和获取app的代码,脱壳操作(一)

    .我们的app首先是经过我们写代码.最后经过签名.打包最后生成.app文件,那么这个.app的文件在哪里呢,我用我自己的项目做个例子大致他的位置在这里: 他这个其实就是包含我们项目中的资源和我们写的代 ...

  2. 逆向破解思路和获取app的代码,脱壳操作(四)

    加壳 什么是加壳? 我们的ipa文件上传appstore,苹果会给我们做一个加密,其实我们运行在内存中的过程是一个加密的壳程序,当然在手机中我们会对他进行解密壳程序,来直接运行可执行的文件,当然苹果这 ...

  3. 逆向破解思路和获取app的代码,脱壳操作(二)

    代码的编译过程 简单来说我们的oc经过编译会生成汇编语言,汇编语言经过编译最后生成机器语言,其中机器语言和汇编语言是一一对应的也就是说,我们的机器语言可以反编译生成汇编语言. 但是从上图中也看到了,我 ...

  4. 13-爬虫之js加密,解密,混淆,逆向破解思路

    url:https://www.aqistudy.cn/apinew/aqistudyapi.php 分析思路: 原图 现图 1,我们点击查询按钮后发现抓取到了2个一样的数据包,包含请求url和pos ...

  5. 【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e0acc896e9ebb6865f321 如果您有耐心看完这篇文章,您将懂 ...

  6. GJM:移动App入侵与逆向破解技术-iOS篇 【转载】

    GJM:移动App入侵与逆向破解技术-iOS篇 [转载] 转载: URL http://dev.qq.com/topic/577e0acc896e9ebb6865f321 如果您有耐心看完这篇文章,您 ...

  7. 移动App入侵与逆向破解技术-iOS篇

    如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析.追踪.注入等实用的破解技术,另外,通过"入侵",将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单介绍ios二进制文件 ...

  8. iOS逆向开发(2):获取APP的类声明 | class-dump | dumpdecrypted

    iOS逆向开发(2):获取APP的类声明 | class-dump | dumpdecrypted 之前介绍了怎么操作越狱的iOS设备(以下简称为手机),但简单操作手机并不是目标,小程的目标是手机上特 ...

  9. 安卓逆向神器frida-(2) 逆向破解X鞋app

    首先声明: 此次逆向只为学习交流使用,切勿用于其他非法用途,关键代码均已打码 简介: 上一篇主要是分享frida的一个介绍和使用, 现在我们使用frida来对一个安卓app进行一个实战破解, 本篇分享 ...

最新文章

  1. 程序流程图_干货收藏 | Java 程序员必备的一些流程图
  2. PostgreSQL windows下安装出现问题的解决办法
  3. different behavior in AG3 and P8I about Territory management - popup window display
  4. 轻量级RTSP服务存在的意义
  5. python3程序设计基础答案刘德山_!求大学python3程序设计基础答案 刘德山主编 网上找不到 希望大家帮帮忙...
  6. C/C++中的联合 union
  7. 查询某个字段值为null的记录
  8. 如何为ip v6设定子网
  9. 给计算机系统打补丁,为什么我的电脑需要打补丁?
  10. 什么是群体决策支持系统
  11. Imu_heading源码阅读(一)——common.h
  12. 作为空降领导,该如何做?
  13. ttk python_python GUI ttk库 -- Apple的学习笔记
  14. 《智能商业》读后感作文5000字
  15. 只用js代码实现电子时钟,精确到毫秒
  16. IP地址绕过 . 拦截
  17. 华为云添加HSS云主机agent无法安装提示已存在问题处理
  18. no applicable items eclipse
  19. (含代码)基于51单片机的红外遥控(独立按键)舵机开关灯控制
  20. 打算打造一个最牛iOS培训品牌

热门文章

  1. 关于C语言的独立(freestanding)和托管(hosted)环境
  2. 计算机基础为什么要学word,计算机基础中word教学探讨
  3. Microsoft SUS Deployment
  4. 线性回归分析——高尔顿数据集更正版
  5. wave文件(*.wav)格式、PCM数据格式介绍
  6. 浅谈umi router
  7. Python绘制股票趋势图
  8. OEL / RedHat linux 配置无线网络连接(含驱动安装)
  9. ipad iphone开发_如何在iPhone或iPad上使用Adobe Flash
  10. 传输线的共模和差模噪声,抑制方法