砸壳工具frida-ios-dump使用(动态砸壳)

news/2024/7/20 22:24:27 标签: iOS, 逆向, iOS逆向

一、frida配置与使用

原理:通过注入js实现内存dump,再由Python自动拷贝到电脑生成ipa包。

下载:frida-ios-dump

创建dump文件夹,移动到opt/dump目录下,修改dump.py中的user、password、host、port如下:

User = 'root'
Password = 'alpine'
Host = 'localhost'
Port = 2222

二、越狱手机配置

1、打开cydia添加源:源地址 并在搜索中下载安装frida

2、安装完成后在Mac端执行frida-ps -U查看是否可以工作。

三、Mac配置

1、安装Python

brew install python

2、安装wget

brew install wget

3、安装pip:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

4、安装frida

sudo pip install frida –upgrade –ignore-installed six

5、安装脚本依赖环境

sudo pip install -r requirements.txt --upgrade

6、安装usbmuxd与手机通信

brew install usbmuxd

7、设置别名,设置后可以在任意路径下使用别名执行

vim ~/.bash_profile

在尾部添加如下:

alias dump.py="/opt/dump/frida-ios-dump-master/dump.py"

执行代码使生效

source ~/.bash_profile

8、通过USB使用ssh连接设备,将22映射到电脑上的2222端口

iproxy 2222 22

9、另开终端加入连接 密码为设备的登录密码alpine,需要保持连接

ssh -p 2222 root@127.0.0.1
或 ssh root@127.0.0.1 -p 2222

10、再开终端开始砸壳微信,命令如下:

dump.py 微信

脚本会将破壳后的ipa包获取到当前路径,在哪个路径执行将会获取到哪个路径。
端口映射:

iproxy.png

连接设备:

connect.png

开始砸壳:

getipa.png

其他命令:

frida-ps -U -a //获取手机所有启动的应用
dump.py -l //获取手机所有安装的应用
dump.py xxx //对xxx应用砸壳

四、开发中遇到的问题

1、报错信息

Caught exception: <class 'paramiko.ssh_exception.SSHException'>: Error reading SSH protocol banner[Errno 54] Connection reset by peer

打开微信或重新插入USB接口,在执行以上命令即可。

2、报错信息

ERROR: frida-tools 7.2.0 has requirement prompt-toolkit<4.0.0,>=3.0.3, but you'll have prompt-toolkit 2.0.10 which is incompatible

解决:

cd /opt/dump/frida-ios-dump
sudo pip uninstall prompt-toolkit
sudo pip install prompt-toolkit==1.0.6, //重新安装其他版本

再执行

sudo pip install -r requirements.txt --ignore-installed six
frida-ps -U

修改完成。

3、dump.py 微信 执行报错

need gadget to attach; its default location is: /Users/hibo/.cache/frida/gadget-ios.dylib

解决:
在越狱手机Cydia应用中选择相应的Frida安装包,如:iPhone6s(11.4.1)选择Frida for pre-A12 devices

4、iproxy 2222 22 执行报错

dyld: Library not loaded: /usr/local/opt/libplist/lib/libplist.3.dylib
  Referenced from: /usr/local/bin/iproxy
  Reason: image not found

注意更新插:

执行:brew install usbmuxd

