• 热门专题

自定义控件伪装“病毒”

作者:单亚林 ——菜鸟D  发布日期:2014-12-19 19:37:35
Tag标签:控件  病毒  
  •   这几天,菜鸟D一直在搞自定义控件(都是经理的错),前几天被设计界面的加载出错整的相当惨,好在找到了解决办法。就在今天,同事无意中提到的一个问题,让菜鸟D折腾了一天。

          “你知道吗?自定义控件往设计器界面里拖的时候,会执行自定义控件的某些方法。”

      “当然知道,我重写自定义控件的宽度属性,可以让自定义控件的宽度改变时,内部控件的定位也随之发生变化。”

      “来看看这个...”

      “我X,你这怎么做到的?我懂了...”

      经过这几天的折腾,发现了“自定义控件在设计器界面也会执行一些代码,甚至都不需要程序运行”的特点。然后就实现了拖到窗体上一个自定义控件,关闭设计界面后再次打开,窗体的宽度逐渐缩减的效果。心里一猥琐:能不能开个线程,把目标的C盘格了,感觉告诉我这是可行的。

         先说一下怎么实现的,直接上代码:

         

            //自定义控件--这是所有控件拖到窗体上一定会触发的事件
            private void ucTest_VisibleChanged(object sender, EventArgs e)
            {
               //new Thread(test111).Start();
                //new Thread(test222).Start();
            }
           //窗体宽度缩减
            private void test111()
            {
                Form ff = this.Parent as Form;
                if (ff != null)
                {
                    while (ff.Width > 50)
                    {
                        ff.Width--;
                    }
                }
            }
            //10次弹窗而已
            private void test222()
            {
                int i = 0;
                Form ff;
                while (i < 10)
                {
                    ff = new Form();
                    ff.Text = i.ToString();
                    ff.ShowDialog();
                    i++;
                }

      在自定义控件中找一个在设计界面就会执行的方法,如VisibleChanged事件(还有很多,这里只举一例),然后把想要执行的代码写进去,生成。最好写一个线程,线程容易伪装嘛。然后当自定义控件被拖到设计界面的窗体上时,“崩——吓老子一跳!”也许什么事也没发生,也许效果已经很明显了。如果什么也没发生,关掉设计器界面再打开一次,这次一定会执行。

         如果你写的代码杀意太强,把自己电脑弄崩了,呵呵,自己作死怨不了别人。然后试想一下,定义一个自定义控件,如上方法注入攻击(开个线程,偷窥硬盘上的资料等等,你懂得),用混淆器混淆一下代码,放到网上免费使用,然后别人往程序里一拖,哈哈中招了吧...(无限YY中)

      其实,这东西也不可能当病毒来用,这种方式的传播范围很窄,几乎没什么传播的范围,程序猿也不一定到网上找什么自定义控件,所以几乎不会被传播(程序猿在广大网民中的比例还是不高的)。杀伤力再高有毛用,再说要到网上查传播源也是很容易的,一不小心家里的水表就被抄了。

         本文的目的在于,给大家找了一个恶趣味的工具罢了(现在懂了DesignMode的作用了吧)。

         菜鸟D希望这篇文字能帮到你。

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规