示例#1
0
        private void ServerIng()
        {
            while (run)
            {
                //服务接收处理
                Socket QS;
                QS = qTcpListener.AcceptSocket();
                Byte[] Stream = new Byte[1024];
                QS.Receive(Stream);
                string save = System.Text.Encoding.UTF8.GetString(Stream);
                CheckOutDate(save);
                switch (parameter[0])
                {
                case "1":                          //该用户上线
                    TrafficMsg.PostMessage(ShareDate.MainFormHand, 500, 1, 0);
                    Login.SendMsgToGetOnlineInf(); //获取新的在线用户列表
                    System.Threading.Thread ShowOnline = new Thread(new ThreadStart(ShowInfWin));
                    ShowOnline.Start();
                    break;

                case "2":                                                      //接收到来自用户的消息;格式为(标识;源用户;消息内容)
                    TrafficMsg.PostMessage(ShareDate.MainFormHand, 500, 2, 0); //发送播放声音提示消息
                    System.Threading.Thread SM = new Thread(new ThreadStart(ShowMsg));
                    SM.Start();                                                //创建聊天窗口
                    break;

                default:                        //发送错误参数
                    break;
                }
                QS.Close();
            }
        }
示例#2
0
            /// <summary>
            /// Http POST Request
            /// </summary>
            /// <param name="url">(string) POST url</param>
            /// <param name="cType">(ContentType) form encoding type</param>
            /// <param name="enc">(Encoding) text endcoding</param>
            /// <param name="parameters">(string []) an array of parameters to be sent with POST request</param>
            /// <param name="values">(string []) an array of parameter values to be sent with POST request</param>
            /// <param name="requestHeaders">(ArrayList) array list of request header values (name: value) format</param>
            /// <returns>(HttpWebResponse) object</returns>
            public static HttpWebResponse Post(string url, ContentType cType, Encoding enc, string[] parameters, string[] values, ArrayList requestHeaders)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

                if (requestHeaders != null)
                {
                    foreach (string header in requestHeaders)
                    {
                        request.Headers.Add(header);
                    }
                }

                string data = QS.AddParams(null, parameters, values);

                byte[] buffer = enc.GetBytes(data);

                request.ContentLength = buffer.Length;
                request.Method        = "POST";
                request.ContentType   = GetContentType(cType);

                Stream postStream = request.GetRequestStream();

                postStream.Write(buffer, 0, buffer.Length);
                postStream.Close();

                return((HttpWebResponse)request.GetResponse());
            }
示例#3
0
        public void Should_Stringify_Person_Obj()
        {
            var    person = new Person("Harry", 20);
            string query  = QS.Stringify(person);

            query.Should().Be("Name=Harry&Age=20");
        }
示例#4
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            QSRule rule   = new QSRule();
            QS     entity = EntityGet();

            rule.RUpdate(entity);
        }
示例#5
0
        /// <summary>
        /// 获得实体
        /// </summary>
        /// <returns></returns>
        private QS EntityGet()
        {
            QS entity = new QS();

            entity.ID = HTDataID;
            return(entity);
        }
示例#6
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="p_Entity">实体类</param>
        /// <returns>操作影响的记录行数</returns>
        public override int Delete(BaseEntity p_Entity)
        {
            try
            {
                QS MasterEntity = (QS)p_Entity;
                if (MasterEntity.ID == 0)
                {
                    return(0);
                }

                //删除主表数据
                string Sql = "";
                Sql = "DELETE FROM WH_QS WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID);
                //执行
                int AffectedRows = 0;
                if (!this.sqlTransFlag)
                {
                    AffectedRows = this.ExecuteNonQuery(Sql);
                }
                else
                {
                    AffectedRows = sqlTrans.ExecuteNonQuery(Sql);
                }

                return(AffectedRows);
            }
            catch (BaseException E)
            {
                throw new BaseException(E.Message, E);
            }
            catch (Exception E)
            {
                throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBDelete), E);
            }
        }
示例#7
0
        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            QSRule rule   = new QSRule();
            QS     entity = EntityGet();

            rule.RAdd(entity);
            return(entity.ID);
        }
示例#8
0
        public void Should_Stringify_Nested_Obj()
        {
            var father = new Father("Harry", 20);

            father.Child = new Person("Bob", 5);
            string query = QS.Stringify(father);

            query.Should().Be("Child.Name=Bob&Child.Age=5&Name=Harry&Age=20");
        }
