移动端安全 windows笔记本操作iphone探索
北海 发表于 美国 移动安全 386浏览 · 2024-11-02 08:13

忘了在哪看到一句话:使用windows系统是造成安全学习路上困苦的一大因素。最近我有所体会,特别是搞移动端,iot,ubuntu用起来是真的顺手。但是话说回来,台式机不是说买就买的,笔记本的操作系统也很难说换就换,毕竟咱家不是什么大富大贵家庭(QAQ)。于是虚拟机成为了首选。但是如果把虚拟机装在移动硬盘上,高强度的读写会很快缩短硬盘的寿命,到后期读写速度骤降(已经废了两个了呜呜。。),而且vmware workstation在开启关闭操作大型虚拟机的时候常有卡顿,感jio不够丝滑。这也便有了接下来以操作iphone为主题的wsl的探索尝试

使用设备

  • iphone6


购买途径和越狱不是本文主题,这里就不赘述了(

  • thinkpad14笔记本 win11(win10也行)

  • 三合一苹果type-c安卓手机数据线

探索过程

想要操作iphone,比较推荐的就是libimobiledevice库及依赖于它的一些开源工具,这些工具在windows上编译较为麻烦(会给不熟悉windows编译的uu带来烦恼)。但对于Ubuntu,Debian来说,安装它们只是几行命令的事。下面尝试使用wsl来实现对iphone的操作

wsl

WSL(Windows Subsystem for Linux)即Windows子系统for Linux,是微软推出的一个兼容层,它允许在Windows操作系统上原生运行Linux二进制可执行文件
官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/

wsl的优点:

  • WSL资源占用少。它不需要像VM Workstation那样模拟完整的硬件环境,直接利用Windows系统资源
  • WSL启动快。由于不需要加载完整的虚拟机操作系统环境,WSL中的Linux发行版可以快速启动,通常在几秒钟内就能进入可用状态。
  • 文件系统集成好。WSL可以很方便地访问Windows文件系统中的文件,例如在WSL的Ubuntu系统中,可以直接通过/mnt/c(假设Windows系统盘是C盘)这样的路径访问Windows下的文件。反之,在Windows中也可以访问WSL 文件系统中的文件。

查看wsl版本


这里显示我系统上装的是WSL2。WSL2与WSL1相比有重大改进,其中最主要的是WSL2引入了真正的Linux内核,运行在轻量级虚拟机中,提供了更好的性能和兼容性

下面来安装Linux子系统

首先在Win11开始菜单搜索“windows 功能”,打开功能配置界面,勾选Linux子系统以及虚拟机平台2个选项。配置后,需要按照提示,重启电脑

(不过其实没勾选使用于linux的yindows子系统这个选项后续也是能用的)

安装wsl,这里我选择Ubuntu-22.04

wsl --install Ubuntu-22.04

给予Windows权限访问虚拟机,将Ubuntu22.04这个WSL子系统的默认用户设置为"root"。

C:\Users\{用户名}\AppData\Local\Microsoft\WindowsApps\ubuntu2204.exe config --default-user root

执行可以看到已经安装完了

wsl --list --all

这时ubuntu系统装在C盘,显然是不妥的,没准操作了几个月C盘就爆红了(
于是我将其迁入我的E盘
关闭当前所有运行的wsl

wsl --shutdown

导出要迁移的wsl

wsl --export Ubuntu-22.04 E:/wsl/ubuntu.tar

卸载C盘的wsl

wsl --unregister Ubuntu-22.04

然后将导出的文件放到需要保存的地方,进行导入即可

wsl --import Ubuntu-22.04 E:\wsl\ubuntu22.04\ E:\wsl\ubuntu.tar

之后在命令行运行

wsl

即可进入linux子系统

安装libimobiledevice库

apt-get update
add-apt-repository ppa:pmcenery/ppa
apt-get install libimobiledevice-utils

usbipd

接下要解决的问题就是如何将WSL(ubuntu)连接windows的USB设备
经常使用vmware workstation的uu应该都知道,该平台下若有串口通信需求,有专门的按键功能切换很方便。
但是WSL是命令行的操作,没有这方面的功能。如果仅仅将iphone通过数据线连接windows,在WSL中是找不到设备的

因此要用到 usbipd
usbipd是一个工具,通常用于在Windows和WSL(Windows Subsystem for Linux)之间共享USB设备。
可以使用Windows包管理器Winget来安装"dorssel.usbipd-win"的软件包

winget install --interactive --exact dorssel.usbipd-win

运行后,系统将

  • 安装一个名为 “usbipd” 的服务,在 Windows 的 “服务” 应用中可以查看其状态,它的显示名称是 “USBIP 设备主机”。
  • 安装命令行工具 “usbipd”,并且这个工具的位置会被添加到系统的 PATH 环境变量中,方便在任何位置通过命令行调用。
  • 安装一个名为 “usbipd” 的防火墙规则,这个规则允许所有本地子网连接到该服务。你可以修改这个防火墙规则来进一步调整访问控制。

安装好后在命令行可以执行

usbipd list

查看连接到接到windows上的USB设备

在附加 USB 设备之前,使用命令usbipd bind先共享设备(如果设备显示Not Shared则必须要做),像上图是要共享iphone,具体命令如下

usbipd bind --busid 2-2

然后就可以附加 USB 设备了(注意,只要 USB 设备连接到 WSL,Windows 将无法使用它)
我这里执行

usbipd attach --wsl -b 2-2

但是出现了如下的报错


出现这个问题的原因是设备被占用了
我这里首先推出爱思助手,然后打开计算机管理,选择事件查看器。在事件查看器里面的左侧点击"Windows 日志",选择"系统"。在右侧列出的近期事件中,找到最新的一个 “来源” 为"Kernel-PnP"的事件,并在这个事件上单击一下。

kill了这个进程

taskkill /f /pid 5852

再次尝试附加,发现成功了

在WSL中查看确认连接成功

libimobiledevice

获取设备信息

idevice_id  获取当前连接设备UUID
idevicename   查看当前连接设备名称
idevicescreenshot  从连接的设备获取屏幕截图
idevicesetlocation [OPTIONS] -- <LAT> <LONG>  根据经纬度模拟定位
ideviceinfo  查看手机设备详情列出全部相关信息
idevicesyslog  查看系统日志

安装卸载app/ipa

apt-get install ideviceinstaller
ideviceinstaller  -i xxx.ipa 安装软件
ideviceinstaller -U [bundleID]卸载应用
ideviceinstaller -l 查看安装软件
ideviceinstaller -g [bundle_id] [path] 根据压缩包升级app
ideviceinstaller -o export -i [bundle_id] -o [PATH] 根据路径备份app
ideviceinstaller -r 从备份中恢复app

ifuse

ifuse是一个用于在类Unix系统(如 Linux 和 macOS)上挂载iOS设备文件系统的工具
安装

apt install ifuse

相关命令

ifuse [挂载点]               挂在媒体文件目录
fusermount -u [挂载点]            卸载挂载点
ifuse --documents [要挂载的应用的bundleID] [挂载点]     挂载某个应用的documents目录

参考文章

https://www.52pojie.cn/thread-1769605-1-1.html
https://learn.microsoft.com/zh-cn/windows/wsl/install
https://blog.csdn.net/weixin_44733606/article/details/131659968
https://www.cnblogs.com/likkoliu/p/18157046

0 条评论
某人
表情
可输入 255