From 47f553ed27b1cc4ccb81acff880762ca13d7aa63 Mon Sep 17 00:00:00 2001 From: Stossy11 Date: Fri, 3 Oct 2025 09:09:18 +1000 Subject: [PATCH] Update new TunnelProv --- .../UserInterfaceState.xcuserstate | Bin 73791 -> 75777 bytes TunnelProv/PacketTunnelProvider.swift | 73 +++++------------- 2 files changed, 18 insertions(+), 55 deletions(-) diff --git a/StosVPN.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/StosVPN.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate index a15ee11f53278055c94f1f47cc4e3ac5de5d0a08..269213af626875c6a328691990427cb48dbb79cf 100644 GIT binary patch literal 75777 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 M&a1uE|DDSF2Spz}LjV8( literal 73791 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 diff --git a/TunnelProv/PacketTunnelProvider.swift b/TunnelProv/PacketTunnelProvider.swift index 7b3f533..8d7c352 100644 --- a/TunnelProv/PacketTunnelProvider.swift +++ b/TunnelProv/PacketTunnelProvider.swift @@ -33,68 +33,31 @@ class PacketTunnelProvider: NEPacketTunnelProvider { settings.ipv4Settings = ipv4 setTunnelNetworkSettings(settings) { error in - if error == nil { - self.readPackets() - } - completionHandler(error) + guard error == nil else { return completionHandler(error) } + self.setPackets() + completionHandler(nil) } } - override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) { - completionHandler() - } - - override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)?) { - completionHandler?(messageData) - } - - override func sleep(completionHandler: @escaping () -> Void) { - completionHandler() - } - - override func wake() {} - - private func readPackets() { - packetFlow.readPackets { packets, protocols in - var output = [Data](repeating: Data(), count: packets.count) - - for (i, packet) in packets.enumerated() { - guard protocols[i].int32Value == AF_INET, packet.count >= 20 else { - output[i] = packet - continue + func setPackets() { + packetFlow.readPackets { [self] packets, protocols in + let fakeip = self.fakeIpValue + let deviceip = self.deviceIpValue + var modified = packets + for i in modified.indices where protocols[i].int32Value == AF_INET && modified[i].count >= 20 { + modified[i].withUnsafeMutableBytes { bytes in + guard let ptr = bytes.baseAddress?.assumingMemoryBound(to: UInt32.self) else { return } + let src = UInt32(bigEndian: ptr[3]) + let dst = UInt32(bigEndian: ptr[4]) + if src == deviceip { ptr[3] = fakeip.bigEndian } + if dst == fakeip { ptr[4] = deviceip.bigEndian } } - - output[i] = self.processPacket(packet) } - - self.packetFlow.writePackets(output, withProtocols: protocols) - self.readPackets() + self.packetFlow.writePackets(modified, withProtocols: protocols) + setPackets() } } - - private func processPacket(_ packet: Data) -> Data { - var bytes = [UInt8](packet) - - let srcIP = UInt32(bigEndian: bytes.withUnsafeBytes { $0.load(fromByteOffset: 12, as: UInt32.self) }) - let dstIP = UInt32(bigEndian: bytes.withUnsafeBytes { $0.load(fromByteOffset: 16, as: UInt32.self) }) - - if srcIP == deviceIpValue { - let replacement = fakeIpValue.bigEndian - withUnsafeBytes(of: replacement) { bytes.replaceSubrange(12..<16, with: $0) } - } - if dstIP == fakeIpValue { - let replacement = deviceIpValue.bigEndian - withUnsafeBytes(of: replacement) { bytes.replaceSubrange(16..<20, with: $0) } - } - - bytes.swapAt(12, 16) - bytes.swapAt(13, 17) - bytes.swapAt(14, 18) - bytes.swapAt(15, 19) - - return Data(bytes) - } - + private func ipToUInt32(_ ipString: String) -> UInt32 { let components = ipString.split(separator: ".") guard components.count == 4,