mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-26 05:15:28 +00:00
135 lines
3.8 KiB
C#
135 lines
3.8 KiB
C#
|
// Decompiled with JetBrains decompiler
|
|||
|
// Type: PinnacleSys.FirewallConfig.WinXPFirewall
|
|||
|
// Assembly: PMSInstallInit, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|||
|
// MVID: 1143B458-69F7-4F72-9059-A13F9AB730BC
|
|||
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Virus.Win32.Sality.sil-66a8bf80b7d1c03c218a77899ddc10c75b21c3784127eb96343f22ad5b31b4d6.exe
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections;
|
|||
|
|
|||
|
namespace PinnacleSys.FirewallConfig
|
|||
|
{
|
|||
|
public class WinXPFirewall
|
|||
|
{
|
|||
|
private INetFwMgr m_Mgr = (INetFwMgr) null;
|
|||
|
|
|||
|
public WinXPFirewall()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
this.m_Mgr = (INetFwMgr) Activator.CreateInstance(Type.GetTypeFromProgID("hnetcfg.fwmgr"));
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool Available => this.m_Mgr != null;
|
|||
|
|
|||
|
public bool AddApp(
|
|||
|
string AppName,
|
|||
|
string ProcessImageFileName,
|
|||
|
bool bEnable,
|
|||
|
NET_FW_SCOPE_ scope)
|
|||
|
{
|
|||
|
bool flag = false;
|
|||
|
try
|
|||
|
{
|
|||
|
INetFwAuthorizedApplication instance = (INetFwAuthorizedApplication) Activator.CreateInstance(Type.GetTypeFromProgID("hnetcfg.fwauthorizedapplication"));
|
|||
|
instance.Name = AppName;
|
|||
|
instance.ProcessImageFileName = ProcessImageFileName;
|
|||
|
instance.Enabled = bEnable;
|
|||
|
instance.Scope = scope;
|
|||
|
this.m_Mgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(instance);
|
|||
|
flag = true;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
return flag;
|
|||
|
}
|
|||
|
|
|||
|
public bool AddPort(
|
|||
|
int port,
|
|||
|
NET_FW_IP_PROTOCOL_ protocol,
|
|||
|
string name,
|
|||
|
bool enable,
|
|||
|
bool local)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
INetFwOpenPort port1 = this.GetPort(port, protocol);
|
|||
|
if (port1 != null)
|
|||
|
{
|
|||
|
port1.Enabled = enable;
|
|||
|
port1.Scope = NET_FW_SCOPE_.NET_FW_SCOPE_LOCAL_SUBNET;
|
|||
|
return true;
|
|||
|
}
|
|||
|
INetFwOpenPort instance = (INetFwOpenPort) Activator.CreateInstance(Type.GetTypeFromProgID("hnetcfg.FwOpenPort"));
|
|||
|
instance.Enabled = enable;
|
|||
|
instance.Scope = NET_FW_SCOPE_.NET_FW_SCOPE_LOCAL_SUBNET;
|
|||
|
instance.Name = name;
|
|||
|
instance.Port = port;
|
|||
|
instance.Protocol = protocol;
|
|||
|
this.m_Mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(instance);
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool RemovePort(int port, NET_FW_IP_PROTOCOL_ protocol)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
this.m_Mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, protocol);
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool IsPortEnabled(int port, NET_FW_IP_PROTOCOL_ protocol)
|
|||
|
{
|
|||
|
INetFwOpenPort port1 = this.GetPort(port, protocol);
|
|||
|
return port1 != null && port1.Enabled;
|
|||
|
}
|
|||
|
|
|||
|
public INetFwOpenPort GetPort(int port, NET_FW_IP_PROTOCOL_ protocol)
|
|||
|
{
|
|||
|
INetFwProfile currentProfile = this.m_Mgr.LocalPolicy.CurrentProfile;
|
|||
|
IEnumerator enumerator1 = currentProfile.GloballyOpenPorts.GetEnumerator();
|
|||
|
INetFwOpenPort port1 = this.__GetPort(port, protocol, enumerator1);
|
|||
|
if (port1 != null)
|
|||
|
return port1;
|
|||
|
foreach (INetFwService service in currentProfile.Services)
|
|||
|
{
|
|||
|
IEnumerator enumerator2 = service.GloballyOpenPorts.GetEnumerator();
|
|||
|
INetFwOpenPort port2 = this.__GetPort(port, protocol, enumerator2);
|
|||
|
if (port2 != null)
|
|||
|
return port2;
|
|||
|
}
|
|||
|
return (INetFwOpenPort) null;
|
|||
|
}
|
|||
|
|
|||
|
private INetFwOpenPort __GetPort(
|
|||
|
int port,
|
|||
|
NET_FW_IP_PROTOCOL_ protocol,
|
|||
|
IEnumerator iter)
|
|||
|
{
|
|||
|
iter.Reset();
|
|||
|
while (iter.MoveNext())
|
|||
|
{
|
|||
|
INetFwOpenPort current = (INetFwOpenPort) iter.Current;
|
|||
|
if (current.Port == port && current.Protocol == protocol)
|
|||
|
return current;
|
|||
|
}
|
|||
|
return (INetFwOpenPort) null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|