IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 逆向破解思路和获取app的代码,脱壳操作(三) -> 正文阅读

[移动开发]逆向破解思路和获取app的代码,脱壳操作(三)

动态库的加载

其实动态库是缓存到我们手机的某个地方,但是他是怎样和我们的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文件)

?

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:46:08  更:2022-10-17 12:47:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/29 7:59:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码