26-08-14, 03:04 PM
السلام عليكم ورحمة الله وبركاته
اريد معرفة ماعمل هالبرنامج
وان كان بتوضيح كل سطر ماذا يفعل الامر
ولكم جزيل الشكر
اريد معرفة ماعمل هالبرنامج
وان كان بتوضيح كل سطر ماذا يفعل الامر
ولكم جزيل الشكر
كود :
I4 .2 SACNS codes
1. Code used to select the devices (the internal and external interfaces)
Ia nd then open them, and starts the two threads
private void btConnect Click(object sender, EventArgs e)
{
if ((cbAdapterl.Selectedlndex < 0) II
(cbAdapter2.Selectedlndex < 0))
{
MessageBox.Show(”Please select both interfaces.” “Error”, MessageBoxButtons.OK, MessageBoxlcon.Stop);
}
else
{
btConnect.Enabled = false;
Ib tDisconnect.Enabled = true;
Net_adapters =obj .OpenCard(cbAdapterl.Selectedlndex,
cbAdapter2 Selectedlndex);
Net Adpartl = Net adapters [0);
Net Adpart2 = Net_adapters [1];
SendPaket.Router M1\C =
arp.Arprequst (NetworkAddress .NetlDefault_Getway);
if (!File.Exists(”UDP.data”))
{
using (StreamWriter sw = File CreateText(”UDP data”)) { }
}
if (!File.Exists(”ICMP1.data”))
{
sing (StrearnWritër Sw. =Fi1e-.CreateText(”ICMPl.data”)) { }
thread1 = new Thread (new ThreadStart (listen Adapterl)) ,
thread2 = new ThreadnewThreadStart (listen Adapter2)),
thread1. Start ( )
thread2.Start( )
}
}
2. Code used to open adapters
private void Open Adapters(object sender, EventArgs e)
{
tstart.Enabled=false;
bustop.Enabled=true;
Main.devicel = devices[cbAdapters.Seleetedlndexj;
Main .device2 = devices[cbAdapter2.Selectedlndexj;
Main.devicel .PcapOpen(false, 1000);
Main.device2.PcapOpen(false, 1000);
Counters.NPSIP = tbFirwall.Text;
MessageBox.Show(”Listenning on” + Main .device I .PcapDescription) ;
MessageBox.Show (”Lisetnning on” +Main device2.PcapDescription);
last.Text “Is Connection”;
this.Visible = false;
}
3. Code used to close adapters
private void Close_Adaptes(object sender, EventArgs e)
{
btstart.Enabled = true;
Ib ustop.Enabled = false;
Main.device 1 .PcapCloseO;
Main .device2.PcapCloseQ;
}
4. Code used to display the UDP packets on the list view
public void show(UDPPacket udp)
{
It his.udp = udp;
item = new ListViewILeni();
DateTime time udp.PcapHeader.Date;
string time_stamp.::time.Hour + “:“ + time.Minute + “:“ time.Second + “:“ + -time.Miliisècond;
string srclP = udp,:SourceAddress;
int srcPort -= udp-.SourcePort;
string destlP = udp.DestinationAddress;
int destPort = udp..DestinationPprt;.
int len = udp Data Length,
item.SubItems[O]-.Text = “UDP”;
item.Subltems .Add(time stamp);
item Subltems Add(srclP),
item Subttems AddflrcPort ToStringO),
item Subltems Add(detIP),
item Subitems Add(destPort ToString),
item Subltems Add(”),
item.Subltems.-Add(”-);
item Subltems Add’”5,
item Subltems Add(len ToString)),
item Subltems Add(”),
lvPackèts .Items .Add(itèm);
5. Code used to prepare the packet for sending to the destination by changing the source and destination MAC adresses
Ip ublic Packet Prepare Packet(Packet pac, string srclP,string destlP, string src MAC, byte[)apter MAC)
{
byte[] dest_Mac;
byte[] Data = pac.Bytes;
if (Exist(srclP))
{
dest MAC = Selective Forwarding (destlP);
{
else
}
Learning (srclP, src_MAC);
dest_MAC = Selective Forwarding(destlP);
}
for (int i = 0; i < 6; i++)
{
Data[i] = destMAC[i];
Data[i + 6) = adapter MAC[i];
}
return pac;
{
6. Code used to perform the ARP request
public byte[] Arprequst(string IP)
{
string strl = String.Empty;
try
{
tring str2 = String Empty,
ProcessStartlnfo info). = new processStart info;
Process processi = new Process,
infol.FileName = “nbtstt”; •
infol.RedjrectStandardlnput =faise;
infol RedirectStandardqtput = true,
infol Arguments =”-a” + IP,
infol.UseShellExecute = faisé;
process1=Procéss.Start(info’l);
int num1= —1;
while (num1 <= -1).
{
num1 =str2 TrIm( ) ToLower() IndexOf(”mac address”, 0),
if (num1 > —1)
{
break;
}
str2 = processi . StandardOutput.RéadLine ();
}
process1.WaitForExit;
string str = str2.Substring(18, 17);
str1 = str Trim(),
}
catch (Exception exception2)
{
MessageBox.Show(exception2.Message);
{
return NetworkAddress.. hexa MAC ToByte (strl);
7. Code used to send the packets
public static void sendl(Packet packet, PcapDevice dev, string Source, string Destination, string Source MAC)
{
lock (typeof(SendPaket))
{
try
{
byte [] MacSourc = NetworkAddress .MAC Address Adpart2;
dev. PcapSendPacket Carp. Prepare_Packet (packet,
Source, Destination, Source MAC, MacSourc));
}
catch (Exception e) { MessageBox.Show(e.Message); }
}
}