1、Mac 上自带的一些命令工具

file:查看Mach-O的文件类型

file 文件路径

otool:查看Mach-O特定部分和段的内容

otool -L Mach-O文件 # 查看当前 Mach-O 文件的动态链接库。

lipo:常用于多架构Mach-O文件的处理

  1. 查看架构信息:lipo -info 文件路径
  2. 导出某种特定架构:lipo 文件路径 -thin 架构类型 -output 输出文件路径
  3. 合并多种架构:lipo 文件路径1 文件路径2 -output 输出文件路径

2、class-dump

导出 Mach-O 文件中的头文件,前提是 已脱壳。具体指令如下:

class-dump -H UCARSecurityDev -o heraders

UCARSecurityDev: Mach-O 文件,将导出的头文件放入文件夹(heraders)中。

3、Reveal

查看 APP UI布局的工具。 在设备上安装一个软件源,然后将 Mac 上的 RevealServer(help -- Show Reveal Library in finder -- iOS Library-RevealServer.framework -- RevealServer) 放入设备的 Library/RHRevealLoader 目录。

在设备上运行想要查看的 APP 即可。

4、MachOView

MachOView会出现 crash的情况,解决方案查看https://blog.csdn.net/lwb102063/article/details/110136891。

5、Hopper Disassenbler

拖入 Mach-O 文件,查看汇编代码的工具。

6、Cycript

这个是一个在越狱设备上使用的一个应用程序,通过Cydia安装,直接在设备上调试。有点像 Python,不一样的是直接在设备上调试。开发语言这是一个多语言的混合体,包括 OC、JS、Java 等。

官方文档介绍:cycript-manual

进入环境的命令:

  1. cycript
  2. cycript -p 进程ID
  3. cycript -p 进程名称

第一种方式,仅仅是进入 cycript 的环境,后面两个是直接进入对应程序的 cycript 的环境。

关键的快捷键:取消输入:Ctrl + C退出:Ctrl + D 与 清屏:Command + R

通过 ps 命令可以列出当前设备的所有进程:

  1. ps -A | grep key
  2. ps aux

7、Clutch 与 dumpdecryted

都是脱壳工具: Clutch 与 dumpdecrypted。

7.1 Clutch

列出已经安装的 APP:

Clutch -i

列出来的一般都是加壳的 App。

进行加壳操作:Clutch -d APP序号或 BundleId

Clutch -d com.app.dev

具体步骤可以擦考

脱壳: 通过 Clutch -i 列出需要脱壳的应用列表:

Installed apps:
1:   神州优驾(U+)司机端 <com.szzc.driver>
2:   腾讯课堂 - 在线职业培训教育平台 <com.tencent.edu>
3:   QQ <com.tencent.mqq>
4:   酷听音乐 - 歌曲音乐听你想听 <com.liyancong.kuq>
5:   神州租车-神州共享车重磅上线 <com.szzc.szzc>
6:   ボイスレコーダー-無料ボイスメモ <com.leqimea.recorderAudio>
7:   优驾司机出租车 <com.szzc.tdriver>
8:   爱思助手 <com.diary.mood>

输入APP序号或者Bundle Id进行脱壳操作:Clutch -d APP序号或BundleId:Clutch -d com.liyancong.kuq, 如下:

Zipping Kumi2.app
ASLR slide: 0x100010000
Dumping <Kumi2> (arm64)
Patched cryptid (64bit segment)
Writing new checksum
DONE: /private/var/mobile/Documents/Dumped/com.liyancong.kuq-iOS8.0-(Clutch-2.0.4).ipa
Finished dumping com.liyancong.kuq in 2.4 seconds

DONE: /private/var/mobile/Documents/Dumped/com.liyancong.kuq-iOS8.0-(Clutch-2.0.4).ipa 就是脱壳结束的 ipa 文件。

7.2 dumpdecryted

下载原代码后执行make指令,得到 dumpdecryted.dylib, 然后 scp 到 iPhone 设备的 /usr/root 目录。

脱壳命令:

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib macho.app/macho

结束后生成一个 macho.decrypted 就是脱壳后的 macho 文件。

8、Theos

能生成 tweak 项目的一个工具,代码在 这里。

