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的代码,脱壳操作(二)

代码的编译过程

简单来说我们的oc经过编译会生成汇编语言,汇编语言经过编译最后生成机器语言,其中机器语言和汇编语言是一一对应的也就是说,我们的机器语言可以反编译生成汇编语言。

但是从上图中也看到了,我们的汇编是不能生成我们唯一的oc语言的,怎么办?其实我们可以借助工具来将我们的汇编生成oc,相当于是伪代码,这样的话我们可以大概来研究一下别人的代码,如果我们完全100%还原oc代码个人觉得也不太现实,因为苹果的加密机制我觉得做的还是很ok的。

借助Hopper Disassembler来将我们的汇编代码进行还原。

1.将我们的Mach-o文件拖拽到Hopper Disassembler中,需要等待进度条完毕。

2.展示结果如下

5.相信大家按部就班的做就可以了,一些快捷键的展示如下:

7.按照上边我给你介绍的文章,我已经成功把我这个项目的(.m)文件全部导出来了,如下图:

首先xcode报错我们不用管,但是很多人还是想说 还是看不懂,怎么还是汇编感觉,其实个人觉得完全拆成oc是不现实的,我们可以通过他的大概加上我们的猜测进行猜测。(我们之前已经找到.h文件了,再次找到了.m文件加上我们的项目经验来进行破解),比如我想查看一个对象怎么实现的

结合自己的经验进行分析。

动态库共享缓存

1.运用之前的方法,我们连接上我们的手机,查看UIKit这个库位置

但是我们找啊找 也找不到我们的UIKit这个库,那他到底去哪里了呢? 其实我们苹果从ios3.1开始就使用动态库共享缓存的机制。具体大致的意思是:他会把我们苹果工程师(我说的是苹果的,不是我们现在的普通程序员)写好的UIKit、CoreGraphics库等等集中放到手机中的一个地方,然后有dyld动态链接。那么他这样做的明显的一个好处就是:节省我们手机的内存,更大的提高开发效率。用一张图来解释就是:

那么他的动态库的缓存文件的在哪里? 他在

/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armX
顺便给大家说下ios架构的问题

现在我们来找一下UIKit库所在的位置,我们找到这个

我们可以看到很大的两个包一个是64位架构的,一个是armv7s架构的,我现在xcode是12的 大家根据上图,知道为什么没有armv7架构的了吧,因为5基本没人用了,xcode也基本对他不支持了。(顺便说一句,用ifunbox将这个包导入到mac,不用直接拖那样会少很多东西,点击这个包右键->拷贝到mac) 将第一个包拖进去安装好的Hopper Disassembler,直接输入UIkit,选择framework那个

然后直接next,点击ok

接下来就是漫长的等待中,直到他下面出现完成的语句。

但是如果你是Hopper Disassembler3的话 他是解析不出来的,Hopper Disassembler4是可以的。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:53:18  更:2022-10-08 20:54:57 
 
开发: 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/20 4:07:57-

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