//==========���崫����̱�ʾ��=========BEGIN //private Thread SenderThread; //private Thread CatcherThread; //==========���崫����̱�ʾ��=========END public void SenderSocket() { try { //Thread lner = new Thread(new ThreadStart(listen)); //lner.Start(); for (int i = startPort; i <= endPort; i++) { try { IPHostEntry pe = Dns.GetHostByName(aimAddr); uint ip = Convert.ToUInt32(pe.AddressList[0].Address);//����Ҫ������ip��תΪ�����ֽ��� ushort port = ushort.Parse(i.ToString()); IPEndPoint ep = new IPEndPoint(pe.AddressList[0], port); Updateloglist(ui, port); //byte[] bt = BitConverter.GetBytes(port); //Array.Reverse(bt); //port = BitConverter.ToUInt16(bt, 0); int xiancheng = 1;//! Random rand = new Random(); Thread[] t = new Thread[xiancheng]; syn[] sy = new syn[xiancheng]; for (int j = 0; j < xiancheng; j++) { sy[j] = new syn(ip, port, ep, rand); t[j] = new Thread(new ThreadStart(sy[j].synFS)); t[j].Start(); } Scanner.finishPort++; } catch { //MessageBox.Show("����δ֪����"); UpdateTBResult(ui, "����δ֪����\r\n"); } } //listen(); } catch (Exception ex) { //MessageBox.Show(ex.Message); UpdateTBResult(ui, ex.Message.ToString() + "\r\n"); } }
static void Main(string[] args) { syn syntax = new syn(); int counter = 0; int count = 0; string line; System.IO.File.WriteAllText("check.txt", string.Empty); System.IO.File.WriteAllText("int.txt", string.Empty); System.IO.File.WriteAllText("float.txt", string.Empty); System.IO.File.WriteAllText("string.txt", string.Empty); System.IO.File.WriteAllText("char.txt", string.Empty); System.IO.File.WriteAllText("icg.txt", string.Empty); // Read the file and display it line by line. System.IO.StreamReader file = new System.IO.StreamReader("d:\\VS 2012/Lexical2/Lexical/bin/Debug/classpart.txt"); while ((line = file.ReadLine()) != null) { counter++; } file.Close(); syntax.arr(counter); System.IO.StreamReader file1 = new System.IO.StreamReader("d:\\VS 2012/Lexical2/Lexical/bin/Debug/classpart.txt"); while ((line = file1.ReadLine()) != null) { //Console.WriteLine(line); syntax.set(line); counter++; } file1.Close(); syntax.get(); // syntax.get(); bool check; check = syntax.validate(); if (check == true) { Console.WriteLine("valid"); } else { Console.WriteLine("not valid"); } Console.ReadLine(); }
/// <summary> /// ��ȡ�� /// </summary> /// <param name="sender"></param> /// <param name="args"></param> public void TcpSyn_PacketArrival(object sender, RawSocket.PacketArrivedEventArgs args) { if (args.Protocol == "TCP" && args.OriginationAddress == aimAddr) { //�������ݰ� byte[] revMsg = args.ReceiveBuffer; byte flag = revMsg[33]; ushort port = BitConverter.ToUInt16(revMsg, 20); byte[] rport = BitConverter.GetBytes(port); Array.Reverse(rport); port = BitConverter.ToUInt16(rport, 0); if (flag == 0x0012) { Updateportlist1(ui,port); success = true; #region ������յ�SYN|ACK������һ��RST�źŹر����� IPAddress ipAddr = IPAddress.Parse(aimAddr); IPEndPoint iep = new IPEndPoint(ipAddr, Convert.ToInt32(port)); Random rand = new Random(); uint ip = BitConverter.ToUInt32(ipAddr.GetAddressBytes(), 0); syn rstSock = new syn(ip, port, iep, rand, Convert.ToByte(0x04)); rstSock.synFS(); #endregion } if (Scanner.finishPort == System.Math.Abs(endPort - startPort + 1) || rSocket.ErrorOccurred || rSocket.KeepRunning == false ) { UpdateTBResult(ui, "Finish!\r\n"); rSocket.Shutdown(); UpdateBtnStart(ui, true); } } }
/// <summary> /// ����TcySyn�� /// </summary> /// <param name="aimAddr"></param> /// <param name="port"></param> /// <returns></returns> public void SendSynPackets() { //byte[] szSendBuf = new byte[100]; try { //��ȡĿ��������Ϣ IP��ַ IPHostEntry ipAddr = Dns.GetHostByName(aimAddr); while (keepFlood) { for (int port = startPort; port <= endPort; port++) { //ѭ��ɨ������˿� IPEndPoint iep = new IPEndPoint(ipAddr.AddressList[0], port); try { #region ����TCP�� �°� Random rand = new Random(); uint ip = Convert.ToUInt32(ipAddr.AddressList[0].Address); syn synSock = new syn(ip, Convert.ToUInt16(port), iep, rand, Convert.ToByte(0x02)); synSock.synFS(); #endregion } catch (Exception ex) { UpdateTBResult(ui, ex.Message.ToString()); } finally { //scanSock.Close(); } //���㷢�Ͱ������� packetNum++; } } } catch { } threadFinish++; if (threadFinish == threadCount) { //�����߳�ȫ����� //packetNum = packetNum*threadCount; string ret = "SynFlood�������������� " + aimAddr + " ������ " + packetNum.ToString() + " �����ݰ�\r\n"; UpdateTBResult(ui, ret); } }
/// <summary> /// ����TcySyn�� /// </summary> /// <param name="aimAddr"></param> /// <param name="port"></param> /// <returns></returns> public void ScanPorts() { try { //��ȡĿ��������Ϣ IP��ַ IPAddress ipAddr = IPAddress.Parse(aimAddr); for (int port = startPort; port <= endPort; port++) { //ѭ��ɨ������˿� Updateloglist(ui,port); Scanner.finishPort++; IPEndPoint iep = new IPEndPoint(ipAddr, port); try { #region ����TCP�� �°� Random rand = new Random(); uint ip = BitConverter.ToUInt32(ipAddr.GetAddressBytes(), 0); syn synSock = new syn(ip, Convert.ToUInt16(port), iep, rand, Convert.ToByte(0x02)); synSock.synFS(); #endregion } catch(Exception ex) { UpdateTBResult(ui, ex.Message.ToString() + "\r\n"); } finally { } } } catch { } }