示例#9
0
        private static void KillSteal()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (target != null)
            {
                double igniteDmg = Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
                double QHDmg     = Player.GetSpellDamage(target, SpellSlot.Q, 0);
                double QSDmg     = Player.GetSpellDamage(target, SpellSlot.Q, 1);
                double WHDmg     = Player.GetSpellDamage(target, SpellSlot.W);
                double WSDmg     = Player.GetSpellDamage(target, SpellSlot.W, 1);


                if (Config.Item("UseIgnite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown &&
                    Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
                {
                    if (igniteDmg >= target.Health)
                    {
                        Player.Spellbook.CastSpell(IgniteSlot, target);
                    }
                }

                if (Q.IsReady() && Player.Distance(target) <= Q.Range && target != null &&
                    Config.Item("UseQKs").GetValue <bool>() && HumanForm)
                {
                    if (target.Health <= QHDmg)
                    {
                        Q.Cast(target);
                    }
                }
                if (QS.IsReady() && Player.Distance(target) <= QS.Range && target != null &&
                    Config.Item("UseQKsSpider").GetValue <bool>() && SpiderForm)
                {
                    if (target.Health <= QSDmg)
                    {
                        Q.Cast(target);
                    }
                }
                if (W.IsReady() && Player.Distance(target) <= W.Range && target != null &&
                    Config.Item("UseWKs").GetValue <bool>() && HumanForm)
                {
                    if (target.Health <= WHDmg)
                    {
                        W.Cast(target);
                    }
                }

                if (W.IsReady() && Player.Distance(target) <= WS.Range && target != null &&
                    Config.Item("UseWKsSpider").GetValue <bool>() && SpiderForm)
                {
                    if (target.Health <= WSDmg)
                    {
                        W.Cast(target);
                    }
                }
            }
        }
示例#10
0
        public void Should_Stringify_Object_With_Array()
        {
            var fruitsBasket = new FruitsBasket();

            fruitsBasket.Fruits = new string[] {
                "Orange",
                "Lemon"
            };
            string query = QS.Stringify(fruitsBasket);

            query.Should().Be("Fruits[0]=Orange&Fruits[1]=Lemon");
        }
示例#11
0
        public void Should_Stringify_Nested_Obj_With_Array()
        {
            var mother = new Mother("Angela", 32);

            mother.Children = new Person[] {
                new Person("Bob", 5),
                new Person("Ste", 6),
            };
            string query    = QS.Stringify(mother);
            var    expected = "Children[0][Name]=Bob&Children[0][Age]=5&Children[1][Name]=Ste&Children[1][Age]=6&Name=Angela&Age=32";

            query.Should().Be(expected);
        }
示例#12
0
        /// <summary>
        /// 检验字段值是否已存在
        /// </summary>
        /// <param name="p_TableName">表名</param>
        /// <param name="p_FieldName">字段名</param>
        /// <param name="p_FieldValue">字段值</param>
        /// <param name="p_KeyField">主键(只考虑主键为ID的情况)</param>
        /// <param name="p_KeyValue">主键值</param>
        /// <param name="p_sqlTrans"></param>
        /// <returns></returns>
        private bool CheckFieldValueIsExist(BaseEntity p_BE, string p_FieldName, string p_FieldValue, IDBTransAccess p_sqlTrans)
        {
            QS        entity = (QS)p_BE;
            bool      ret    = false;
            string    sql    = string.Format(" SELECT {0} FROM {1} WHERE 1=1 AND {0}={2} AND {3}<>{4}", p_FieldName, QS.TableName, SysString.ToDBString(p_FieldValue), "ID", entity.ID);
            DataTable dt     = p_sqlTrans.Fill(sql);

            if (dt.Rows.Count != 0)
            {
                ret = true;
            }

            return(ret);
        }
示例#13
0
        public void Should_Stringify_Obj_With_Prefix()
        {
            var room = new RoomParameter();

            room.Adt     = 5;
            room.Chd     = 2;
            room.ChdAges = new List <short> {
                5, 6
            };
            room.Snr = 1;
            string query    = QS.Stringify(room, "room");
            var    expected = "room.Snr=1&room.Adt=5&room.Chd=2&room.ChdAges[0]=5&room.ChdAges[1]=6";

            query.Should().Be(expected);
        }
示例#14
0
        private static void JungleFarm()
        {
            List <Obj_AI_Base> mobs = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range,
                                                               MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.Health);

            if (Config.Item("UseQFarm").GetValue <bool>())
            {
                foreach (Obj_AI_Base minion in mobs)
                {
                    if (HumanForm)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= Q.Range)
                        {
                            Q.Cast(minion);
                        }
                        if (W.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= W.Range)
                        {
                            W.Cast();
                        }
                        if (!Q.IsReady() && !W.IsReady())
                        {
                            R.Cast();
                        }
                    }
                }
                if (!HumanForm)
                {
                    foreach (Obj_AI_Base minion in mobs)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= QS.Range)
                        {
                            QS.Cast(minion);
                        }
                        if (WS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= WS.Range)
                        {
                            WS.Cast();
                        }
                        if (ES.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= ES.Range &&
                            Config.Item("UseSpiderEFarm").GetValue <bool>())
                        {
                            ES.Cast(minion);
                        }
                    }
                }
            }
        }
示例#15
0
        public void Should_Stringify_Array_With_Prefif()
        {
            var rooms = new List <RoomParameter>();
            var room  = new RoomParameter();

            room.Adt     = 5;
            room.Chd     = 2;
            room.ChdAges = new List <short> {
                5, 6
            };
            room.Snr = 1;
            rooms.Add(room);
            rooms.Add(room);
            string query    = QS.Stringify(rooms, "rooms");
            var    expected = "rooms[0][Snr]=1&rooms[0][Adt]=5&rooms[0][Chd]=2&rooms[0][ChdAges][0]=5&rooms[0][ChdAges][1]=6&rooms[1][Snr]=1&rooms[1][Adt]=5&rooms[1][Chd]=2&rooms[1][ChdAges][0]=5&rooms[1][ChdAges][1]=6";

            query.Should().Be(expected);
        }
示例#16
0
        public void Should_Stringify_Array()
        {
            var rooms = new List <RoomParameter>();
            var room  = new RoomParameter();

            room.Adt     = 5;
            room.Chd     = 2;
            room.ChdAges = new List <short> {
                5, 6
            };
            room.Snr = 1;
            rooms.Add(room);
            rooms.Add(room);
            string query    = QS.Stringify(rooms);
            var    expected = "0[Snr]=1&0[Adt]=5&0[Chd]=2&0[ChdAges][0]=5&0[ChdAges][1]=6&1[Snr]=1&1[Adt]=5&1[Chd]=2&1[ChdAges][0]=5&1[ChdAges][1]=6";

            query.Should().Be(expected);
        }
示例#17
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="p_BE">要删除的实体</param>
 /// <param name="sqlTrans">事务类</param>
 public void RDelete(BaseEntity p_BE, IDBTransAccess sqlTrans)
 {
     try
     {
         this.CheckCorrect(p_BE);
         QS    entity  = (QS)p_BE;
         QSCtl control = new QSCtl(sqlTrans);
         control.Delete(entity);
     }
     catch (BaseException)
     {
         throw;
     }
     catch (Exception E)
     {
         throw new BaseException(E.Message);
     }
 }
示例#18
0
            /// <summary>
            /// Http GET Request
            /// </summary>
            /// <param name="url">(string) GET url</param>
            /// <param name="enc">(Encoding) text encoding</param>
            /// <param name="parameters">(string []) an array of parameters to be sent with GET request</param>
            /// <param name="values">(string []) an array of parameter values to be send with GET request</param>
            /// <param name="requestHeaders">(ArrayList) array list of requets header values (name: value) format</param>
            /// <returns>(HttpWebResponse) object</returns>
            public static HttpWebResponse Get(string url, Encoding enc, string[] parameters, string[] values, ArrayList requestHeaders)
            {
                string data = QS.AddParams(null, parameters, values);


                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + data);

                if (requestHeaders != null)
                {
                    foreach (string header in requestHeaders)
                    {
                        request.Headers.Add(header);
                    }
                }

                request.Method = "GET";

                return((HttpWebResponse)request.GetResponse());
            }
示例#19
0
 /// <summary>
 /// 新增(传入事务处理)
 /// </summary>
 /// <param name="p_BE">要新增的实体</param>
 /// <param name="sqlTrans">事务类</param>
 public void RAdd(BaseEntity p_BE, IDBTransAccess sqlTrans)
 {
     try
     {
         this.CheckCorrect(p_BE);
         QS    entity  = (QS)p_BE;
         QSCtl control = new QSCtl(sqlTrans);
         entity.ID = (int)EntityIDTable.GetID((long)SysEntity.WH_QS, sqlTrans);
         control.AddNew(entity);
     }
     catch (BaseException)
     {
         throw;
     }
     catch (Exception E)
     {
         throw new BaseException(E.Message);
     }
 }
        private static void Farm()
        {
            Obj_AI_Hero        target     = TargetSelector.GetTarget(QS.Range, TargetSelector.DamageType.Magical);
            List <Obj_AI_Base> allminions = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All,
                                                                     MinionTeam.Enemy, MinionOrderTypes.Health);

            if (Config.Item("UseQFarm").GetValue <bool>())
            {
                foreach (Obj_AI_Base minion in allminions)
                {
                    if (HumanForm)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= Q.Range)
                        {
                            Q.Cast(minion);
                        }
                        if (W.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= W.Range)
                        {
                            W.Cast();
                        }
                        R.Cast();
                    }
                }
                foreach (Obj_AI_Base minion in allminions)
                {
                    if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= QS.Range)
                    {
                        QS.Cast(minion);
                    }
                    if (WS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= 125)
                    {
                        WS.Cast();
                    }
                    if (ES.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= ES.Range &&
                        Config.Item("UseSpiderEFarm").GetValue <bool>())
                    {
                        ES.Cast(minion);
                    }
                }
            }
        }
