本帖最后由 sairen139 于 2021-10-30 09:29 编辑
发现rndis驱动能在无网络的情况下手机电脑互传文件,PE是否可以完全抛弃MTP减少体积
测试了一下rndis组件所需文件很小但完全能在iphone上发送文件给windows电脑或PE,网友更是测试说安卓手机插上电脑完全可以利用rndis在无网络情况下互相传输文件,因为rndis驱动会派发不同的IP地址分别给手机和电脑。这样利用rndis派发的不同的IP地址就等于两个设备间组建了局域网,完全可以为所欲为!可以利用smb协议共享文件夹,也可以利用HFS建立服务端把电脑盘完全共享出来,这样手机上就能在浏览器上传下载任何文件!诸如此类rndis的利用方法多种多样。
关于RNDIS驱动iPhone的具体原理,我找到了详解以iphone作为热点时ios程序中的UDP广播地址
iPhone 开启热点后,会启用一个 172.20.10.0/28 的子网, 也就是最多15个ip地址,自己的地址是172.20.10.1, 广播地址是 172.20.10.15 ,不是传统的255.255.255.255. 需要注意,默认开启的socket是不支持广播的,需要使用setsockopt函数开启广播能力. 推荐使用GCDAsyncUdpSocket库进行操作,十分方便.
PS:如此一来pe中的MTP组件功能似乎完全多余,可以去掉mtp组件减小pe的体积!
RNDIS组件只需5个文件如下:
Windows\inf\netrndis.inf Windows\inf\rndiscmp.inf Windows\inf\wceisvista.inf Windows\System32\drivers\RNDISMP.sys Windows\System32\drivers\usb8023.sys
|