public static IMinaryState GetMinaryEventBase(MinaryMain minaryObj) { MinaryState state = DetermineSystemState(); if ((state & MinaryState.NetworkMissing) == MinaryState.NetworkMissing) { return(new NetworkMissing(minaryObj)); } else if ((state & MinaryState.WinPcapMissing) == MinaryState.WinPcapMissing) { return(new WinPcapMissing(minaryObj)); } else if ((state & MinaryState.NotAdmin) == MinaryState.NotAdmin) { return(new NotAdmin(minaryObj)); } else if ((state & MinaryState.ApeBinaryMissing) == MinaryState.ApeBinaryMissing) { return(new ApeNotInstalled(minaryObj)); } else if ((state & MinaryState.SnifferMissing) == MinaryState.SnifferMissing) { return(new SnifferNotInstalled(minaryObj)); } else if ((state & MinaryState.HttpProxyMissing) == MinaryState.HttpProxyMissing) { return(new HttpReverseProxyNotInstalled(minaryObj)); } return(new StateOk(minaryObj)); }
public static void EvaluateMinaryState(out MinaryState minaryState) { minaryState = Minary.Domain.Main.SystemStateCheck.DetermineSystemState(); if ((minaryState & MinaryState.NotAdmin) == MinaryState.NotAdmin) { throw new Exception("Can't start Minary because of missing admin privileges."); } if ((minaryState & MinaryState.WinPcapMissing) == MinaryState.WinPcapMissing) { throw new Exception("Can't start Minary because WinPcap is not installed."); } if ((minaryState & MinaryState.ApeBinaryMissing) == MinaryState.ApeBinaryMissing) { throw new Exception("Can't start Minary because APE is not installed."); } if ((minaryState & MinaryState.SnifferMissing) == MinaryState.SnifferMissing) { throw new Exception("Can't scan network because Sniffer is not installed."); } if ((minaryState & MinaryState.NetworkMissing) == MinaryState.NetworkMissing) { throw new Exception("Can't start Minary because no network interface was found."); } }
public static MinaryState DetermineSystemState() { MinaryState retVal = MinaryState.StateOk; // Check NPcap if (string.IsNullOrEmpty(Utils.TryExecute(NPcap.GetNPcapVersion)) == true) { retVal |= MinaryState.NPcapMissing; } // Check interfaces if (NetworkInterface.GetIsNetworkAvailable() == false || NetworkInterface.GetAllNetworkInterfaces().Length <= 0) { retVal |= MinaryState.NetworkMissing; } // Check SystemService: APE if (File.Exists(Config.ApeBinaryPath) == false) { retVal |= MinaryState.ApeBinaryMissing; } // Check SystemService: RouterIPv4 if (File.Exists(Config.RouterIPv4BinaryPath) == false) { retVal |= MinaryState.RouterIPv4BinaryMissing; } // Check SystemService: DnsPoisoning if (File.Exists(Config.DnsPoisoningBinaryPath) == false) { retVal |= MinaryState.DnsPoisoningBinaryMissing; } // Check SystemService: Sniffer if (File.Exists(Config.SnifferBinaryPath) == false) { retVal |= MinaryState.SnifferMissing; } // Check SystemService: HttpProxy if (File.Exists(Config.HttpReverseProxyBinaryPath) == false) { retVal |= MinaryState.HttpProxyMissing; } return(retVal); }