示例#21
0
        /// <summary>
        /// 获得实体
        /// </summary>
        /// <returns></returns>
        private QS EntityGet()
        {
            QS entity = new QS();

            entity.ID = HTDataID;
            entity.SelectByID();
            entity.VendorID    = SysConvert.ToString(drpVendorID.EditValue);
            entity.ItemCode    = txtItemCode.Text.Trim();
            entity.GoodsCode   = txtGoodsCode.Text.Trim();
            entity.ColorNum    = txtColorNum.Text.Trim();
            entity.ColorName   = txtColorName.Text.Trim();
            entity.Qty         = SysConvert.ToDecimal(txtQty.Text.Trim());
            entity.SinglePrice = SysConvert.ToDecimal(txtSinglePrice.Text.Trim());
            entity.Amount      = SysConvert.ToDecimal(txtAmount.Text.Trim());
            entity.Remark      = txtRemark.Text.Trim();
            entity.FormDate    = txtFormDate.DateTime;
            entity.OrderFormNo = txtOrderFormNo.Text.Trim();
            entity.Remark2     = txtRemark2.Text.Trim();
            entity.Unit        = SysConvert.ToString(drpUnit.EditValue);
            return(entity);
        }
示例#22
0
        private static void JungleFarm()
        {
            var target = SimpleTs.GetTarget(QS.Range, SimpleTs.DamageType.Magical);
            var mobs   = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.Health);

            if (Config.Item("UseQFarm").GetValue <bool>())
            {
                foreach (var minion in mobs)
                {
                    if (HumanForm)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= Q.Range)
                        {
                            Q.Cast(minion);
                        }
                        if (W.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= W.Range)
                        {
                            W.Cast();
                        }
                        R.Cast();
                    }
                }
                foreach (var minion in mobs)
                {
                    if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= QS.Range)
                    {
                        QS.Cast(minion);
                    }
                    if (WS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= 125)
                    {
                        WS.Cast();
                    }
                    if (ES.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= ES.Range && Config.Item("UseSpiderEFarm").GetValue <bool>())
                    {
                        ES.Cast(minion);
                    }
                }
            }
        }
示例#23
0
        private static void Farm()
        {
            List <Obj_AI_Base> allminions = MinionManager.GetMinions(Player.ServerPosition, Q.Range);

            if (Config.Item("UseQFarm").GetValue <bool>())
            {
                foreach (Obj_AI_Base minion in allminions)
                {
                    if (HumanForm)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= Q.Range)
                        {
                            Q.Cast(minion);
                        }
                        if (W.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= W.Range)
                        {
                            W.Cast();
                        }
                        R.Cast();
                    }
                    if (!HumanForm)
                    {
                        if (QS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= QS.Range)
                        {
                            QS.Cast(minion);
                        }
                        if (WS.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= WS.Range)
                        {
                            WS.Cast();
                        }
                        if (ES.IsReady() && minion.IsValidTarget() && Player.Distance(minion) <= ES.Range &&
                            Config.Item("UseSpiderEFarm").GetValue <bool>())
                        {
                            ES.Cast(minion);
                        }
                    }
                }
            }
        }
示例#24
0
        private static void KillSteal()
        {
            var target    = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);
            var igniteDmg = Damage.GetSummonerSpellDamage(Player, target, Damage.SummonerSpell.Ignite);
            var QHDmg     = Damage.GetSpellDamage(Player, target, SpellSlot.Q);
            var WDmg      = Damage.GetSpellDamage(Player, target, SpellSlot.W);

            if (target != null && Config.Item("UseIgnite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown &&
                Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                if (igniteDmg > target.Health)
                {
                    Player.SummonerSpellbook.CastSpell(IgniteSlot, target);
                }
            }

            if (Q.IsReady() && Player.Distance(target) <= Q.Range && target != null && Config.Item("UseQKs").GetValue <bool>())
            {
                if (target.Health <= QHDmg)
                {
                    Q.Cast(target);
                }
            }
            if (QS.IsReady() && Player.Distance(target) <= QS.Range && target != null && Config.Item("UseQKs").GetValue <bool>())
            {
                if (target.Health <= QHDmg)
                {
                    Q.Cast(target);
                }
            }
            if (W.IsReady() && Player.Distance(target) <= W.Range && target != null && Config.Item("UseWKs").GetValue <bool>() && HumanForm)
            {
                if (target.Health <= WDmg)
                {
                    W.Cast(target);
                }
            }
        }
示例#25
0
        /// <summary>
        /// 设置
        /// </summary>
        public override void EntitySet()
        {
            QS entity = new QS();

            entity.ID = HTDataID;
            bool findFlag = entity.SelectByID();

            drpVendorID.EditValue = entity.VendorID;
            txtFormDate.DateTime  = entity.FormDate;
            txtItemCode.Text      = entity.ItemCode.ToString();
            txtGoodsCode.Text     = entity.GoodsCode.ToString();
            txtColorNum.Text      = entity.ColorNum.ToString();
            txtColorName.Text     = entity.ColorName.ToString();
            txtQty.Text           = entity.Qty.ToString();
            txtSinglePrice.Text   = entity.SinglePrice.ToString();
            txtAmount.Text        = entity.Amount.ToString();
            txtRemark.Text        = entity.Remark.ToString();
            txtOrderFormNo.Text   = entity.OrderFormNo.ToString();
            txtRemark2.Text       = entity.Remark2;
            drpUnit.EditValue     = entity.Unit;
            if (!findFlag)
            {
            }
        }
