mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 14:36:16 +01:00
Obfuscate service names
This commit is contained in:
@@ -48,6 +48,8 @@ x509-cert = { version = "0.2", optional = true, features = [
|
||||
"pem",
|
||||
], default-features = false }
|
||||
|
||||
obfstr = { version = "0.4", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
tokio = { version = "1.43", features = ["full"] }
|
||||
tun-rs = { version = "2.0.8", features = ["async_tokio"] }
|
||||
@@ -68,6 +70,7 @@ misagent = []
|
||||
mobile_image_mounter = ["dep:sha2"]
|
||||
location_simulation = []
|
||||
pair = ["chrono/default", "tokio/time", "dep:sha2", "dep:rsa", "dep:x509-cert"]
|
||||
obfuscate = ["dep:obfstr"]
|
||||
rsd = ["xpc"]
|
||||
syslog_relay = ["dep:bytes"]
|
||||
tcp = ["tokio/net"]
|
||||
|
||||
@@ -11,7 +11,7 @@ use log::warn;
|
||||
use opcode::{AfcFopenMode, AfcOpcode};
|
||||
use packet::{AfcPacket, AfcPacketHeader};
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
pub mod errors;
|
||||
pub mod file;
|
||||
@@ -62,7 +62,7 @@ pub struct DeviceInfo {
|
||||
|
||||
impl IdeviceService for AfcClient {
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.afc"
|
||||
obf!("com.apple.afc")
|
||||
}
|
||||
|
||||
/// Connects to the AFC service on the device
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
use plist::Dictionary;
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the AMFI service on the device
|
||||
pub struct AmfiClient {
|
||||
@@ -13,7 +13,7 @@ pub struct AmfiClient {
|
||||
impl IdeviceService for AmfiClient {
|
||||
/// Returns the amfi service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.amfi.lockdown"
|
||||
obf!("com.apple.amfi.lockdown")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the amfi service
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
//! # Features
|
||||
//! - `tunnel_tcp_stack`: Enables software TCP/IP tunnel creation using a virtual adapter. See the tcp moduel.
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
use byteorder::{BigEndian, WriteBytesExt};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -94,7 +94,7 @@ pub struct CoreDeviceProxy {
|
||||
impl IdeviceService for CoreDeviceProxy {
|
||||
/// Returns the name of the service used for launching the CoreDeviceProxy.
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.internal.devicecompute.CoreDeviceProxy"
|
||||
obf!("com.apple.internal.devicecompute.CoreDeviceProxy")
|
||||
}
|
||||
|
||||
/// Connects to the CoreDeviceProxy service
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
use log::{debug, warn};
|
||||
|
||||
use crate::{afc::AfcClient, lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{afc::AfcClient, lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for managing crash logs on an iOS device.
|
||||
///
|
||||
@@ -23,7 +23,7 @@ pub struct CrashReportCopyMobileClient {
|
||||
impl IdeviceService for CrashReportCopyMobileClient {
|
||||
/// Returns the name of the CrashReportCopyMobile service.
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.crashreportcopymobile"
|
||||
obf!("com.apple.crashreportcopymobile")
|
||||
}
|
||||
|
||||
/// Connects to the CrashReportCopyMobile service on the device.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//! iOS automatically closes service connections if there is no heartbeat client connected and
|
||||
//! responding.
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS device heartbeat service
|
||||
///
|
||||
@@ -20,7 +20,7 @@ pub struct HeartbeatClient {
|
||||
impl IdeviceService for HeartbeatClient {
|
||||
/// Returns the heartbeat service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.mobile.heartbeat"
|
||||
obf!("com.apple.mobile.heartbeat")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the heartbeat service
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
use plist::{Dictionary, Value};
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
use super::afc::AfcClient;
|
||||
|
||||
@@ -22,7 +22,7 @@ pub struct HouseArrestClient {
|
||||
impl IdeviceService for HouseArrestClient {
|
||||
/// Returns the name of the HouseArrest service as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.mobile.house_arrest"
|
||||
obf!("com.apple.mobile.house_arrest")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the HouseArrest service
|
||||
|
||||
@@ -8,7 +8,7 @@ use std::collections::HashMap;
|
||||
use log::warn;
|
||||
use plist::Dictionary;
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS installation proxy service
|
||||
///
|
||||
@@ -22,7 +22,7 @@ pub struct InstallationProxyClient {
|
||||
impl IdeviceService for InstallationProxyClient {
|
||||
/// Returns the installation proxy service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.mobile.installation_proxy"
|
||||
obf!("com.apple.mobile.installation_proxy")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the installation proxy service
|
||||
|
||||
@@ -7,7 +7,7 @@ use log::error;
|
||||
use plist::Value;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{pairing_file, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{obf, pairing_file, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS lockdown service
|
||||
///
|
||||
@@ -23,7 +23,7 @@ pub struct LockdownClient {
|
||||
impl IdeviceService for LockdownClient {
|
||||
/// Returns the lockdown service name as registered with the device
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.mobile.lockdown"
|
||||
obf!("com.apple.mobile.lockdown")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the lockdown service
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
use log::warn;
|
||||
use plist::Dictionary;
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS misagent service
|
||||
///
|
||||
@@ -22,7 +22,7 @@ pub struct MisagentClient {
|
||||
impl IdeviceService for MisagentClient {
|
||||
/// Returns the misagent service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.misagent"
|
||||
obf!("com.apple.misagent")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the misagent service
|
||||
@@ -219,4 +219,3 @@ impl MisagentClient {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
use log::debug;
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
use sha2::{Digest, Sha384};
|
||||
|
||||
#[cfg(feature = "tss")]
|
||||
@@ -30,7 +30,7 @@ pub struct ImageMounter {
|
||||
impl IdeviceService for ImageMounter {
|
||||
/// Returns the image mounter service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.mobile.mobile_image_mounter"
|
||||
obf!("com.apple.mobile.mobile_image_mounter")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the image mounter service
|
||||
|
||||
@@ -7,7 +7,7 @@ use chrono::{DateTime, NaiveDateTime};
|
||||
use plist::Dictionary;
|
||||
use tokio::io::AsyncWriteExt;
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS device OsTraceRelay service
|
||||
pub struct OsTraceRelayClient {
|
||||
@@ -18,7 +18,7 @@ pub struct OsTraceRelayClient {
|
||||
impl IdeviceService for OsTraceRelayClient {
|
||||
/// Returns the OsTraceRelay service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.os_trace_relay"
|
||||
obf!("com.apple.os_trace_relay")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the OsTraceRelay service
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//! Provides functionality for interacting with the SpringBoard services on iOS devices,
|
||||
//! which manages home screen and app icon related operations.
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS SpringBoard services
|
||||
///
|
||||
@@ -17,7 +17,7 @@ pub struct SpringBoardServicesClient {
|
||||
impl IdeviceService for SpringBoardServicesClient {
|
||||
/// Returns the SpringBoard services name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.springboardservices"
|
||||
obf!("com.apple.springboardservices")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the SpringBoard services
|
||||
@@ -104,4 +104,3 @@ impl SpringBoardServicesClient {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! iOS Device SyslogRelay Service Abstraction
|
||||
|
||||
use crate::{lockdown::LockdownClient, Idevice, IdeviceError, IdeviceService};
|
||||
use crate::{lockdown::LockdownClient, obf, Idevice, IdeviceError, IdeviceService};
|
||||
|
||||
/// Client for interacting with the iOS device SyslogRelay service
|
||||
pub struct SyslogRelayClient {
|
||||
@@ -11,7 +11,7 @@ pub struct SyslogRelayClient {
|
||||
impl IdeviceService for SyslogRelayClient {
|
||||
/// Returns the SyslogRelay service name as registered with lockdownd
|
||||
fn service_name() -> &'static str {
|
||||
"com.apple.syslog_relay"
|
||||
obf!("com.apple.syslog_relay")
|
||||
}
|
||||
|
||||
/// Establishes a connection to the SyslogRelay service
|
||||
|
||||
@@ -126,3 +126,17 @@ fn print_plist(p: &Value, indentation: usize) -> String {
|
||||
_ => "Unknown".to_string(),
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! obf {
|
||||
($lit:literal) => {{
|
||||
#[cfg(feature = "obfuscate")]
|
||||
{
|
||||
obfstr::xref!($lit)
|
||||
}
|
||||
#[cfg(not(feature = "obfuscate"))]
|
||||
{
|
||||
$lit
|
||||
}
|
||||
}};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user