通过如下命令进行 clone:

git clone --recursive https://github.com/theos/theos.git $THEOS

其中 $THEOS 是在 .bash_profie 中配置的变量:

export THEOS=~/theos
export PATH=$THEOS/bin:$PATH

配置之后,执行如下命令起效:

source ~/.bash_profile

clone 成功之后,通过 nic.pl 命令创建一个 tweak 项目。 在 nic.pl 之后选择 11 即可。

创建之后,手动到中添加这两个变量 THEOS_DEVICE_IP 与 THEOS_DEVICE_PORT,也可以将其设置成全局的。

在 Tweak.xm 中,代码编写结束之后,在终端分别执行这两条精灵即可:

make package (打包)
make install (安装)

如果有错误,修改即可。

安装之后再设备上就会有对应的 dylib 与 plist 文件。

可以参考:目录结构 、环境变量 与 Logos 语法。

9、debugserver & lldb

程序调试的一个工具,对于一个真机调试过的设备来说,都会有这个,会在第一次进行联调的时候,Xcode 默认安装到设备。一般是安装在:/Developer/usr/bin/debugserver  这个过程就应该在安装。

只有安装成功之后才能进行调试,一旦这个文件没有,那么真机调试的时候直接报错,报错信息如下: 

在越狱设备上经常出现这样的情况,无原无故的就没有了,暂时的解决方案是换一台重来没有连接过这个设备的电脑,连接安装即可。这样会重新安装 debugserver。我也不知道为什么一定要换一台电脑才能重新安装,暂时还没有找到清空的方法(可能在设置中的开发者中能清楚, 还每一试过),非要找一台新电脑。

一般要使用这个工具来进行调试的话,只能在越狱的设备上。

9.1 添加额外的权限

在 Xcode 调试的过程中是使用 /Developer/usr/bin/debugserver,如果是调试飞 Xcode 项目的时候,这个工具缺少一定的权限,所以需要单独拎出来添加其它权限后单独使用。

将 /Developer/usr/bin/debugserver 拖到电脑上,通过如下命令获取现有权限:

ldid -e debugserver > debugserver.entitlements

权限文件(debugserver.entitlements)中的内容如下: 

需要在添加两个权限:

get-task-allow
task_for_pid-allow

添加之后再重新设置新的权限:

ldid -Sdebugserver.entitlements debugserver

这样 debugserver 就有了更多的权限,直接将其拖到设备的 /usr/bin目录下就可以使用。可能需要执行一下:chmod +x /usr/bin/debugserver

以上的签名操作,也可以使用 codesign

codesign -d --entitlements - debugserver
codesign -fs- --entitlements debugserver.entitlements debugserver

还有一种比较权威的方式是直接将 SpringBoard 的权限直接赋值给 debugserver

9.2 开始使用

登录设备之后,执行这个命令:

debugserver *:port -a pid

port: 休闲的端口即可,要与 mac 连接的对应。 pid :可以是进程 ID 或者进程名称。

回到 Mac 启动 lldb,然后执行:

process connect connect://ip:port

这里的 ip 如果是 usb 登录的话就直接写 localhost,写上对应映射的 port 即可。如果使用 WIFI 的话,ip 是设备的 ipport 是 debugserver 的那个 port

当这个命令成功之后,会发现设备 卡死 了。这是正常的现象,在 lldb 执行一下 c 就可以了。这个指令的意思是跳过当前的断点,貌似一旦连接成功就会有一个默认的断点。