提示:libusbmuxd 2.0.1 is already installed To upgrade to 2.0.2, runbrew upgrade libusbmuxd`

执行:brew upgrade libusbmuxd即可解决

5、缺少库

如:ModuleNotFoundError: No module named 'paramiko'ModuleNotFoundError: No module named 'scp'

解决:
重新安装:pip install paramikopip install scp,缺少什么安装即可

6、TypeError: can’t concat str to bytes

不能将字节类型值赋值给str类型的变量,需要将字节逆编码后再赋值。

解决: /opt/dump/frida-ios-dump-master/dump.py文件中将if IS_PY2修改为if IS_PY2 or isinstance(baseName, bytes),判断baseName是否为字节类型(进行逆编码)

def progress(filename, size, sent):
        baseName = os.path.basename(filename)
#        修改处
#        if IS_PY2:
        if IS_PY2 or isinstance(baseName, bytes):
            t.desc = baseName.decode("utf-8")
        else:
            t.desc = baseName
        t.total = size
        t.update(sent - last_sent[0])
        last_sent[0] = 0 if size == sent else sent

7、unable to attach to the specified process

手机iPhone6s14.4dump报错如下:

desktop dump.py 微信
Start the target app 微信
unable to attach to the specified process

8、dump.py xxx砸壳无反应
解决过程:首先查看手机所有进程frida-ps -U或所有应用frida-ps -U -a,发现查询失败报错如下:

 ✘ ⚙ HB  yahibo  frida-ps -U -a
Traceback (most recent call last):
  File "/usr/local/bin/frida-ps", line 5, in <module>
    from frida_tools.ps import main
ModuleNotFoundError: No module named 'frida_tools'

缺少frida_tools模块,使用pip安装:

sudo pip install frida_tools

安装成功后问题便解决,使用dump.py xxx进行砸壳即可。

解决:
打开Cydia应用,搜索Frida选择Frida for 32-bit devices安装后,重新dump即可。

###《四、砸壳工具Clutch使用(动态砸壳)》


http://www.niftyadmin.cn/n/1737852.html

相关文章

TableViewDataSource拆分

在项目中tableview列表经常使用到&#xff0c;所以在创建视图时&#xff0c;我们会在每个使用到tableview的页面创建tableview并且实现代理方法&#xff0c;代理方法包括组数&#xff0c;行数&#xff0c;cell返回&#xff0c;行高、头视图等。方法很多&#xff0c;每次都要重写…

GNU的__attribute__机制

GNU C的一大特色&#xff08;却不被初学者所知&#xff09;就是__attribute__机制。__attribute__可以设置函数属性&#xff08;Function Attribute&#xff09;、变量属性&#xff08;Variable Attribute&#xff09;和类型属性&#xff08;Type Attribute&#xff09;。__att…

JSON Hijacking的利用

from:http://www.7747.net/Article/200812/30705.html JSON Hijacking有什么作用&#xff0c;正如黑哥所说&#xff0c;可以CSRF得到用户隐私数据:)。原理最后介绍&#xff0c;先来看个攻击例子&#xff0c;拿饭否来做个实验。首先我们看这&#xff1a;<a href"http://…

KVC/KVO实现原理

一、kvo实现原理 一个对象的属性被观察时系统动态创建了一个子类&#xff0c;并且改变了原有对象的isa指针指向&#xff0c;指向动态创建的子类&#xff0c;子类中重写了被观察属性的set方法&#xff0c;在使用点方法和set方法给属性赋值时&#xff0c;最终调用的是子类中的se…

如何通过socket进行大量返回信息的读取

我们知道&#xff0c;TCP协议本身一个流的协议&#xff0c;信息之间是没有边界的&#xff0c;均是字节为单位的流&#xff0c;在使用php进行读取socket返回的时候&#xff0c;根据我们的应用场景&#xff0c;可能只需要读取一行返回即可&#xff0c;此时我们非常简单调用如下AP…

anti-CSRF Token布署时需要注意的一点问题

from : http://hi.baidu.com/aullik5/blog/item/b2cdb4444d061c21cffca3a5.html 防范CSRF攻击的方案有许多种&#xff0c;有用验证码来防的(tenfy:方案比较重&#xff0c;适合于敏感数据的变更类操作&#xff0c;对一般查询信息类不是很合适)&#xff0c;更多的是生成一个随机的…

runtime消息发送机制-动态添加方法

一、消息发送机制 主要使用objc_msgSend()函数&#xff1a; objc_msgSend(id _Nullable self, SEL _Nonnull op, …)第一个参数self&#xff1a;某一个对象或者某个类&#xff08;类也是一个对象一个指针&#xff09;&#xff1b; 第二个参数sel&#xff1a;函数指针指向第…

Bypass Preventing CSRF

from : http://superhei.blogbus.com/logs/13463505.html CSRF在过去的n年(n>2)一直都火,在bh/defcon/owasp等会议上多次探讨CSRF的攻防[具体你可以看看以往的那些pp].前段时间PLAYHACK.net上发表了一个总结性的pp:Preventing CSRF,然而CSRF是很难彻底防止的,这个也是我说CS…