iOS逆向的一些注意点

前言:这是我写的第一篇博客

我之前一直就想写一些博客,来记录一下平常学习到的知识,但是一直怕自己写的不好,所以一直没有写.我写的不好或者错误的地方还请大家多多指教,我会及时改正.

关于class-dump

class-dump的作用就是将Mach-O文件的class信息给导出来,生成对应的.h头文件.
官方网址
但是class-dump只能导出Objective-c编写的头文件,如果是Swift编写的头文件就会报错,如下图所示

image.png

解决方法就是下载第三方写好的支持导出Swift的class-dump改进版,下载完成从新拖进/usr/bin目录即可使用.下载地址

关于脱壳

脱壳工具:请各位按照手机越狱版本自行选择脱壳工具
Clutch、dumpdecrypted(iOS11以下系统)
bfinject(iOS11及以上版本)
CrackerXI(iOS11~iOS13)
但是我遇到了一个问题,就是利用iFunBox从手机上将脱壳后的ipa文件拖入到Mac上的时候,解压的时候无法解压,见图:

WX20210106-074100@2x.png

我反复试了好多次,都是同样的结果.我在终端用file命令查看脱壳文件
如下:


WX20210106-074703@2x.png

如果是正确的ipa文件用file命令查看如下:


WX20210106-075052@2x.png

我想是不是我直接拖拽的问题,然后使用scp命令试试
scp -P 10086 root@localhost:目标文件路径 电脑存储路径
目标文件名尽量简洁,不要有特殊字符或者中文字符
10086: 连接ssh映射的端口
root: 用户名
localhost: 手机本机ip地址(也可写127.0.0.1)

这样使用scp命令导出的脱壳文件就可以正常使用了

关于class-dump导出的.h头文件

我们利用cycript或者Reveal查看需要hook的类,然后查看导出的.h头文件中需要hook的方法.但是有时候在导出的头文件中找不到我们要hook的类.以某视频软件为例,我需要hook QNBPlayerVideoAdsViewController这个类,但是我在导出的头文件中找不到这个类.原因是我们导出的是主模块的头文件,我们需要hook的类可能在某个动态库里,经过查找QNBPlayerVideoAdsViewController这个类在QNBAutomatic这个动态库里.我们依然可以使用class-dump导出动态库的头文件,因为动态库也属于Mach-O类型的文件.

关于LLDB动态调试

在利用debugserver动态调试App时,报错

Failed to get connection from a remote gdb process.

解决方式:删除debugserver 的以下权限,重新签名。
以下为要删除的权限

com.apple.security.network.server
com.apple.security.network.client
seatbelt-profiles
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容