IOS逆向需用到的工具汇总相关推荐

  1. [车联网安全自学篇] Android安全之常用逆向工具汇总

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 博主同学不定期更新工具集,敬请期待- - 0x01 静态分析 ...

  2. iOS逆向 开发工具

    iOS逆向开发交流群 iOS逆向开发所需要的一些工具集合

  3. iOS逆向实战与工具使用(微信添加好友自动确认)

    iOS逆向实战与工具使用(微信添加好友自动确认) 原文链接 源码地址 WeChatPlugin-iOS Mac OS 版微信小助手(远程控制.消息防撤回.自动回复.微信多开) 一.前言 本篇主要实现在 ...

  4. ios逆向工具MonkeyDev简介

    MonkeyDev简介 虽然是美国的苹果开发的操作系统,但是要论越狱iPhone和逆向分析来说,那国内远胜于米国了,可能是国内很多相关的灰色产业链吧.在之前,我们想动态调试一个没有源码的应用程序,通常 ...

  5. iOS逆向之脱壳工具creakerXI+,最简单、最适合新手的脱壳工具

    在学习iOS逆向中,脱壳是必备技能之一,在网上看教程有使用 Clutch 和 dumpdecrypted  但是,不知道 是我操作问题,还是手机版本,以及APP版本更新问题 尝试了几次,都无法成功脱壳 ...

  6. ios逆向越狱手机必备工具篇

    1.手机越狱 ps:越狱前用xcode调试手机断点一次.这样手机里就会生成以后debugServer文件. 手机版本ios12.4 https://www.abcydia.com/read-16031 ...

  7. 模型转换、模型压缩、模型加速工具汇总

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 编辑丨机器学习AI算法工程 一.场景需求解读   在现实场景中,我们经常会遇到这样一个问题,即某篇论 ...

  8. 【iOS逆向与安全】iOS插件开发光速入门

    前言 经过之前的学习,相信你已经能熟练的使用Frida-trace.IDA Pro等逆向工具.不过,仅仅到这肯定是不够的.接下来,学会把你逆向的结果打包成插件并运行,那iOS逆向,你也就真正的入门了. ...

  9. linux硬件性能,Linux运维知识:Linux下的硬件性能测试工具汇总

    本文主要向大家介绍了Linux运维知识的Linux下的硬件性能测试工具汇总,通过具体的内容向大家展现,希望对的大家学习Linux运维知识有所帮助. 在购买计算机之后,我们都希望能充分了解它们的硬件性能 ...

  10. BAT 开发工具汇总

    BAT 程序员们常用的开发工具汇总 阿里篇 一.Java 线上诊断工具 Arthas 使用场景: 使用教程: 基础教程: 进阶教程: 开源地址: 二.IDE 插件 Cloud Toolkit 使用场景 ...

最新文章

  1. pb 窗口数据修改sql_Snowflake将成为在云中变得更好的数据仓库
  2. MSE | 阿里巴巴云原生网关三位一体的选择与实践
  3. 如何从新开发的程序中提炼服务
  4. Mysql 数据库默认值选 ‘‘“ 、Null和Empty String的区别
  5. css3实现的精美菜单
  6. MVC LinqToSql Json DbComparisonExpression 需要具有可比较类型的参数。
  7. WordPress出现循环重定向解决办法
  8. vscode-代码文件对比
  9. CTex下载地址和方法
  10. [转载]Geronimo 叛逆者,第 8 部分: 未来的 Apache Geronimo
  11. python矩阵运算算法_Python常用库Numpy进行矩阵运算详解
  12. ACM进阶大一到大三
  13. 1.Android稳定性测试
  14. 如何利用在线工具更改寸照底色
  15. python中forward的参数_ip_forward参数对Linux内核转发影响分析
  16. 淘宝无货源店群,新手开店怎么入门?掌握这几点让你少走弯路!
  17. 大智慧财汇数据库l2接口的核心是什么?
  18. Linux打印口/LPT口出厂测试工具与使用说明
  19. getWindow().getDecorView().setSystemUiVisibility(...)设置状态栏属性
  20. Getaverse,走向 Web3 的远方桥梁

热门文章

  1. fgo服务器中断020202,fgo2.6版本更新 8月18日更新维护内容一览
  2. android webview最新版下载,AndroidWebView最新版
  3. html控制手机回退键,向日葵手机控制手机全程指导
  4. 版式设计——网页排版
  5. mcgs rtu方式通讯两台施耐德ATV312变频器示例 ,通讯实现触摸屏控制监控变频器,中间不需要plc
  6. win10专业版激活方法——亲测可行!!!
  7. win7电脑误删鼠标键盘驱动_鼠标键盘,教您怎么解决键盘和鼠标失灵的问题
  8. Plugin Alliance DS Audio THORN for Mac(电子音乐合成器插件) v1.2.0破解版
  9. Sqlmap使用教程【个人笔记精华整理】
  10. 10款超牛Vim插件,爱不释手了