diff --git a/frida_client/src/client.rs b/frida_client/src/client.rs index 1b42223..2433a57 100644 --- a/frida_client/src/client.rs +++ b/frida_client/src/client.rs @@ -68,8 +68,10 @@ pub mod general { loop { match dev_reader.read(&mut buf).await { Ok(n) => { - //info!("Read from tun."); + #[cfg(not(target_os = "macos"))] dx.send(buf[..n].to_vec()).unwrap(); + #[cfg(target_os = "macos")] + dx.send(buf[4..n].to_vec()).unwrap(); }, Err(_e) => { /*error!("Read failed {}", e);*/ } } @@ -87,6 +89,8 @@ pub mod general { rr = rx.recv() => { if let Some(bytes) = rr { //info!("Write to tun. len={:?}", bytes.len()); + #[cfg(target_os = "macos")] + let bytes = [vec![0, 0, 0, 2], bytes].concat(); if let Err(e) = dev_writer.write(&bytes).await { //error!("Writing error: {:?}", e); @@ -340,7 +344,7 @@ pub mod desktop { cmd("route", &["add", "-host", endpoint_ip, &gateway.unwrap()]); - cmd("route", &["change", "default", "-interface", "utun3"]); // todo: change that + cmd("route", &["change", "default", "-interface", "utun3"]); // TODO: change that cmd("route", &["add", "-host", endpoint_ip, &gateway.unwrap()]); } diff --git a/frida_core/src/mac_tun.rs b/frida_core/src/mac_tun.rs index 466fc65..9021512 100644 --- a/frida_core/src/mac_tun.rs +++ b/frida_core/src/mac_tun.rs @@ -1,9 +1,10 @@ +use std::fs::File; +use std::io::{Read, Write}; use std::os::fd::{AsRawFd, FromRawFd}; use std::{ffi::CString, process::Command}; use std::sync::Arc; use std::error::Error; use log::info; -use tokio::fs::File; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use crate::device::AbstractDevice; @@ -49,12 +50,12 @@ pub struct DeviceReader { impl DeviceWriter { pub async fn write(&mut self, buf: &Vec) -> Result> { - Ok(self.writer.write(buf).await?) + Ok(self.writer.write(buf)?) } } impl DeviceReader { pub async fn read(&mut self, buf: &mut Vec) -> Result> { - Ok(self.reader.read_buf(buf).await?) + Ok(self.reader.read(buf)?) } } \ No newline at end of file