基于C的Windows窗体端口扫描程序分析

基于C#的Windows窗体端口扫描程序分析沈宫新摘要摘要:C#语言一方面继承了C语言和C++语言简洁高效的优点,另一方面吸收了JAVA语言面向对象的设计思想,是目前主流的编程语言之一。C#语言可以高效便捷地开发各种应用程序,微软公司提供了完备的类库以方便程序员开发。在网络开发方面,端口扫描程序是网络软件常用的功能模块。通过分析端口扫描程序中出现的问题,找出问题产生的原因,提出相应解决办法,对采用C#语言开发类似软件有一定的参考作用。关键词关键词:C#语言;网络软件;端口扫描DOIDOI:10.11907/rjdk.162211:TP312:A:16727800(2017)0010038030引言C#语言是目前主流的编程语言之一。它采用控件事件来绑定窗体方法,实现了消息的便捷传递,大大简化了窗体程序的编写,使程序员可以专注于业务逻辑开发,不必花费时间在消息路由上。本文采用C#语言实现一个具有WinForm窗体的端口扫描程序,并重点分析可能出现的几个问题,为开发者提供参考。1端口扫描程序原理端口扫描作为网络安全扫描的核心技术之一,广泛应用于网络扫描器中,如著名的Namp和Nessus。在计算机中,一个端口就是一个潜在的通信通道,对目标计算机进行端口扫描,可使用户了解本机对外界提供了哪些服务,从而为管理网络提供参考。端口扫描技术原理[1]:向目标计算机的TCP/IP服务算法的基础上加上T-BCJR的复杂度,而高信噪比时,错误帧数量少,此时的复杂度基本接近SOVA算法。总体上,改进译码算法的复杂度与SOVA算法相近。4结语连续相位调制是一种先进的调制技术,近年来在通信、遥感等领域得到广泛重视。本文介绍了连续相位调制系统的主要译码算法,并针对算法的局限性在高斯白噪声信道下给出了一种改进的算法。通过仿真验证了该算法的可行性,当误比特率达到104时,改进译码的信噪比只比BCJR算法低0.15dB左右,复杂度也大大降低。断服务端口是打开还是关闭,得到端口提交的服务和信息。端口扫描的常见种类有TCPSIN扫描、TCPConnect扫描、秘密扫描和其它扫描。扫描分类如图1所示。本文使用其中的TCPconnect扫描,它是最基本的TCP扫描。操作系统提供connect()系统调用,用来与每个感兴趣的目标计算机端口连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口不能用,即没有提供服务。这种技术最大的优点是不需要任何权限,系统中的任何用户都有权使用这个调用;另一个好处就是速度:如果对每个目标端口以线性方式使用单独的connect()调用,会花费相当长的时间,而这里可以同时打开多个套接字,从而加速扫描。2端口扫描程序设计本开发除了系统提供的默认命名空间和窗体命名空间外,还要用到和网络开发和线程开发相关的命名空间。主要流程是在扫描窗体界面中设定目标主机IP地址和扫描端口范围[2-3],在主线程中启动多个线程来扫描端口。2.1命名空间和类涉及的网络相关命名空间包括System.net命名空间,要使用其中的IPAddress类和IPEndPoint类来构建统一、简单的网络编程接口。使用System.Net.Sockets命名空间中的Socket类来实现Berkeley套接字。引用System.Threading命名空间,使用其中的Thread类来实现多个线程同时扫描端口以加快扫描速度。2.2端口扫描程序流程启动多个线程,在线程中开始扫描端口,扫描程序中设定的套接字,以目标主机和端口为端点执行TCPconnect方法。执行后,通过判断套接字的Connected属性来确定端口是否开放。主要流程如图2所示。3端口扫描程序中的问题及分析对扫描程序进行测试。首先在局域网IP地址为10.110.32.16的主机上开放80端口,然后启动扫描程序,在目标IP中填入10.110.32.16,端口选择79到80端口,点击开始扫描。3.1扫描端口不能显示尽管已经开放了80端口,可是扫描后并没有发现该端口被写入相应控件,但确实调用了Listbox控件的Items集合属性的add方法并添加了具体的开放端口。经过分析,C#在UI线程创建子线程操作UI控件时,也就是在UI线程以外的子线程操作UI控件时,系统引发了一个InvalidOperationException异常,因为访问Windows窗体控件本质上不是安全线程。如果有两个或多个线程操作某一控件,则可能会迫使该控件进入一种不一致状态,还可能出...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?