示例#26
0
        private static void Combo()
        {
            var target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            Orbwalker.SetAttack((!Q.IsReady() || E.IsReady() || W.IsReady()));

            if (target != null)
            {
                if (HumanForm)
                {
                    // Human Rotation
                    if (Player.Distance(target) <= Q.Range && Config.Item("UseQHuman").GetValue <bool>() && Q.IsReady())
                    {
                        Q.Cast(target);
                    }
                    if (Player.Distance(target) <= W.Range && Config.Item("UseWHuman").GetValue <bool>() && W.IsReady())
                    {
                        W.Cast(target);
                    }
                    if (Player.Distance(target) <= E.Range && Config.Item("UseEHuman").GetValue <bool>() && E.IsReady())
                    {
                        E.Cast(target);
                    }
                    if (!Q.IsReady() && !W.IsReady() && !E.IsReady() && Player.Distance(target) <= 750 && Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (!Q.IsReady() && !W.IsReady() && Player.Distance(target) <= 750 && Config.Item("UseQHuman").GetValue <bool>())
                    {
                        R.Cast();
                    }
                }
                // Spider Rotation
                if (SpiderForm)
                {
                    if (Player.Distance(target) <= QS.Range && Config.Item("UseQSpider").GetValue <bool>() && QS.IsReady())
                    {
                        QS.Cast(target);
                    }
                    if (Player.Distance(target) <= 140 && Config.Item("UseWSpider").GetValue <bool>() && WS.IsReady())
                    {
                        WS.Cast();
                    }
                    if (Player.Distance(target) <= ES.Range && Player.Distance(target) > QS.Range && Config.Item("UseESpider").GetValue <bool>() && ES.IsReady())
                    {
                        ES.Cast(target);
                    }
                    if (Player.Distance(target) > QS.Range && !ES.IsReady() && R.IsReady() && Player.Distance(target) <= 1075 && Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (!QS.IsReady() && Player.Distance(target) >= 125 && !ES.IsReady() && R.IsReady() && Player.Distance(target) <= 1075 && Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (ES.IsReady() && Player.Distance(target) > QS.Range && Config.Item("UseESpider").GetValue <bool>())
                    {
                        ES.Cast(target);
                    }
                }
            }
        }
示例#27
0
        private void QQServerIng()
        {
            try
            {
                while (ServerRun)
                {
                    Socket QS;
                    QS = qTcpListener.AcceptSocket();
                    string RemoteEndPoint = QS.RemoteEndPoint.ToString();
                    Byte[] Stream         = new Byte[1024];
                    QS.Receive(Stream);
                    string save    = System.Text.Encoding.UTF8.GetString(Stream);
                    string Sendmsg = "";
                    CheckOutDate(save);
                    switch (parameter[0])
                    {
                    case "1":    //验证用户登陆消息
                        if (opDate.qUserLogin(parameter[1], parameter[2]))
                        {
                            Sendmsg = "1";
                            XmlOperate.AddOnlineUser(parameter[1], RemoteEndPoint);
                        }
                        else
                        {
                            Sendmsg = "0";
                        }
                        SendMsg(QS, Sendmsg);
                        break;

                    case "2":    //发送好友分组资料请求
                        XmlOperate friend  = new XmlOperate();
                        string     FileUrl = "";
                        while ((FileUrl = friend.MakeFriendXml(parameter[1])) == "-1")
                        {
                        }
                        SendFile(QS, FileUrl);
                        XmlFileOp.DelThisFile(FileUrl);
                        break;

                    case "3":    //发送群组资料请求
                        break;

                    case "4":    //发送查找结果
                        break;

                    case "5":    //注册用户
                        break;

                    case "6":    //请求在线用户列表
                        SendFile(QS, "onlineinf\\onLine.xml");
                        break;

                    case "7":                            //添加好友 消息格式为:类型号;好友拥有者,好友号码
                        Sendmsg = opDate.AddFriend(parameter[1].Trim(), parameter[2].Trim());
                        SendMsg(QS, Sendmsg);
                        break;

                    default:    //发送错误参数
                        break;
                    }
                    QS.Close();
                }
            }
            catch { }
        }
示例#28
0
 public static extern uint MsgWaitForMultipleObjects(
     uint nCount,
     IntPtr[] pHandles,
     bool bWaitAll,
     uint dwMilliseconds,
     QS dwWakeMask
 );
示例#29
0
        private static void Combo()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            Orbwalker.SetAttack((!Q.IsReady() || !E.IsReady() || !W.IsReady()));

            if (target != null)
            {
                if (HumanForm)
                {
                    // Human Rotation
                    if (Player.Distance(target) <= Q.Range && Config.Item("UseQHuman").GetValue <bool>() && Q.IsReady())
                    {
                        Q.Cast(target);
                    }
                    if (Player.Distance(target) <= W.Range && Config.Item("UseWHuman").GetValue <bool>() && W.IsReady())
                    {
                        W.Cast(target);
                    }
                    if (Player.Distance(target) <= E.Range && Config.Item("UseEHuman").GetValue <bool>() && E.IsReady())
                    {
                        var pred = E.GetPrediction(target);
                        E.Cast(pred.CastPosition);
                    }
                    if (!Q.IsReady() && !W.IsReady() && !E.IsReady() && Player.Distance(target) <= 750 &&
                        Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (!Q.IsReady() && !W.IsReady() && Player.Distance(target) <= 750 &&
                        Config.Item("UseQHuman").GetValue <bool>())
                    {
                        R.Cast();
                    }
                }
                // Spider Rotation
                if (SpiderForm)
                {
                    if (Player.Distance(target) <= QS.Range && Config.Item("UseQSpider").GetValue <bool>() &&
                        QS.IsReady())
                    {
                        QS.Cast(target);
                    }
                    if (Player.Distance(target) <= 140 && Config.Item("UseWSpider").GetValue <bool>() && WS.IsReady())
                    {
                        WS.Cast();
                    }
                    if (Player.Distance(target) <= ES.Range && Player.Distance(target) > QS.Range &&
                        Config.Item("UseESpider").GetValue <bool>() && ES.IsReady())
                    {
                        ES.Cast(target);
                    }
                    if (Player.Distance(target) > QS.Range && !ES.IsReady() && R.IsReady() &&
                        Player.Distance(target) <= 1075 && Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (!QS.IsReady() && Player.Distance(target) >= 125 && !ES.IsReady() && R.IsReady() &&
                        Player.Distance(target) <= 1075 && Config.Item("UseR").GetValue <bool>())
                    {
                        R.Cast();
                    }
                    if (ES.IsReady() && Player.Distance(target) > QS.Range && Config.Item("UseESpider").GetValue <bool>())
                    {
                        ES.Cast(target);
                    }
                }
            }
        }
        public void gtkalidatePageRequest()
        {
            string[] LDAParr = { "\")(", "=*", "%3d%2a", ")(", "*!", "*|", "@*", "*|", "*/", "/*", "%3D%2A", "/*", "%2F%2F", "%21", "%28", "%28", "%29", "%2A", "~!", "~@", "~#", "CURSOR", "KILL", "DBCC", "@variable", "sp_helptext", "sp_exec",
                                 "~$",   "~%", "~^",     "~&", "~*", "~(", "~)", "~<", "~>", "~?", "~`",     "~'", "~=",     "~:",  "~;",  "~/",  "~-",  "~+",
                                 "~|",   "~{", "~}",     "~[", "~]", "!~", "!@", "!#", "!$", "!%", "!^",     "!&", "!*",     "!(",  "!)",  "!<",  "!>",  "!?",
                                 "!`",   "!'", "!=",     "!:", "!;", "!/", "!-", "!+", "!|", "!{", "!}",     "![", "!]",     "@~",  "@!",  "@#",  "@$",  "@%",
                                 "@^",   "@&", "@*",     "@(", "@)", "@<", "@>", "@?", "@`", "@'", "@=",     "@:", "@;",     "@/",  "@-",  "@+",  "@{",
                                 "@}",   "@[", "@]",     "#~", "#!", "#$", "#%", "#&", "#*", "#(", "#)",     "#<", "#>",     "#?",  "#`",  "#'",
                                 "#=",   "#:", "#;",     "#/", "#-", "#+", "#{", "#}", "#[", "#]", "$~",     "$!", "$@",     "$#",  "$%",  "$^",  "$&",
                                 "$*",   "$(", "$)",     "$<", "$>", "$?", "$`", "$'", "$=", "$:", "$;",     "$/", "$-",     "$+",  "$|",  "${",  "$}",  "$[",
                                 "$]",   "%~", "%!",     "%@", "%#", "%$", "%^", "%&", "%*", "%(", "%)",     "%<", "%>",     "%?",  "%`",  "%'",  "%=",  "%:",
                                 "%;",   "%/", "%-",     "%+", "%|", "%{", "%}", "%[", "%]", "^~", "^!",     "^@", "^#",     "^$",  "^%",  "^&",  "^*",  "^(",
                                 "^)",   "^<", "^>",     "^?", "^`", "^'", "^=", "^:", "^;", "^/", "^-",     "^+", "^|",     "^{",  "^}",  "^[",  "^]",  "&~",
                                 "&!",   "&@", "&#",     "&$", "&%", "&^", "&*", "&(", "&)", "&<", "&>",     "&?", "&`",     "&'",  "&=",  "&:",  "&;",  "&/",
                                 "&-",   "&+", "&|",     "&{", "&}", "&[", "&]", "*~", "*!", "*@", "*#",     "*$", "*%",     "*^",  "*&",  "*(",  "*)",  "*<",
                                 "*>",   "*?", "*`",     "*'", "*=", "*:", "*;", "*/", "*-", "*+", "*|",     "*{", "*}",     "*[",  "*]",  "(~",  "(!",  "(@",
                                 "(#",   "($", "(%",     "(^", "(&", "(*", "()", "(<", "(>", "(?", "(`",     "('", "(=",     "(:",  "(;",  "(/",  "(-",  "(+",
                                 "(|",   "({", "(}",     "([", "(]", ")~", ")!", ")@", ")#", ")$", ")%",     ")^", ")&",     ")*",  ")(",  ")<",  ")>",  ")?",
                                 ")`",   ")'", ")=",     "):", ");", ")/", ")-", ")+", ")|", "){", ")}",     ")[", ")]",     "<~",  "<!",  "<@",  "<#",  "<$",
                                 "<%",   "<^", "<&",     "<*", "<(", "<)", "<?", "<`", "<'", "<=", "<:",     "<;", "</",     "<-",  "<+",  "<|",  "<{",
                                 "<}",   "<[", "<]",     ">~", ">!", ">@", ">#", ">$", ">%", ">^", ">&",     ">*", ">(",     ">)",  "><",  ">?",  ">`",  ">'",
                                 ">=",   ">:", ">;",     ">/", ">-", ">+", ">|", ">{", ">}", ">[", ">]",     "?~", "?!",     "?@",  "?#",  "?$",  "?%",  "?^",
                                 "?&",   "?*", "?(",     "?)", "?<", "?>", "?`", "?'", "?=", "?:", "?;",     "?/", "?-",     "?+",  "?|",  "?{",  "?}",  "?[",
                                 "?]",   "`~", "`!",     "`@", "`#", "`$", "`%", "`^", "`&", "`*", "`(",     "`)", "`<",     "`>",  "`?",  "`'",  "`=",  "`:",
                                 "`;",   "`/", "`-",     "`+", "`|", "`{", "`}", "`[", "`]", "'~", "'!",     "'@", "'#",     "'$",  "'%",  "'^",  "'&",  "'*",
                                 "'(",   "')", "'<",     "'>", "'?", "'`", "'=", "':", "';", "'/", "'-",     "'+", "'|",     "'{",  "'}",  "'[",  "']",  "=~",
                                 "=!",   "=@", "=#",     "=$", "=^", "=*", "=(", "=)", "=<", "=>", "=?",     "=`", "='",     "=:",  "=;",
                                 "=-",   "=+", "=|",     "={", "=}", "=[", "=]", ":~", ":!", ":@", ":#",     ":$", ":%",     ":^",  ":&",  ":*",  ":(",  ":)",
                                 ":<",   ":>", ":?",     ":`", ":'", ":=", ":;", ":-", ":+", ":|", ":{",     ":}", ":[",     ":]",  ";~",  ";!",  ";@",
                                 ";#",   ";$", ";%",     ";^", ";&", ";*", ";(", ";)", ";<", ";>", ";?",     ";`", ";'",     ";=",  ";:",  ";/",  ";-",  ";+",
                                 ";|",   ";{", ";}",     ";[", ";]", "/~", "/!", "/@", "/#", "/$", "/^",     "/&", "/*",     "/(",  "/)",  "/<",  "/>",  "/?",  "/`", "/'", "/=", "/:",     "/;",   "/-",   "/+",        "/|",          "/{",     "/}","/[", "/]", "-~", "-!", "-$", "-%", "-^", "-&", "-*", "-(", "-)", "-<", "->", "-?", "-`", "-'", "-=", "-:", "-;", "-/", "-+", "-{", "-}", "-[", "-]", "+~", "+!", "+@", "+#", "+$", "+%", "+^", "+&", "+*", "+(", "+)", "+<", "+>", "+?", "+`", "+'", "+=", "+:", "+;", "+/", "+-", "+|", "+{", "+}", "+[", "+]", "|~", "|!", "|$", "|%", "|*", "|(", "|)", "|<", "|>", "|?", "|`", "|'", "|=", "|:", "|;", "|/", "|-", "|+", "|{", "|}", "|[", "|]", "{~", "{!", "{@", "{#", "{$", "{%", "{^", "{&", "{*", "{(", "{)", "{<", "{>", "{?", "{`", "{'", "{=", "{:", "{;", "{/", "{-", "{+", "{|", "{}", "{[", "{]", "}~", "}!", "}@", "}#", "}$", "}%", "}^", "}&", "}*", "}(", "})", "}<", "}>", "}?", "}`", "}'", "}=", "}:", "};", "}/", "}-", "}+", "}|", "}{", "}[", "}]", "[~", "[!", "[@", "[#", "[$", "[%", "[^", "[&", "[*", "[(", "[)", "[<", "[>", "[?", "[`", "['", "[=", "[:", "[;", "[/", "[-", "[+", "[|", "[{", "[}", "[]", "]~", "]!", "]@", "]#", "]$", "]%", "]^", "]&", "]*", "](", "])", "]<", "]>", "]?", "]`", "]'", "]=", "]:", "];", "]/", "]-", "]+", "]|", "]{", "]}", "][" };

            string[] SQLArr = { "'OR'",     "'AND'",    "'='",     "\"",      "%22",  "TRUNCATE", "--",        "SHUTDOWN",    "TRUNCATE", "UPDATE", "exec", "declare@",
                                "select@",  "'",        "--",      "CURSOR",  "KILL", "DBCC",     "@variable", "sp_helptext", "sp_exec",
                                "union",    "drop",     "exec",    ">",       "<",    ",",        "insert",    "procedure",   "orderby",  "asc",    "desc", "delete",  "update",
                                "distinct", "truncate", "replace", "handler", "\\2A", "\\28",     "\\29",      "\\5C",        "\00",      "~!",     "~@",   "~#",
                                "~$",       "~%",       "~^",      "~&",      "~*",   "~(",       "~)",        "~<",          "~>",       "~?",     "~`",   "~'",      "~=", "~:",  "~;", "~/", "~-", "~+",
                                "~|",       "~{",       "~}",      "~[",      "~]",   "!~",       "!@",        "!#",          "!$",       "!%",     "!^",   "!&",      "!*", "!(",  "!)", "!<", "!>", "!?",
                                "!`",       "!'",       "!=",      "!:",      "!;",   "!/",       "!-",        "!+",          "!|",       "!{",     "!}",   "![",      "!]", "@~",  "@!", "@#", "@$", "@%",
                                "@^",       "@&",       "@*",      "@(",      "@)",   "@<",       "@>",        "@?",          "@`",       "@'",     "@=",   "@:",      "@;", "@/",  "@-", "@+", "@{",
                                "@}",       "@[",       "@]",      "#~",      "#!",   "#$",       "#%",        "#&",          "#*",       "#(",     "#)",   "#<",      "#>", "#?",  "#`", "#'",
                                "#=",       "#:",       "#;",      "#/",      "#-",   "#+",       "#{",        "#}",          "#[",       "#]",     "$~",   "$!",      "$@", "$#",  "$%", "$^", "$&",
                                "$*",       "$(",       "$)",      "$<",      "$>",   "$?",       "$`",        "$'",          "$=",       "$:",     "$;",   "$/",      "$-", "$+",  "$|", "${", "$}", "$[",
                                "$]",       "%~",       "%!",      "%@",      "%#",   "%$",       "%^",        "%&",          "%*",       "%(",     "%)",   "%<",      "%>", "%?",  "%`", "%'", "%=", "%:",
                                "%;",       "%/",       "%-",      "%+",      "%|",   "%{",       "%}",        "%[",          "%]",       "^~",     "^!",   "^@",      "^#", "^$",  "^%", "^&", "^*", "^(",
                                "^)",       "^<",       "^>",      "^?",      "^`",   "^'",       "^=",        "^:",          "^;",       "^/",     "^-",   "^+",      "^|", "^{",  "^}", "^[", "^]", "&~",
                                "&!",       "&@",       "&#",      "&$",      "&%",   "&^",       "&*",        "&(",          "&)",       "&<",     "&>",   "&?",      "&`", "&'",  "&=", "&:", "&;", "&/",
                                "&-",       "&+",       "&|",      "&{",      "&}",   "&[",       "&]",        "*~",          "*!",       "*@",     "*#",   "*$",      "*%", "*^",  "*&", "*(", "*)", "*<",
                                "*>",       "*?",       "*`",      "*'",      "*=",   "*:",       "*;",        "*/",          "*-",       "*+",     "*|",   "*{",      "*}", "*[",  "*]", "(~", "(!", "(@",
                                "(#",       "($",       "(%",      "(^",      "(&",   "(*",       "()",        "(<",          "(>",       "(?",     "(`",   "('",      "(=", "(:",  "(;", "(/", "(-", "(+",
                                "(|",       "({",       "(}",      "([",      "(]",   ")~",       ")!",        ")@",          ")#",       ")$",     ")%",   ")^",      ")&", ")*",  ")(", ")<", ")>", ")?",
                                ")`",       ")'",       ")=",      "):",      ");",   ")/",       ")-",        ")+",          ")|",       "){",     ")}",   ")[",      ")]", "<~",  "<!", "<@", "<#", "<$",
                                "<%",       "<^",       "<&",      "<*",      "<(",   "<)",       "<?",        "<`",          "<'",       "<=",     "<:",   "<;",      "</", "<-",  "<+", "<|", "<{",
                                "<}",       "<[",       "<]",      ">~",      ">!",   ">@",       ">#",        ">$",          ">%",       ">^",     ">&",   ">*",      ">(", ">)",  "><", ">?", ">`", ">'",
                                ">=",       ">:",       ">;",      ">/",      ">-",   ">+",       ">|",        ">{",          ">}",       ">[",     ">]",   "?~",      "?!", "?@",  "?#", "?$", "?%", "?^",
                                "?&",       "?*",       "?(",      "?)",      "?<",   "?>",       "?`",        "?'",          "?=",       "?:",     "?;",   "?/",      "?-", "?+",  "?|", "?{", "?}", "?[",
                                "?]",       "`~",       "`!",      "`@",      "`#",   "`$",       "`%",        "`^",          "`&",       "`*",     "`(",   "`)",      "`<", "`>",  "`?", "`'", "`=", "`:",
                                "`;",       "`/",       "`-",      "`+",      "`|",   "`{",       "`}",        "`[",          "`]",       "'~",     "'!",   "'@",      "'#", "'$",  "'%", "'^", "'&", "'*",
                                "'(",       "')",       "'<",      "'>",      "'?",   "'`",       "'=",        "':",          "';",       "'/",     "'-",   "'+",      "'|", "'{",  "'}", "'[", "']", "=~",
                                "=!",       "=@",       "=#",      "=$",      "=^",   "=*",       "=(",        "=)",          "=<",       "=>",     "=?",   "=`",      "='", "=:",  "=;",
                                "=-",       "=+",       "=|",      "={",      "=}",   "=[",       "=]",        ":~",          ":!",       ":@",     ":#",   ":$",      ":%", ":^",  ":&", ":*", ":(", ":)",
                                ":<",       ":>",       ":?",      ":`",      ":'",   ":=",       ":;",        ":-",          ":+",       ":|",     ":{",   ":}",      ":[", ":]",  ";~", ";!", ";@",
                                ";#",       ";$",       ";%",      ";^",      ";&",   ";*",       ";(",        ";)",          ";<",       ";>",     ";?",   ";`",      ";'", ";=",  ";:", ";/", ";-", ";+",
                                ";|",       ";{",       ";}",      ";[",      ";]",   "/~",       "/!",        "/@",          "/#",       "/$",     "/^",   "/&",      "/*", "/(",  "/)", "/<", "/>", "/?","/`","/'", "/=", "/:", "/;", "/-", "/+", "/|", "/{", "/}", "/[", "/]", "-~", "-!", "-$", "-%", "-^", "-&", "-*", "-(", "-)", "-<", "->", "-?", "-`", "-'", "-=", "-:", "-;", "-/", "-+", "-{", "-}", "-[", "-]", "+~", "+!", "+@", "+#", "+$", "+%", "+^", "+&", "+*", "+(", "+)", "+<", "+>", "+?", "+`", "+'", "+=", "+:", "+;", "+/", "+-", "+|", "+{", "+}", "+[", "+]", "|~", "|!", "|$", "|%", "|&", "|*", "|(", "|)", "|<", "|>", "|?", "|`", "|'", "|=", "|:", "|;", "|/", "|-", "|+", "|{", "|}", "|[", "|]", "{~", "{!", "{@", "{#", "{$", "{%", "{^", "{&", "{*", "{(", "{)", "{<", "{>", "{?", "{`", "{'", "{=", "{:", "{;", "{/", "{-", "{+", "{|", "{}", "{[", "{]", "}~", "}!", "}@", "}#", "}$", "}%", "}^", "}&", "}*", "}(", "})", "}<", "}>", "}?", "}`", "}'", "}=", "}:", "};", "}/", "}-", "}+", "}|", "}{", "}[", "}]", "[~", "[!", "[@", "[#", "[$", "[%", "[^", "[&", "[*", "[(", "[)", "[<", "[>", "[?", "[`", "['", "[=", "[:", "[;", "[/", "[-", "[+", "[|", "[{", "[}", "[]", "]~", "]!", "]@", "]#", "]$", "]%", "]^", "]&", "]*", "](", "])", "]<", "]>", "]?", "]`", "]'", "]=", "]:", "];", "]/", "]-", "]+", "]|", "]{", "]}", "][" };
            string[] HTMLorURLEncode = { "CENZIC123", "CENZIC456", "CENZIC", "./:;", ":;", "-./", ">?@", "{|}", "}~", "}~\\" };
            //"=",( ) ; " , "//"
            if (Request.HttpMethod == "GET")
            {
                // Below code blocks incoming HTTP GET requests which contains in query string parameters intended to be used in POST
                var hasPostParams = (Request.QueryString["__EVENTTARGET"] ??
                                     Request.QueryString["__VIEWSTATE"] ??
                                     Request.QueryString["__EVENTARGUMENT"] ??
                                     Request.QueryString["__EVENTVALIDATION"]) != null;

                if (hasPostParams)
                {
                    //Throwing an exception when the request is tampering
                    //
                    throw new HttpException(405, "No GET allowed for a POST");
                    //
                    //
                }
            }

            if (!String.IsNullOrEmpty("1"))
            {
                if (1 == 1)
                {
                    if (Request.HttpMethod == "POST")
                    {
                        foreach (string key in Request.Form.Keys)
                        {
                            string FormKey = Convert.ToString(Request.Form[key]).ToUpper() ?? "";

                            //if (Convert.ToString(Request.Form[key]).Contains("\")(") || Convert.ToString(Request.Form[key]).Contains("=*") || Convert.ToString(Request.Form[key]).Contains(")("))
                            foreach (string val in LDAParr)
                            {
                                if (FormKey.Contains(val.ToUpper()) && key != "__EVENTTARGET" && key != "__VSKEY" && key != "__EVENTVALIDATION" && key != "__VIEWSTATE" && key != "CSRFToken")
                                {
                                    throw new HttpException(400, "LDAP Injection Identified");
                                }
                            }

                            //foreach (string val in SQLArr)
                            //{
                            //    if (FormKey.Contains(val.ToUpper()) && key != "__EVENTTARGET" && key != "__VSKEY" && key != "__EVENTVALIDATION" && key != "__VIEWSTATE")
                            //        throw new HttpException(400, "Blind SQL Injection Identified");
                            //}

                            if (FormKey == "*" || FormKey == "&" || FormKey == "|" || FormKey == "%26" || FormKey == "/" || FormKey == "%7C")
                            {
                                throw new HttpException(400, "LDAP Injection Identified");
                            }
                        }
                        foreach (string key in Request.Form.Keys)
                        {
                            string FormKey = key == null ? "" : Convert.ToString(Request.Form[key]).Replace("%20", "").Replace(" ", "").ToUpper();
                            foreach (string val in LDAParr)
                            {
                                if ((FormKey.Contains(val)) && (key != "__EVENTTARGET" && key != "__VSKEY" && key != "__EVENTVALIDATION" && key != "__VIEWSTATE" && key != "CSRFToken"))
                                {
                                    throw new HttpException(400, "Blind SQL Injection Identified");
                                }

                                //Match _MMC = Regex.Match(FormKey.ToLower(), @"(\d+)(\sor\s)(\d+)=(\d+)");
                                //Match _MMC1 = Regex.Match(FormKey.ToLower(), @"(\d+)(\sand\s)(\d+)=(\d+)");
                                //Match _MMC2 = Regex.Match(FormKey.ToLower(), @"(\d+)(\=\s)(\d+)(\sand\s)(\d+)");
                                //Match _MMC3 = Regex.Match(FormKey.ToLower(), @"(\d+)(\=\s)(\d+)(\sor\s)(\d+)");
                                //if (_MMC.Success || _MMC1.Success || _MMC2.Success || _MMC3.Success)
                            }
                            if (
                                (
                                    (FormKey.Contains("AND") && FormKey.Contains("?") && FormKey.Contains("&") && FormKey.Contains("=")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains("=")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains("<>")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains("<")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains(">")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains("LIKE")) ||
                                    (FormKey.Contains("OR ") && FormKey.Contains("NULL")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains("=")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains("<>")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains("<")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains(">")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains("LIKE")) ||
                                    (FormKey.Contains(" OR") && FormKey.Contains("NULL"))

                                    || (FormKey.Contains("AND ") && FormKey.Contains("<>")) ||
                                    (FormKey.Contains("AND ") && FormKey.Contains("<")) ||
                                    (FormKey.Contains("AND ") && FormKey.Contains(">")) ||
                                    (FormKey.Contains("AND ") && FormKey.Contains("LIKE")) ||
                                    (FormKey.Contains("AND ") && FormKey.Contains("NULL")) ||
                                    (FormKey.Contains(" AND") && FormKey.Contains("<>")) ||
                                    (FormKey.Contains(" AND") && FormKey.Contains("<")) ||
                                    (FormKey.Contains(" AND") && FormKey.Contains(">")) ||
                                    (FormKey.Contains(" AND") && FormKey.Contains("LIKE")) ||
                                    (FormKey.Contains(" AND") && FormKey.Contains("NULL")) ||
                                    (FormKey.Contains(" UNION") && FormKey.Contains("SELECT")) ||
                                    (FormKey.Contains("UNION ") && FormKey.Contains("SELECT"))
                                )
                                &&
                                (
                                    key != "__EVENTTARGET" &&
                                    key != "__VSKEY" &&
                                    key != "__EVENTVALIDATION" &&
                                    key != "__VIEWSTATE" &&
                                    key != "CSRFToken")
                                )
                            {
                                throw new HttpException(400, "Blind SQL Injection Identified");
                            }
                        }
                        foreach (string key in Request.Form.Keys)
                        {
                            string FormKey = key == null ? "" : Request.Form[key].ToUpper();
                            foreach (string val in HTMLorURLEncode)
                            {
                                if (FormKey.Contains(val))
                                {
                                    throw new HttpException("HTMLorURLEncode Identified");
                                }
                            }
                        }
                    }
                    if (Request.HttpMethod == "POST" || Request.HttpMethod == "GET")
                    {
                        if (!string.IsNullOrEmpty(Request.Url.Query))
                        {
                            string URLQuery = Request.Url.Query ?? "";
                            if (Request.Url.AbsolutePath.Contains("ScriptResource.axd"))
                            {
                                return;
                            }
                            URLQuery = URLQuery.Replace("%20", "").Replace(" ", "").ToUpper();

                            //if (URLQuery.Contains("'or'") || URLQuery.Contains("'and'") || URLQuery.Contains("'='") || URLQuery.Contains("'") || URLQuery.Contains("\"") || URLQuery.Contains("%22"))
                            foreach (string val in SQLArr)
                            {
                                if (URLQuery.Contains(val.ToUpper()))
                                {
                                    throw new HttpException(400, "Blind SQL Injection Identified");
                                }
                            }

                            foreach (string val in LDAParr)
                            {
                                //if (URLQuery.Contains("\")(") || URLQuery.Contains("=*") || URLQuery.Contains("=*")
                                //    || URLQuery.Contains("%3d%2a") || URLQuery.Contains(")(") || URLQuery.Contains(")")
                                //    || URLQuery.Contains("(") || URLQuery.Contains("*!") || URLQuery.Contains("*|")
                                //    || URLQuery.Contains("/") || URLQuery.Contains("'") || URLQuery.Contains("!") ||
                                //    URLQuery.Contains("@*") || URLQuery.Contains("*|") || URLQuery.Contains("*/")
                                //    || URLQuery.Contains("/*") || URLQuery.Contains("%3D%2A") || URLQuery.Contains("/*"))
                                if (URLQuery.Contains(val.ToUpper()))
                                {
                                    throw new HttpException(400, "LDAP Injection Identified");
                                }
                            }

                            NameValueCollection Items = HttpUtility.ParseQueryString(URLQuery);
                            foreach (string QS in Items.AllKeys)
                            {
                                string QueryString = QS == null ? "" : QS.ToUpper();
                                string QSValue     = QS == null ? "" : Items[QS].ToUpper();
                                if (QueryString == "*" || QSValue == "*" || QueryString == "&" || QSValue == "&" || QueryString == "%7C" || QSValue == "%7C" || QueryString == "%26" || QSValue == "%26" || QueryString == "|" || QSValue == "|")
                                {
                                    throw new HttpException(400, "LDAP Injection Identified");
                                }
                                if (QueryString == "*" || QSValue == "*" || QueryString == "?" || QSValue == "?" || QueryString == "&" || QSValue == "&" || QueryString == "&")
                                {
                                    throw new HttpException(400, "LDAP Injection Identified");
                                }
                                if (
                                    (
                                        (QSValue.Contains("AND") && QSValue.Contains("?") && QSValue.Contains("&") && QSValue.Contains("="))

                                        || (QSValue.Contains("OR ") && QSValue.Contains("=")) ||
                                        (QSValue.Contains("OR ") && QSValue.Contains("<>")) ||
                                        (QSValue.Contains("OR ") && QSValue.Contains("<")) ||
                                        (QSValue.Contains("OR ") && QSValue.Contains(">")) ||
                                        (QSValue.Contains("OR ") && QSValue.Contains("LIKE")) ||
                                        (QSValue.Contains("OR ") && QSValue.Contains("NULL")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains("=")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains("<>")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains("<")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains(">")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains("LIKE")) ||
                                        (QSValue.Contains(" OR") && QSValue.Contains("NULL"))

                                        || (QSValue.Contains("AND ") && QSValue.Contains("<>")) ||
                                        (QSValue.Contains("AND ") && QSValue.Contains("<")) ||
                                        (QSValue.Contains("AND ") && QSValue.Contains(">")) ||
                                        (QSValue.Contains("AND ") && QSValue.Contains("LIKE")) ||
                                        (QSValue.Contains("AND ") && QSValue.Contains("NULL")) ||
                                        (QSValue.Contains(" AND") && QSValue.Contains("<>")) ||
                                        (QSValue.Contains(" AND") && QSValue.Contains("<")) ||
                                        (QSValue.Contains(" AND") && QSValue.Contains(">")) ||
                                        (QSValue.Contains(" AND") && QSValue.Contains("LIKE")) ||
                                        (QSValue.Contains(" AND") && QSValue.Contains("NULL")) ||
                                        (QSValue.Contains("UNION") && QSValue.Contains("SELECT")) ||
                                        (QSValue.Contains("UNION ") && QSValue.Contains("SELECT"))


                                    )
                                    )
                                {
                                    throw new HttpException(400, "Blind SQL Injection Identified");
                                }
                                if ((QueryString.Contains("AND") && QueryString.Contains("=")) || (QueryString.Contains("OR") && QueryString.Contains("=")) || (QueryString.Contains("AND") && QueryString.Contains("LIKE")) || (QueryString.Contains("UNION") && QueryString.Contains("SELECT")) || (QueryString.Contains("OR") && QueryString.Contains("LIKE")))
                                {
                                    throw new HttpException(400, "Blind SQL Injection Identified");
                                }
                            }
                            foreach (string val in HTMLorURLEncode)
                            {
                                if (URLQuery.Contains(val.ToUpper()))
                                {
                                    throw new HttpException("HTMLorURLEncode Identified");
                                }
                            }
                        }
                    }
                }
            }
        }
示例#31
0
 public static partial uint MsgWaitForMultipleObjectsEx(uint nCount, IntPtr pHandles, uint dwMilliseconds, QS dwWakeMask, MWMO dwFlags);