在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。
首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码:
#include
[separator]
int g1=0, g2=0, g3=0;
int main()
{
static int s1=0, s2=0, s3=0;
int v1=0, v2=0, v3=0;
//打印出各个变量的内存地址
printf("0x%08x\n",&v1); //打印各本地变量的内存地址
printf("0x%08x\n",&v2);
printf("0x%08x\n\n",&v3);
printf("0x%08x\n",&g1); //打印各全局变量的内存地址
printf("0x%08x\n",&g2);
printf("0x%08x\n\n",&g3);
printf("0x%08x\n",&s1); //打印各静态变量的内存地址
printf("0x%08x\n",&s2);
printf("0x%08x\n\n",&s3);
return 0;
}
编译后的执行结果是:
0x0012ff78
0x0012ff7c
0x0012ff80
0x004068d0
0x004068d4
0x004068d8
0x004068dc
0x004068e0
0x004068e4
输出的结果就是变量的内存地址。其中v1,v2,v3是本地变量,g1,g2,g3是全局变量,s1,s2,s3是静态变量。你可以看到这些变量在内存是连续分布的,但是本地变量和全局变量分配的内存地址差了十万八千里,而全局变量和静态变量分配的内存是连续的。这是因为本地变量和全局/静态变量是分配在不同类型的内存区域中的结果。对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。
├———————┤低端内存区域
│ …… │
├———————┤
│ 动态数据区 │
├———————┤
│ …… │
├———————┤
│ 代码区 │
├———————┤
│ 静态数据区 │
├———————┤
│ …… │
├———————┤高端内存区域
堆栈是一个先进后出的数据结构,栈顶地址总是小于等于栈的基地址。我们可以先了解一下函数调用的过程,以便对堆栈在程序中的作用有更深入的了解。不同的语言有不同的函数调用规定,这些因素有参数的压入规则和堆栈的平衡。windows API的调用规则和ANSI C的函数调用规则是不一样的,前者由被调函数调整堆栈,后者由调用者调整堆栈。两者通过“__stdcall”和“__cdecl”前缀区分。先看下面这段代码:
#include
void __stdcall func(int param1,int param2,int param3)
{
int var1=param1;
int var2=param2;
int var3=param3;
printf("0x%08x\n",¶m1); //打印出各个变量的内存地址
printf("0x%08x\n",¶m2);
printf("0x%08x\n\n",¶m3);
printf("0x%08x\n",&var1);
printf("0x%08x\n",&var2);
printf("0x%08x\n\n",&var3);
return;
}
int main()
{
func(1,2,3);
return 0;
}
编译后的执行结果是:
0x0012ff78
0x0012ff7c
0x0012ff80
0x0012ff68
0x0012ff6c
0x0012ff70
├———————┤<—函数执行时的栈顶(ESP)、低端内存区域
│ …… │
├———————┤
│ var 1 │
├———————┤
│ var 2 │
├———————┤
│ var 3 │
├———————┤
│ RET │
├———————┤<—“__cdecl”函数返回后的栈顶(ESP)
│ parameter 1 │
├———————┤
│ parameter 2 │
├———————┤
│ parameter 3 │
├———————┤<—“__stdcall”函数返回后的栈顶(ESP)
│ …… │
├———————┤<—栈底(基地址 EBP)、高端内存区域
上图就是函数调用过程中堆栈的样子了。首先,三个参数以从又到左的次序压入堆栈,先压“param3”,再压“param2”,最后压入“param1”;然后压入函数的返回地址(RET),接着跳转到函数地址接着执行(这里要补充一点,介绍UNIX下的缓冲溢出原理的文章中都提到在压入RET后,继续压入当前EBP,然后用当前ESP代替EBP。然而,有一篇介绍windows下函数调用的文章中说,在windows下的函数调用也有这一步骤,但根据我的实际调试,并未发现这一步,这还可以从param3和var1之间只有4字节的间隙这点看出来);第三步,将栈顶(ESP)减去一个数,为本地变量分配内存空间,上例中是减去12字节(ESP=ESP-3*4,每个int变量占用4个字节);接着就初始化本地变量的内存空间。由于“__stdcall”调用由被调函数调整堆栈,所以在函数返回前要恢复堆栈,先回收本地变量占用的内存(ESP=ESP+3*4),然后取出返回地址,填入EIP寄存器,回收先前压入参数占用的内存(ESP=ESP+3*4),继续执行调用者的代码。参见下列汇编代码:
;--------------func 函数的汇编代码-------------------
:00401000 83EC0C sub esp, 0000000C //创建本地变量的内存空间
:00401003 8B442410 mov eax, dword ptr [esp+10]
:00401007 8B4C2414 mov ecx, dword ptr [esp+14]
:0040100B 8B542418 mov edx, dword ptr [esp+18]
:0040100F 89442400 mov dword ptr [esp], eax
:00401013 8D442410 lea eax, dword ptr [esp+10]
:00401017 894C2404 mov dword ptr [esp+04], ecx
……………………(省略若干代码)
:00401075 83C43C add esp, 0000003C ;恢复堆栈,回收本地变量的内存空间
:00401078 C3 ret 000C ;函数返回,恢复参数占用的内存空间
;如果是“__cdecl”的话,这里是“ret”,堆栈将由调用者恢复
;-------------------函数结束-------------------------
;--------------主程序调用func函数的代码--------------
:00401080 6A03 push 00000003 //压入参数param3
:00401082 6A02 push 00000002 //压入参数param2
:00401084 6A01 push 00000001 //压入参数param1
:00401086 E875FFFFFF call 00401000 //调用func函数
;如果是“__cdecl”的话,将在这里恢复堆栈,“add esp, 0000000C”
聪明的读者看到这里,差不多就明白缓冲溢出的原理了。先来看下面的代码:
#include
#include
void __stdcall func()
{
char lpBuff[8]="\0";
strcat(lpBuff,"AAAAAAAAAAA");
return;
}
int main()
{
func();
return 0;
}
编译后执行一下回怎么样?哈,“"0x00414141"指令引用的"0x00000000"内存。该内存不能为"read"。”,“非法操作”喽!"41"就是"A"的16进制的ASCII码了,那明显就是strcat这句出的问题了。"lpBuff"的大小只有8字节,算进结尾的'\0',那strcat最多只能写入7个"A",但程序实际写入了11个"A"外加1个'\0'。再来看看上面那幅图,多出来的4个字节正好覆盖了RET的所在的内存空间,导致函数返回到一个错误的内存地址,执行了错误的指令。如果能精心构造这个字符串,使它分成三部分,前一部份仅仅是填充的无意义数据以达到溢出的目的,接着是一个覆盖RET的数据,紧接着是一段shellcode,那只要着个RET地址能指向这段shellcode的第一个指令,那函数返回时就能执行shellcode了。但是软件的不同版本和不同的运行环境都可能影响这段shellcode在内存中的位置,那么要构造这个RET是十分困难的。一般都在RET和shellcode之间填充大量的NOP指令,使得exploit有更强的通用性。
├———————┤<—低端内存区域
│ …… │
├———————┤<—由exploit填入数据的开始
│ │
│ buffer │<—填入无用的数据
│ │
├———————┤
│ RET │<—指向shellcode,或NOP指令的范围
├———————┤
│ NOP │
│ …… │<—填入的NOP指令,是RET可指向的范围
│ NOP │
├———————┤
│ │
│ shellcode │
│ │
├———————┤<—由exploit填入数据的结束
│ …… │
├———————┤<—高端内存区域
windows下的动态数据除了可存放在栈中,还可以存放在堆中。了解C++的朋友都知道,C++可以使用new关键字来动态分配内存。来看下面的C++代码:
#include
#include
#include
void func()
{
char *buffer=new char[128];
char bufflocal[128];
static char buffstatic[128];
printf("0x%08x\n",buffer); //打印堆中变量的内存地址
printf("0x%08x\n",bufflocal); //打印本地变量的内存地址
printf("0x%08x\n",buffstatic); //打印静态变量的内存地址
}
void main()
{
func();
return;
}
程序执行结果为:
0x004107d0
0x0012ff04
0x004068c0
可以发现用new关键字分配的内存即不在栈中,也不在静态数据区。VC编译器是通过windows下的“堆(heap)”来实现new关键字的内存动态分配。在讲“堆”之前,先来了解一下和“堆”有关的几个API函数:
HeapAlloc 在堆中申请内存空间
HeapCreate 创建一个新的堆对象
HeapDestroy 销毁一个堆对象
HeapFree 释放申请的内存
HeapWalk 枚举堆对象的所有内存块
GetProcessHeap 取得进程的默认堆对象
GetProcessHeaps 取得进程所有的堆对象
LocalAlloc
GlobalAlloc
当进程初始化时,系统会自动为进程创建一个默认堆,这个堆默认所占内存的大小为1M。堆对象由系统进行管理,它在内存中以链式结构存在。通过下面的代码可以通过堆动态申请内存空间:
HANDLE hHeap=GetProcessHeap();
char *buff=HeapAlloc(hHeap,0,8);
其中hHeap是堆对象的句柄,buff是指向申请的内存空间的地址。那这个hHeap究竟是什么呢?它的值有什么意义吗?看看下面这段代码吧:
#pragma comment(linker,"/entry:main") //定义程序的入口
#include
_CRTIMP int (__cdecl *printf)(const char *, ...); //定义STL函数printf
/*---------------------------------------------------------------------------
写到这里,我们顺便来复习一下前面所讲的知识:
(*注)printf函数是C语言的标准函数库中函数,VC的标准函数库由msvcrt.dll模块实现。
由函数定义可见,printf的参数个数是可变的,函数内部无法预先知道调用者压入的参数个数,函数只能通过分析第一个参数字符串的格式来获得压入参数的信息,由于这里参数的个数是动态的,所以必须由调用者来平衡堆栈,这里便使用了__cdecl调用规则。BTW,Windows系统的API函数基本上是__stdcall调用形式,只有一个API例外,那就是wsprintf,它使用__cdecl调用规则,同printf函数一样,这是由于它的参数个数是可变的缘故。
---------------------------------------------------------------------------*/
void main()
{
HANDLE hHeap=GetProcessHeap();
char *buff=HeapAlloc(hHeap,0,0x10);
char *buff2=HeapAlloc(hHeap,0,0x10);
HMODULE hMsvcrt=LoadLibrary("msvcrt.dll");
printf=(void *)GetProcAddress(hMsvcrt,"printf");
printf("0x%08x\n",hHeap);
printf("0x%08x\n",buff);
printf("0x%08x\n\n",buff2);
}
执行结果为:
0x00130000
0x00133100
0x00133118
hHeap的值怎么和那个buff的值那么接近呢?其实hHeap这个句柄就是指向HEAP首部的地址。在进程的用户区存着一个叫PEB(进程环境块)的结构,这个结构中存放着一些有关进程的重要信息,其中在PEB首地址偏移0x18处存放的ProcessHeap就是进程默认堆的地址,而偏移0x90处存放了指向进程所有堆的地址列表的指针。windows有很多API都使用进程的默认堆来存放动态数据,如windows 2000下的所有ANSI版本的函数都是在默认堆中申请内存来转换ANSI字符串到Unicode字符串的。对一个堆的访问是顺序进行的,同一时刻只能有一个线程访问堆中的数据,当多个线程同时有访问要求时,只能排队等待,这样便造成程序执行效率下降。
最后来说说内存中的数据对齐。所位数据对齐,是指数据所在的内存地址必须是该数据长度的整数倍,DWORD数据的内存起始地址能被4除尽,WORD数据的内存起始地址能被2除尽,x86 CPU能直接访问对齐的数据,当他试图访问一个未对齐的数据时,会在内部进行一系列的调整,这些调整对于程序来说是透明的,但是会降低运行速度,所以编译器在编译程序时会尽量保证数据对齐。同样一段代码,我们来看看用VC、Dev-C++和lcc三个不同编译器编译出来的程序的执行结果:
#include
int main()
{
int a;
char b;
int c;
printf("0x%08x\n",&a);
printf("0x%08x\n",&b);
printf("0x%08x\n",&c);
return 0;
}
这是用VC编译后的执行结果:
0x0012ff7c
0x0012ff7b
0x0012ff80
变量在内存中的顺序:b(1字节)-a(4字节)-c(4字节)。
这是用Dev-C++编译后的执行结果:
0x0022ff7c
0x0022ff7b
0x0022ff74
变量在内存中的顺序:c(4字节)-中间相隔3字节-b(占1字节)-a(4字节)。
这是用lcc编译后的执行结果:
0x0012ff6c
0x0012ff6b
0x0012ff64
变量在内存中的顺序:同上。
三个编译器都做到了数据对齐,但是后两个编译器显然没VC“聪明”,让一个char占了4字节,浪费内存哦。
基础知识:
堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。
在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类,System.Management下面的一些WMI操作的类。虽然用ServiceController可以很方便的实现对服务的控制,而且很直观、简洁和容易理解。但是我认为他的功能同通过WMI来操作服务相比,那可能就有些单一了,并且对多个服务的操作可能就比较麻烦,也无法列出系统中的所有服务的具体数据。这里要讲的就是如何使用System.Management组件来操作远程和本地计算机上的服务。
[separator] WMI作为Windows 2000操作系统的一部分提供了可伸缩的,可扩展的管理架构.公共信息模型(CIM)是由分布式管理任务标准协会(DMTF)设计的一种可扩展的、面向对象的架构,用于管理系统、网络、应用程序、数据库和设备。Windows管理规范也称作CIM for Windows,提供了统一的访问管理信息的方式。如果需要获取详细的WMI信息请读者查阅MSDN。System.Management组件提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据 Windows 管理规范 (WMI) 结构对系统、设备和应用程序设置检测点有关的。
但是上面并不是我们最关心的,下面才是我们需要谈的话题。
毫无疑问,我们要引用System.Management.Dll程序集,并要使用System.Management命名空间下的类,如ManagementClass,ManagementObject等。下面用一个名为Win32ServiceManager的类把服务的一些相关操作包装了一下,代码如下:
using System;
using System.Management;
namespace ZZ.Wmi
{
public class Win32ServiceManager
{
private string strPath;
private ManagementClass managementClass;
public Win32ServiceManager():this(".",null,null)
{
}
public Win32ServiceManager(string host,string userName,string password)
{
this.strPath = "\\\\"+host+"\\root\\cimv2:Win32_Service";
this.managementClass = new ManagementClass(strPath);
if(userName!=null&&userName.Length>0)
{
ConnectionOptions connectionOptions = new ConnectionOptions();
connectionOptions.Username = userName;
connectionOptions.Password = password;
ManagementScope managementScope = new ManagementScope( "\\\\" +host+ "\\root\\cimv2",connectionOptions) ;
this.managementClass.Scope = managementScope;
}
}
// 验证是否能连接到远程计算机
public static bool RemoteConnectValidate(string host,string userName,string password)
{
ConnectionOptions connectionOptions = new ConnectionOptions();
connectionOptions.Username = userName;
connectionOptions.Password = password;
ManagementScope managementScope = new ManagementScope( "\\\\" +host+ "\\root\\cimv2",connectionOptions) ;
try
{
managementScope.Connect();
}
catch
{
}
return managementScope.IsConnected;
}
// 获取指定服务属性的值
public object GetServiceValue(string serviceName,string propertyName)
{
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
return mo[propertyName];
}
// 获取所连接的计算机的所有服务数据
public string [,] GetServiceList()
{
string [,] services = new string [this.managementClass.GetInstances().Count,4];
int i = 0;
foreach(ManagementObject mo in this.managementClass.GetInstances())
{
services[i,0] = (string)mo["Name"];
services[i,1] = (string)mo["DisplayName"];
services[i,2] = (string)mo["State"];
services[i,3] = (string)mo["StartMode"];
i++;
}
return services;
}
// 获取所连接的计算机的指定服务数据
public string [,] GetServiceList(string serverName)
{
return GetServiceList(new string []{serverName});
}
// 获取所连接的计算机的的指定服务数据
public string [,] GetServiceList(string [] serverNames)
{
string [,] services = new string [serverNames.Length,4];
ManagementObject mo = this.managementClass.CreateInstance();
for(int i = 0;i
{
mo.Path = new ManagementPath(this.strPath+".Name=\""+serverNames+"\"");
services[i,0] = (string)mo["Name"];
services[i,1] = (string)mo["DisplayName"];
services[i,2] = (string)mo["State"];
services[i,3] = (string)mo["StartMode"];
}
return services;
}
// 停止指定的服务
public string StartService(string serviceName)
{
string strRst = null;
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
try
{
if((string)mo["State"]=="Stopped")//!(bool)mo["AcceptStop"]
mo.InvokeMethod("StartService",null);
}
catch(ManagementException e)
{
strRst =e.Message;
}
return strRst;
}
// 暂停指定的服务
public string PauseService(string serviceName)
{
string strRst = null;
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
try
{
//判断是否可以暂停
if((bool)mo["acceptPause"]&&(string)mo["State"]=="Running")
mo.InvokeMethod("PauseService",null);
}
catch(ManagementException e)
{
strRst =e.Message;
}
return strRst;
}
// 恢复指定的服务
public string ResumeService(string serviceName)
{
string strRst = null;
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
try
{
//判断是否可以恢复
if((bool)mo["acceptPause"]&&(string)mo["State"]=="Paused")
mo.InvokeMethod("ResumeService",null);
}
catch(ManagementException e)
{
strRst =e.Message;
}
return strRst;
}
// 停止指定的服务
public string StopService(string serviceName)
{
string strRst = null;
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
try
{
//判断是否可以停止
if((bool)mo["AcceptStop"])//(string)mo["State"]=="Running"
mo.InvokeMethod("StopService",null);
}
catch(ManagementException e)
{
strRst =e.Message;
}
return strRst;
}
}
}
在Win32ServiceManager中通过RemoteConnectValidate静态方法来测试连接成功与否;另外提供了GetServiceValue方法和GetServiceList方法以及它的重载来获取服务信息;后面的四个方法就是对服务的状态控制了。
下面建立一个简单的窗口来使用它。
大致的界面如下:
通过vs.net 2003可以很快做出上面的窗体,下面列出了一些增加的代码:
using ZZ.Wmi;
namespace ZZForm
{
public class Form1 : System.Windows.Forms.Form
{
//……
private Win32ServiceManager serviceManager;
public Form1()
{
InitializeComponent();
this.serviceManager = null;
}
//……
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
//修改服务状态
private void buttonChangeState_Click(object sender, System.EventArgs e)
{
switch(((Button)sender).Text)
{
case "启动":
string startRst = this.serviceManager.StartService(this.listViewService.SelectedItems[0].SubItems[0].Text);
if(startRst==null)
MessageBox.Show("操作成功,请点击获取刷新按钮刷新结果!");
else
MessageBox.Show(startRst);
break;
case "暂停":
string startPause = this.serviceManager.PauseService(this.listViewService.SelectedItems[0].SubItems[0].Text);
if(startPause==null)
MessageBox.Show("操作成功,请点击获取刷新按钮刷新结果!");
else
MessageBox.Show(startPause);
break;
case "继续":
string startResume = this.serviceManager.ResumeService(this.listViewService.SelectedItems[0].SubItems[0].Text);
if(startResume==null)
MessageBox.Show("操作成功,请点击获取刷新按钮刷新结果!");
else
MessageBox.Show(startResume);
break;
case "停止":
string startStop = this.serviceManager.StopService(this.listViewService.SelectedItems[0].SubItems[0].Text);
if(startStop==null)
MessageBox.Show("操作成功,请点击获取刷新按钮刷新结果!");
else
MessageBox.Show(startStop);
break;
}
}
//获取和刷新数据
private void buttonLoadRefresh_Click(object sender, System.EventArgs e)
{
if(this.textBoxHost.Text.Trim().Length>0)
{
if(this.textBoxHost.Text.Trim()==".")
{
this.serviceManager = new Win32ServiceManager();
}
else
{
if(Win32ServiceManager.RemoteConnectValidate(this.textBoxHost.Text.Trim(),this.textBoxName.Text.Trim(),this.textBoxPassword.Text.Trim()))
{
this.serviceManager = new Win32ServiceManager(this.textBoxHost.Text.Trim(),this.textBoxName.Text.Trim(),this.textBoxPassword.Text.Trim());
}
else
{
MessageBox.Show("连接到远程计算机验证错误.");
return;
}
}
string [,] services = serviceManager.GetServiceList();
this.listViewService.BeginUpdate();
this.listViewService.Items.Clear();
for(int i=0;i
{
ListViewItem item = new ListViewItem(new string[]{services[i,0],services[i,1],services[i,2],services[i,3]});
this.listViewService.Items.Add(item);
}
this.listViewService.EndUpdate();
}
else
MessageBox.Show("请输入计算机名或IP地址");
}
}
}
说明,其实一个服务的属性和方法除了上面这几个还有很多,我们可以通过实例化 ManagementClass 类,使用它的 Properties 属性和 Methods 属性列出所有的属性和方法。上面的 Win32ServiceManager 中生成的每个服务实例都是 ManagementObejct 类型的,其实还有一种强类型的类,可以通过编程和工具来生成。
总结,通过引用 System.Management 命名空间,上面简单的实现了通过访问 \root\cimv2:Win32_Service 名称空间对服务进行显示和操作。此外,我们还可以通过访问其他名称空间来访问计算机的一些硬件信息,软件信息以及网络等,有兴趣的读者可以研究一下。
一> 序言
Windows系统服务调用是存在于Windows系统中的一个关键接口,常常称作System Call ,Sysem Service Call 或 System Service Dispatching等,在此我们就权且称之为Windows系统服务调用,它提供了操作系统环境由用户态切换到内核态的功能。虽然在国外关于Windows系统服务调用的讨论比较多,但却很少看到比较详细的中文资料,希望本文能够为和作者一样对Windows底层感兴趣并且是刚刚接触的朋友提供一些帮助。文章中将以一个内核级的进程监视/隐藏工具T-ProcMon为例来详细讨论Windows系统服务调用的相关技术细节。另需注意本文讨论的技术仅适用于基于Windows NT内核的操作系统,并以Windows 2000为例。
[separator]
二> Windows 2000系统体系结构
微软Windows 2000是一个主要面向网络服务器的操作系统,因此它和以前大家比较熟悉的Windows 9x有很大的区别。但是对于讨论一个因商业策略而出现的个人桌面操作系统的确没有太大的价值。所以我们将主要介绍一些关于NT系统内部结构的细节。Windows 2000在实现其自身目标的过程中,我们有必要讲解一些它的特性。
1. 可扩展性(Extensibility)
Windows 2000操作系统是一个面向未来的系统,所以它非常注重自身的扩展性,因为在将来可能有许多市场等方面的原因导致我们必须添加或删除目前操作系统的一些组件,这就必须要求操作系统有较强的可扩展性。为了满足扩充/删除的各种需求,Windows 2000提供了一个重要的设计思想就是子系统(Subsystem)。我们可以将一些需要扩展的操作系统功能作为一个子系统添加到Windows 2000内,就像OS/2,POSIX等一样。当然还有一个特性就是,我们可以通过为系统服务调用添加钩子来修改系统的各项行为,这就为我们提供了一个了解系统内部并扩展系统功能的机会。
2. 可靠性和健壮性(Reliability and Robust)
一个系统存在的最基本的要求就是它的稳定性,没有稳定的环境就做不出任何满意的产品。为了满足这项要求,Windows 2000提出了基于对象的访问控制权限的措施。现代的大多数微处理器都支持两种模式:用户模式(User/Normal)和内核模式(Kernel/Privileged)。操作系统组件和关键的系统组件处于内核模式,而一般用户模式的程序只能访问私有地址空间和执行非特权等级的指令。如果用户要调用一些内核组件的功能,就得通过系统服务调用来实现。
3. 兼容性(Compatibility)
Intel和Microsoft能够做到今天的一个很重要的因素就是他们支持对过去存在系统的兼容。这一点非常的关键,没有人愿意三天两头的更换系统,当然也很少有人有这个经济实力。Windows 2000为了实现对其他系统的兼容,如Dos,16位Windows等,出现了环境子系统。而在Windows 2000中必须存在的环境子系统是Win32,它是其他子系统的基础,其他子系统都是一些表面的接口,而实际上是调用了Win32提供的接口,而Win32最终也是通过系统服务调用来与内核联系的。虽然操作系统为各种环境子系统提供了不同的动态链接库,而且其中的API函数名称往往也是不同的,不过这个函数的最终都是通过相同的系统服务调用进入内核来实现的。
4. 易维护性(Maintainability)
作为一个大型的项目,Windows 2000的维护也成为了一个大型的工程。而如此巨大的项目没有很好的维护性是无法发展下去的。为此,Windows 2000使用了分层的思想,这也是一种操作系统体系结构模型。其中,系统服务调用将系统的内核模式代码和用户模式代码隔离开来,子系统使用系统服务调用为用户提供应用程序编程接口(API),而系统服务调用向下调用执行体实现各项功能。
就像在上文我们提到的操作系统存在的两种模式,这是建立在处理器的基础之上的。按理说,一般处理器可以提供从Ring0到Ring3的四种处理器模式,但是它们必须提供至少两种,那就是Ring0和Ring3。而一些特殊处理器指令只能在内核模式执行,而一些地址空间必须在内核模式才可以被访问。Windows 2000就利用了这个特点,将操作系统和其他关键组件保护起来,只有在内核模式才可以访问执行,而一般的用户程序就只能在用户态执行咯,这样就可以避免一些用户程序对操作系统代码的破坏,也就是大家看到的Windows 2000明显比Windows 9x稳定得多的主要原因。下面我们给出了Windows 2000的体系结构简图:
系统支持进程,服务进程,应用程序,环境子系统
应用程序编程接口
基于NTDLL.dll的本地系统服务 (用户模式)
-----------------------------------------
系统服务调用 (内核模式)
执行体
系统内核,设备驱动程序
硬件抽象层
三> Windows 2000本机系统服务(Native API)
Windows 2000本机系统服务又称为Windows本机应用程序编程接口,它是由执行体(Executive)为用户模式和内核模式的程序提供的系统服务集。它包含两种类型的函数:Windows 执行系统服务的系统服务调度占位程序;子系统,子系统DLL和其他本机映像使用的内部支持函数。
从用户模式调用本机系统服务是通过NTDLL.dll来实现的。表面上,Win32函数为编程人员提供了很多接口来实现我们想要的功能,但是这些Win32函数只不过是本机应用程序编程接口的一个包装器而已,它们将本机API包装起来,调用本机系统服务来实现用户期望的功能。也就是说NTDLL.dll只是系统服务调用接口在用户模式下的一个外壳。关于用户模式下的Windows本机系统服务的相关信息,请参见我以前写的一篇文章《探测Windows2K/XP/2003本机系统信息》。
我们再谈谈从内核模式调用系统服务吧,这时就不是由NTDLL.dll导出系统服务调用的函数接口了,而是由ntoskrnl.exe来实现的,它会提供两种形式的函数:ZwXxx和NtXxx,在此我们就不多说了。大家应该注意到了,在上面我们介绍的Windows 2000系统体系结构中的系统服务调用,执行体和内核都是存在于ntoskrnl.exe(在多处理器中为ntkrnlmp.exe)之中,并且是分层的。
四> Windows 2000系统服务调用机制
Windows 2000的陷阱调度(Trap Dispatching)机制包括了:中断(Interrupt),延迟过程调用(Deferred Procedure Call),异步过程调用(Asynchronous Procedure Call),异常调度(Exception Dispatching)和系统服务调用。在Intel x86的Windows 2000系统中,处理器执行int 0x2e指令来激活Windows系统服务调用;在Intel x86的Windows XP系统中处理器却是通过执行sysenter指令使系统陷入系统服务调用程序中;而在AMD的Windows XP中使用了指令syscall来实现同样的功能。我们暂时使用x86的Windows 2000为例来演示。我们先给出一个系统服务调用的模型:
mov eax, ServiceId
lea edx, ParameterTable
int 2eh
ret ParamTableBytes
其中,ServiceId清楚的说明了传递给系统服务调用的系统服务号,内核使用这个标识符来查找系统服务调度表(System Service Dispath Table)中的对应系统服务信息。在系统服务调度表中的每一项包含了一个指向系统服务程序的指针,我们Hook时就是修改这个指针使其指向我们自定义的系统服务的地址。ParameterTable是传递的参数,系统服务调用程序KiSystemService必须严格校验传递的每一个参数,并将其参数从线程的用户堆栈中复制到系统的核心堆栈以备使用。由于执行int指令会导致陷阱发生,所以在Windows 2000内的中断描述表(IDT = Interrupt Descriptor Table)中的0x2e项指向了系统服务调用程序。最后返回的ParamTableBytes是关于参数个数的信息。
现在我们已经看得出来了,系统服务调用只是一个接口,它提供了将用户模式下的请求转发到Windows 2000内核的功能,并引发处理器模式的切换。在用户看来,系统服务调用接口就是Windows内核组件功能实现对外的一个界面。系统服务调用接口定义了Windows内核提供的大量服务。
五> Windows 2000系统服务调用类型
在Windows 2000中默认存在两个系统服务调度表,它们对应了两类不同的系统服务。这两个系统服务调度表分别是:KeServiceDescriptorTable和KeServiceDescriptorTableShadow。
Windows 2000执行程序服务对应于NTDLL.dll为我们提供的系统服务调用。子系统通过调用NTDLL.dll中的函数接口来实现它们需要的功能。系统服务调度表KeServiceDescriptorTable定义了在ntoskrln.exe中实现的系统服务,通常在kernel32.dll/advapi32.dll中提供的函数接口均是调用的这个系统服务调度表中。
同时存在于Windows 2000操作系统中还有在Win32k.sys中实现的相关Win32USER和GDI函数,它们是属于另一类系统服务调用。与之对应的系统服务调度表为KeServiceDescriptorTableShadow,它提供了内核模式实现的USER和GDI服务。函数KeAddSystemServiceTable允许Win32.sys和其他设备驱动程序添加系统服务表。除了Win32k.sys服务表外,使用KeAddSystemServiceTable添加的服务表会被同时复制到KeServiceDescriptorTable和KeServiceDescriptorTableShadow中去。
我们可以看出这两类函数实现在服务调度上的区别:Win32内核API经过Kernel32.dll/advapi32.dll进入NTDLL.dll后使用int 0x2e中断进入内核,最后在Ntoskrnl.exe中实现了真正的函数调用;Win32 USER/GDI API直接通过User32.dll/Gdi32.dll进入了内核,最后却是在Win32k.sys中实现了真正的函数调用。在此我们只讨论与NTDLL.dll相关的函数,也就是我们例子中处理的函数。
六> Hook系统服务调用的作用
钩子(Hooking)是一种拦截/监听可执行代码在执行过程中相关信息的一种通用机制。它使我们了解系统内部结构,运作机制甚至修改系统行为的想法成为可能。在一个像M$存在的世界里,Windows的很多内部信息我们都是无法得知的,因为Windows不是Linux,但这并不意味着我们就此放弃!只要开动你的大脑,很多事情都会变成可能。
1. 事件追踪
你想知道Windows在什么时候会打开一个进程吗?你想知道Windows任务管理器中进程相关信息的获取调用了哪些函数吗?我们都可以使用Hook技术来实现这些你想要的信息。我们可以追踪ZwOpenProcess的执行情况,我们同样也可以追踪ZwQueryInformationProcess的执行情况,包括传递的参数和返回的结果。大家可以看到本文相关的程序T-ProcMon就是一个进程监视工具,它会追踪系统中与进程相关的各种信息。在某些我们期望的事件发生时,程序会通知用户发生了什么,这也是我们期望看到的结果。
2. 修改系统行为
操作系统为我们提供了一些通用的功能,如查询系统进程信息ZwQuerySystemInformation(SystemInformationClass == 5),它会返回系统中当前所有进程/线程的相关信息。如果我们希望隐藏一些特殊的进程那该怎么办呢?那就是修改系统服务调用,也就是修改ZwQuerySystemInformation的行为。在查询系统进程时,系统会返回一个进程信息队列,每个单元对应一个进程,如果我们想隐藏其中的某个进程,只须修改队列中的某些数据,然后返回给上层函数,它们就不会发现Xxx.exe进程存在于系统之中了。
3. 研究系统内部机制
微软提供的Windows操作系统是一个“封闭”的系统,很多内部资料都没有公布,我们可以通过Hook技术来探测系统的内部数据结构和运行机制,学习操作系统内部的操作方式。基于Hook的Windows内核黑客技术(Kernel Hacking)是非常之流行和有效,在我们探测系统的一些未公开,未文档化的技术细节时我们都可以使用钩子技术。
4. 其他
其他如我们要调试一个非常麻烦的程序时就可以使用Hook技术,这样就可以更好的帮助我们追踪系统的行动,更好的了解程序内部的执行过程。同样,为了获取系统的一些特殊性能数据,我们也可以在特定的情况下使用Hook技术。
七> Hook系统服务调用的实现
在此我们讨论Hook的对象仅限于由Windows 2000的ntoskrnl.exe提供的系统服务调用。Windows 2000系统服务调用为内核模式的代码,所以我们必须书写设备驱动程序来访问系统服务调度表。如果你对Windows 2000下基本设备驱动程序的书写不太清楚,请查阅相关的书籍,此处不做介绍。我们先回顾一下Win32内核API的实现流程。
Windows 2000系统服务调用向用户提供了经过包装的用户模式的函数接口(由NTDLL.dll提供)。当Kernel32.dll/Advapi32.dll中的函数执行时,先调用NTDLL.dll中对应的相关接口,经过参数检查后使用int 0x2e指令进入内核模式,传递相关的服务号和参数列表。在ntoskrnl.exe中维护着两个表系统服务调度表(System Service Dispath Table)和系统服务参数表(System Service Parameter Table),其中int 0x2e指令就是通过服务号在SSDT中查询相关系统服务程序指针的。现在我们已经清楚了每个系统服务调用都对应一个服务号,同时也对应一个服务程序的地址!如果我们修改SSDT中的某个系统服务程序的入口地址为指向我们自定义的函数地址,在执行完我们的代码后再执行原始系统服务地址处的代码,这不就实现了对系统服务调用的了Hook吗?
对我们来说,定位系统服务调度表是实现Hook的关键。在Windows 2000中有一个未公开的由ntoskrnl.exe导出的单元:KeServiceDescriptorTable,我们可以通过它来完成对SSDT的访问与修改。KeServiceDescriptorTable对应于一个数据结构,定义如下:
typedef struct SystemServiceDescriptorTable
{
UINT *ServiceTableBase;
UINT *ServiceCounterTableBase;
UINT NumberOfService;
UCHAR *ParameterTableBase;
}SystemServiceDescriptorTable,*PSystemServiceDescriptorTable;
其中ServiceTableBase指向系统服务程序的地址,ParameterTableBase则指向SSPT中的参数地址,它们都包含了NumberOfService这么多个单元。我们只要由KeServiceDescriptorTable找到了我们关注的系统服务调用程序,就可以修改它的ServiceTableBase参数来实现对相关系统服务调用的Hook了!
八> T-ProcMon-1.0 关键源码分析
1. 基于CUI的用户模式控制程序
由于在此之前我已经对Win32的系统服务进行了详细的介绍,现在就不做多说了,大家如果有什么疑问请参阅我以前写的文章,你可以到FZ5FZ的主页(http://www.fz5fz.org)阅读相关文章,或下载相关源代码。
2. 基于设备驱动的Hook代码
定义在用户模式与内核模式程序间通信的命令代码:
#define PROCMON_MONITOR (ULONG) CTL_CODE(FILE_DEVICE_PROCMON,0x01,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define PROCMON_HIDDEN (ULONG) CTL_CODE(FILE_DEVICE_PROCMON,0x02,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define PROCMON_HOOK (ULONG) CTL_CODE(FILE_DEVICE_PROCMON,0x03,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define PROCMON_UNHOOK (ULONG) CTL_CODE(FILE_DEVICE_PROCMON,0x04,METHOD_BUFFERED,FILE_ANY_ACCESS)
将KeServiceDescriptorTable与相关数据结构联系起来,定义系统调用:
__declspec(dllimport) ServiceDescriptorTableEntry KeServiceDescriptorTable;
#define SYSCALL(_function) KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)_function+1)]
定义各种未公开的函数,如ZwQuerySystemInformation:
typedef
NTSTATUS
(*ZWQUERYSYSTEMINFORMATION)(
IN ULONG SystemInformationClass,
IN OUT PVOID SystemInformation,
IN ULONG SystemInformaitonLength,
OUT PULONG ReturnLength OPTIONAL);
修改系统服务调用,保存原始的入口地址,修改为我们自定义的程序入口地址,如ZwQuerySystemInformation:
OldZwQuerySystemInformation = (ZWQUERYSYSTEMINFORMATION)(SYSCALL(ZwQuerySystemInformation));
_asm cli
(ZWQUERYSYSTEMINFORMATION)(SYSCALL(ZwQuerySystemInformation)) = NewZwQuerySystemInformation;
_asm sti
解除钩子,还原系统服务调用:
_asm cli
(ZWQUERYSYSTEMINFORMATION)(SYSCALL(ZwQuerySystemInformation)) = OldZwQuerySystemInformation;
_asm sti
调用原始的系统服务程序代码:
NtStatus = (OldZwQuerySystemInformation)
(SystemInformationClass,
SystemInformation,
SystemInformaitonLength,
ReturnLength);
隐藏进程,既是修改系统返回的数据队列中相关项的偏移量使起指向需要隐藏进程的下一个单元,也就是说跳过我们需要隐藏进程的单元:
if(RtlCompareUnicodeString(&pCurrentNK->Name,&ProcCur->ProcessName,TRUE) == 0)
{
RtlUnicodeStringToAnsiString(&ProcNameA,&pCurrentNK->Name,TRUE);
DbgPrint("Hidden Process Name: %s\n",ProcNameA.Buffer);
if(ProcPre != NULL)
{
if(ProcCur->NextEntryDelta != 0)
{
ProcPre->NextEntryDelta += ProcCur->NextEntryDelta;
}
else
{
ProcPre->NextEntryDelta = 0;
}
}
else
{
if(ProcCur->NextEntryDelta != 0)
{
SystemInformation = (PSYSTEM_PROCESSES)((PTSTR)ProcCur + ProcCur->NextEntryDelta);
}
else
{
SystemInformation = NULL;
}
}
break;
}
附录 T-ProcMon-1.0源代码
请参见相关文件夹中对应CUI和Driver中的源代码。
下载链接: http://www.fz5fz.org/Codes/T-ProcMon-1.0Src.rar
我们知道,在NT技术架构的Windows系统中,有一个系统内置的权限较低的匿名访问账号guest,我们经常会遇到在win2000和xp系统中设置了共享目录但别人却没法访问的情况,主要原因就是系统禁用了guest账号,只需启用该账号即可。但是由于该账号的存在往往会给系统的安全带来危害,比如:别人偷偷把你的guest激活后作为后门账号使用,更隐蔽的是直接克隆成了管理员账号,基于大多情况下该账号是不必要的,所以我们可以直接删除之以提高系统的安全性,遗憾的是在NT技术架构的Windows系统中不允许删除直接guest账号。那么有没有办法删除呢?有的,在Windows NT下有一个叫delguest的小工具就可以直接删除之,用法如下:
[separator]
C:\>delguest
DelGuest v1.2 - Copyright 1999, Arne Vidstrom
- http://www.ntsecurity.nu/toolbox/delguest/
Wrong OS version - DelGuest only runs on Windows NT 4.0!
遗憾的是该工具仅仅对Windows NT4.0有效,不能运行在Win2000/XP/2003系统中。那么我们能否手工删除guest账号吗?答案是肯定的,我们知道guest账号信息是存储在sam文件和注册表中的,对于sam文件,系统允许我们手工修改,但经我试验只要删除注册表中guest的账号注册信息我们就可达到目的。方法如下(以Windows NT和Windows 2000为例):
C:\>regedit
打开HKEY_LOCAL_MACHINE\SAM\SAM,我们会看到里面已经没有信息了,事实上是有信息的主要是我们的权限不够,一般这时候我们是Administrator权限,而事实上此时对于系统的内置的SYSTEM是可以访问的,那么如何去打开SAM下的账号信息呢?我们先关闭regedit,然后执行:
C:\>regedt32
找到HKEY_LOCAL_MACHINE窗口,选中SAM\SAM,然后点菜单中的权限设置,这时候我们可看到Administrators组只具有特殊权限,而SYSTEM账号却拥有全部控制权限,想一想这是为什么呢?其实很容易理解,SYSTEM账号是系统启动时候需要的账号,很多系统内核程序和服务程序大都是以该账号的权限运行的,若权限太低的话,恐怕我们的系统就运行不了!现在我们需要做的是更改Administrators权限(一定要在高级选项中记住该权限内容以备后用)为全部控制,这样我们就可以访问SAM下的信息了。再次运行regedit:
C:\>regedit
哈!此时HKEY_LOCAL_MACHINE\SAM\SAM下就有东西了,步步深入一直找到:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F5
和
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Guest
删除000001F5和Guest,然后退出regedit,再次运行regedt32,恢复Administrators对sam的权限(还记得Administrators的特殊权限吗?一定要记得啊,实在没有记住的话找其它同系统的机器看看也行,是一样的),这样是为了安全考虑,防止用户不小心删除系统账号。
进入dos窗口:
C:\>net user
看看,会看大guest不见了,同样使用系统管理器的用户和组查看也是没有的了。这样就大功搞成了!
在Windows XP和2003系统中,运行regedit和regedt32好像是一个程序,其实不是,仔细看就会发现在编辑菜单中多了一个“权限”选项,由此可见微软认识到以前做两个程序实现注册表管理可真是脱了KZFP。
需要提醒的是:
1、不熟悉注册表编辑的一定不要乱来,否则可能导致系统崩溃。
2、删除前可考虑通过注册表的导出功能对删除的部分进行备份,以便恢复。
深入去玩的方法是:
1、可通过编辑注册表的SAM信息可轻松删除或改动其它账号。
2、可编写程序以SYSTEM权限运行来访问注册表中的SAM信息实现删除guest。
1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器
2 compressnet Management Utility compressnet 管理实用程序
3 compressnet Compression Process 压缩进程
5 rje Remote Job Entry 远程作业登录
7 echo Echo 回显
9 discard Discard 丢弃
11 systat Active Users 在线用户
13 daytime Daytime 时间
[separator]17 qotd Quote of the Day 每*引用
18 msp Message Send Protocol 消息发送协议
19 chargen Character Generator 字符发生器
20 ftp-data File Transfer [Default Data] 文件传输协议(默认数据口)
21 ftp File Transfer [Control] 文件传输协议(控制)
22 ssh SSH Remote Login Protocol SSH远程登录协议
23 telnet Telnet 终端仿真协议
24 ? any private mail system 预留给个人用邮件系统
25 smtp Simple Mail Transfer 简单邮件发送协议
27 nsw-fe NSW User System FE NSW 用户系统现场工程师
29 msg-icp MSG ICP MSG ICP
31 msg-auth MSG Authentication MSG验证
33 dsp Display Support Protocol 显示支持协议
35 ? any private printer server 预留给个人打印机服务
37 time Time 时间
38 rap Route Access Protocol 路由访问协议
39 rlp Resource Location Protocol 资源定位协议
41 graphics Graphics 图形
42 nameserver WINS Host Name Server WINS 主机名服务
43 nicname Who Is "绰号" who is服务
44 mpm-flags MPM FLAGS Protocol MPM(消息处理模块)标志协议
45 mpm Message Processing Module [recv] 消息处理模块
46 mpm-snd MPM [default send] 消息处理模块(默认发送口)
47 ni-ftp NI FTP NI FTP
48 auditd Digital Audit Daemon 数码音频后台服务
49 tacacs Login Host Protocol (TACACS) TACACS登录主机协议
50 re-mail-ck Remote Mail Checking Protocol 远程邮件检查协议
51 la-maint IMP Logical Address Maintenance IMP(接口信息处理机)逻辑地址维护
52 xns-time XNS Time Protocol 施乐网络服务系统时间协议
53 domain Domain Name Server 域名服务器
54 xns-ch XNS Clearinghouse 施乐网络服务系统票据交换
55 isi-gl ISI Graphics Language ISI图形语言
56 xns-auth XNS Authentication 施乐网络服务系统验证
57 ? any private terminal access 预留个人用终端访问
58 xns-mail XNS Mail 施乐网络服务系统邮件
59 ? any private file service 预留个人文件服务
60 ? Unassigned 未定义
61 ni-mail NI MAIL NI邮件?
62 acas ACA Services 异步通
63 whois+ whois+ WHOIS+
64 covia Communications Integrator (CI) 通讯接口
65 tacacs-ds TACACS-Database Service TACACS数据库服务
66 sql*net Oracle SQL*NET Oracle SQL*NET
67 bootps Bootstrap Protocol Server 引导程序协议服务端
68 bootpc Bootstrap Protocol Client 引导程序协议客户端
69 tftp Trivial File Transfer 小型文件传输协议
70 gopher Gopher 信息检索协议
71 netrjs-1 Remote Job Service 远程作业服务
72 netrjs-2 Remote Job Service 远程作业服务
73 netrjs-3 Remote Job Service 远程作业服务
74 netrjs-4 Remote Job Service 远程作业服务
75 ? any private dial out service 预留给个人拨出服务
76 deos Distributed External Object Store 分布式外部对象存储
77 ? any private RJE service 预留给个人远程作业输入服务
78 vettcp vettcp 修正TCP?
79 finger Finger FINGER(查询远程主机在线用户等信息)
80 http World Wide Web HTTP 全球信息网超文本传输协议
81 hosts2-ns HOSTS2 Name Server HOST2名称服务
82 *** er *** ER Utility 传输实用程序
83 mit-ml-dev MIT ML Device 模块化智能终端ML设备
84 ctf Common Trace Facility 公用追踪设备
85 mit-ml-dev MIT ML Device 模块化智能终端ML设备
86 mfcobol Micro Focus Cobol Micro Focus Cobol编程语言
87 ? any private terminal link 预留给个人终端连接
88 kerberos Kerberos Kerberros安全认证系统
89 su-mit-tg SU/MIT Telnet Gateway SU/MIT终端仿真网关
90 dnsix DNSIX Securit Attribute Token Map DNSIX 安全属性标记图
91 mit-dov MIT Dover Spooler MIT Dover假脱机
92 npp Network Printing Protocol 网络打印协议
93 dcp Device Control Protocol 设备控制协议
94 objcall Tivoli Object Dispatcher Tivoli对象调度
95 supdup SUPDUP
96 dixie DIXIE Protocol Specification DIXIE协议规范
97 swift-rvf Swift Remote Virtural File Protocol 快速远程虚拟文件协议
98 tacnews TAC News TAC(东京大学自动计算机?)新闻协议
99 metagram Metagram Relay
101/tcp hostname NIC Host Name Server
102/tcp iso-tsap ISO-TSAP Class 0
103/tcp gppitnp Genesis Point-to-Point Trans Net
104/tcp acr-nema ACR-NEMA Digital Imag. & Comm. 300
105/tcp cso CCSO name server protocol
105/tcp csnet-ns Mailbox Name Nameserver
106/tcp 3com-tsmux 3COM-TSMUX
107/tcp rtelnet Remote Telnet Service
108/tcp snagas SNA Gateway Access Server
109/tcp pop2 Post Office Protocol - Version 2
110/tcp pop3 Post Office Protocol - Version 3
111/tcp sunrpc SUN Remote Procedure Call
112/tcp mcidas McIDAS Data Transmission Protocol
113/tcp ident
114/tcp audionews Audio News Multicast
115/tcp sftp Simple File Transfer Protocol
116/tcp ansanotify ANSA REX Notify
117/tcp uucp-path UUCP Path Service
118/tcp sqlserv SQL Services
119/tcp nntp Network News Transfer Protocol
120/tcp cfdptkt CFDPTKT
121/tcp erpc Encore Expedited Remote Pro.Call
122/tcp smakynet SMAKYNET
123/tcp ntp Network Time Protocol
124/tcp ansatrader ANSA REX Trader
125/tcp locus-map Locus PC-Interface Net Map Ser
126/tcp unitary Unisys Unitary Login
127/tcp locus-con Locus PC-Interface Conn Server
128/tcp gss-xlicen GSS X License Verification
129/tcp pwdgen Password Generator Protocol
130/tcp cisco-fna cisco FNATIVE
131/tcp cisco-tna cisco TNATIVE
132/tcp cisco-sys cisco SYSMAINT
133/tcp statsrv Statistics Service
134/tcp ingres-net INGRES-NET Service
135/tcp epmap DCE endpoint resolution
136/tcp profile PROFILE Naming System
137/tcp netbios-ns NETBIOS Name Service
138/tcp netbios-dgm NETBIOS Datagram Service
139/tcp netbios-ssn NETBIOS Session Service
140/tcp emfis-data EMFIS Data Service
141/tcp emfis-cntl EMFIS Control Service
142/tcp bl-idm Britton-Lee IDM
143/tcp imap Internet Message Access Protocol
144/tcp uma Universal Management Architecture
145/tcp uaac UAAC Protocol
146/tcp iso-tp0 ISO-IP0
147/tcp iso-ip ISO-IP
148/tcp jargon Jargon
149/tcp aed-512 AED 512 Emulation Service
150/tcp sql-net SQL-NET
151/tcp hems HEMS
152/tcp bftp Background File Transfer Program
153/tcp sgmp SGMP
154/tcp netsc-prod NETSC
155/tcp netsc-dev NETSC
156/tcp sqlsrv SQL Service
157/tcp knet-cmp KNET/VM Command/Message Protocol
158/tcp pcmail-srv PCMail Server
159/tcp nss-routing NSS-Routing
160/tcp sgmp-traps SGMP-TRAPS
161/tcp snmp SNMP
162/tcp snmptrap SNMPTRAP
163/tcp cmip-man CMIP/TCP Manager
164/tcp cmip-agent CMIP/TCP Agent
165/tcp xns-courier Xerox
166/tcp s-net Sirius Systems
167/tcp namp NAMP
168/tcp rsvd RSVD
169/tcp send SEND
170/tcp print-srv Network PostScript
171/tcp multiplex Network Innovations Multiplex
172/tcp cl/1 Network Innovations CL/1
173/tcp xyplex-mux Xyplex
174/tcp mailq MAILQ
175/tcp vmnet VMNET
176/tcp genrad-mux GENRAD-MUX
177/tcp xdmcp X Display Manager Control Protocol
178/tcp nextstep NextStep Window Server
179/tcp bgp Border Gateway Protocol
180/tcp ris Intergraph
181/tcp unify Unify
182/tcp audit Unisys Audit SITP
183/tcp ocbinder OCBinder
184/tcp ocserver OCServer
185/tcp remote-kis Remote-KIS
186/tcp kis KIS Protocol
187/tcp aci Application Communication Interface
188/tcp mumps Plus Five磗 MUMPS
189/tcp qft Queued File Transport
190/tcp gacp Gateway Access Control Protocol
191/tcp prospero Prospero Directory Service
192/tcp osu-nms OSU Network Monitoring System
193/tcp srmp Spider Remote Monitoring Protocol
194/tcp irc Internet Relay Chat Protocol
195/tcp dn6-nlm-aud DNSIX Network Level Module Audit
196/tcp dn6-smm-red DNSIX Session Mgt Module Audit Redir
197/tcp dls Directory Location Service
198/tcp dls-mon Directory Location Service Monitor
199/tcp smux SMUX
200/tcp src IBM System Resource Controller
201/tcp at-rtmp AppleTalk Routing Maintenance
202/tcp at-nbp AppleTalk Name Binding
203/tcp at-3 AppleTalk Unused
204/tcp at-echo AppleTalk Echo
205/tcp at-5 AppleTalk Unused
206/tcp at-zis AppleTalk Zone Information
207/tcp at-7 AppleTalk Unused
208/tcp at-8 AppleTalk Unused
209/tcp qmtp The Quick Mail Transfer Protocol
210/tcp z39.50 ANSI Z39.50
211/tcp 914c/g Texas Instruments 914C/G Terminal
212/tcp anet ATEXSSTR
214/tcp vmpwscs VM PWSCS
215/tcp softpc Insignia Solutions
216/tcp CAIlic Computer Associates Int磍 License Server
217/tcp dbase dBASE Unix
218/tcp mpp Netix Message Posting Protocol
219/tcp uarps Unisys ARPs
220/tcp imap3 Interactive Mail Access Protocol v3
221/tcp fln-spx Berkeley rlogind with SPX auth
222/tcp rsh-spx Berkeley rshd with SPX auth
223/tcp cdc Certificate Distribution Center
242/tcp direct Direct
243/tcp sur-meas Survey Measurement
244/tcp dayna Dayna
245/tcp link LINK
246/tcp dsp3270 Display Systems Protocol
247/tcp subntbcst_tftp SUBNTBCST_TFTP
248/tcp bhfhs bhfhs
256/tcp rap RAP
257/tcp set Secure Electronic Transaction
258/tcp yak-chat Yak Winsock Personal Chat
259/tcp esro-gen Efficient Short Remote Operations
260/tcp openport Openport
263/tcp hdap HDAP
264/tcp bgmp BGMP
280/tcp http-mgmt http-mgmt
309/tcp entrusttime EntrustTime
310/tcp bhmds bhmds
312/tcp vslmp VSLMP
315/tcp dpsi DPSI
316/tcp decauth decAuth
317/tcp zannet Zannet
321/tcp pip PIP
344/tcp pdap Prospero Data Access Protocol
345/tcp pawserv Perf Analysis Workbench
346/tcp zserv Zebra server
347/tcp fatserv Fatmen Server
348/tcp csi-sgwp Cabletron Management Protocol
349/tcp mftp mftp
351/tcp matip-type-b MATIP Type B
351/tcp bhoetty bhoetty (added 5/21/97)
353/tcp ndsauth NDSAUTH
354/tcp bh611 bh611
357/tcp bhevent bhevent
362/tcp srssend SRS Send
365/tcp dtk DTK
366/tcp odmr ODMR
368/tcp qbikgdp QbikGDP
371/tcp clearcase Clearcase
372/tcp ulistproc ListProcessor
373/tcp legent-1 Legent Corporation
374/tcp legent-2
__________________________________________________________
以下是bingtang补充:
0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的帐户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。许多管理员安装后忘记删除这些帐户。因此Hacker们在Internet上搜索tcpmux并利用这些帐户。
7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。
11 sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。这为入侵者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或帐户的程序。这与UNIX系统中“ps”命令的结果相似。再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11。
19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。
21 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers 利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
22 ssh PcAnywhere 建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。(建议在其它端口运行ssh)。还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程序的人无意中扫描到。UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0x1600)位交换后是0x0016(使进制的22)。
23 Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。
25 smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总被关闭,他们需要拨号连接到高带宽的e-mail服务器上,将简单的信息传递到不同的地址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。
53 DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录53端口。需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并假设这是对DNS查询的回复。Hacker常使用这种方法穿透防火墙。
67&68 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。
69 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文件。
79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。
98 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此外因为它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等)
109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。
110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。
111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看允许哪些RPC服务的最早的一步。常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服务的特定端口测试漏洞。记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。
113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多机器的信息(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是FTP, POP, IMAP, SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。
119 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:[url]news://comp.security.firewalls/.[/url] 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。
135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户连接到机器时,它们查询end-point mapper找到服务的位置。同样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本?这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻击直接针对这个端口。
137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息。
139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。
143 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过程中进入。记住:一种Linux蠕虫(admw0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认允许IMAP后,这些漏洞变得流行起来。Morris蠕虫以后这还是第一次广泛传播的蠕虫。这一端口还被用于IMAP2,但并不流行。已有一些报道发现有些0到143端口的攻击源于脚本。
161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。
162 SNMP trap 可能是由于错误配置
177 xdmcp 许多Hacker通过它访问X-Windows控制台, 它同时需要打开6000端口。
513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很有趣的信息。
553 CORBA IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。
600 Pcserver backdoor 请查看1524端口。
一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统-- Alan J. Rosenthal.
635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。
1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。
1025,1026 参见1024
1080 SOCKS 这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。
1114 SQL 系统本身很少扫描这个端口,但常常是sscan脚本的一部分。
1243 Sub-7木马(TCP)
1524 ingreslock 后门许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。
2049 NFS NFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,但是大部分情况是安装后NFS运行于这个端口,Hacker/Cracker因而可以闭开portmapper直接测试这个端口。
3128 squid 这是Squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。你也会看到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一端口的另一原因是:用户正在进入聊天室。其它用户(或服务器本身)也会检验这个端口以确定用户的机器是否支持代理。
5632 pcAnywere 你会看到很多这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找开放这种服务的机器,所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描常包含端口22的UDP数据包。
6776 Sub-7 artifact 这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者通过电话线控制另一台机器,而被控机器挂断时你将会看到这种情况。因此当另一人以此IP拨入时,他们将会看到持续的,在这个端口的连接企图。(译者:即看到防火墙报告这一端口的连接企图时,并不表示你已被Sub-7控制。)
6970 RealAudio RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制连接设置的。
13223 PowWow PowWow 是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有“进攻性”。它会“驻扎”在这一TCP端口等待回应。这造成类似心跳间隔的连接企图。如果你是一个拨号用户,从另一个聊天者手中“继承”了IP地址这种情况就会发生:好象很多不同的人在测试这一端口。这一协议使用“OPNG”作为其连接企图的前四个字节。
17027 Conducent 这是一个外向连接。这是由于公司内部有人安装了带有Conducent "adbot" 的共享软件。Conducent "adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。有人试验:阻断这一外向连接不会有任何问题,但是封掉IP地址本身将会导致adbots持续在每秒内试图连接多次而导致连接过载:
机器会不断试图解析DNS名—ads.conducent.com,即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使用的Radiate是否也有这种现象)
27374 Sub-7木马(TCP)
30100 NetSphere木马(TCP) 通常这一端口的扫描是为了寻找中了NetSphere木马。
31337 Back Orifice “elite” Hacker中31337读做“elite”/ei’li:t/(译者:法语,译为中坚力量,精华。即3=E, 1=L, 7=T)。因此许多后门程序运行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这是Internet上最常见的扫描。现在它的流行越来越少,其它的木马程序越来越流行。
31789 Hack-a-tack 这一端口的UDP通讯通常是由于"Hack-a-tack"远程访问木马(RAT, Remote Access Trojan)。这种木马包含内置的31790端口扫描器,因此任何31789端口到317890端口的连接意味着已经有这种入侵。(31789端口是控制连接,317890端口是文件传输连接)
32770~32900 RPC服务 Sun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1之前)将portmapper置于这一范围内,即使低端口被防火墙封闭仍然允许Hacker/cracker访问这一端口。扫描这一范围内的端口不是为了寻找portmapper,就是为了寻找可被攻击的已知的RPC服务。
33434~33600 traceroute 如果你看到这一端口范围内的UDP数据包(且只在此范围之内)则可能是由于traceroute。参见本站相关部分。
374/tcp legent-2 Legent Corporation
375/tcp hassle Hassle
376/tcp nip Amiga Envoy Network Inquiry Proto
377/tcp tnETOS NEC Corporation
378/tcp dsETOS NEC Corporation
379/tcp is99c TIA/EIA/IS-99 modem client
380/tcp is99s TIA/EIA/IS-99 modem server
381/tcp hp-collector hp performance data collector
383/tcp hp-alarm-mgr hp performance data alarm manager
384/tcp arns A Remote Network Server System
385/tcp ibm-app IBM Application
386/tcp asa ASA Message Router Object Def.
387/tcp aurp Appletalk Update-Based Routing Pro.
388/tcp unidata-ldm Unidata LDM Version 4
389/tcp ldap Lightweight Directory Access Protocol
390/tcp uis UIS
391/tcp synotics-relay SynOptics SNMP Relay Port
393/tcp dis Data Interpretation System
394/tcp embl-ndt EMBL Nucleic Data Transfer
395/tcp netcp NETscout Control Protocol
396/tcp netware-ip Novell Netware over IP
397/tcp mptn Multi Protocol Trans. Net.
398/tcp kryptolan Kryptolan
399/tcp iso-tsap-c2 ISO Transport Class 2 Non-Control over TCP
400/tcp work-sol Workstation Solutions
401/tcp ups Uninterruptible Power Supply
402/tcp genie Genie Protocol
403/tcp decap decap
404/tcp nced nced
405/tcp ncld ncld
406/tcp imsp Interactive Mail Support Protocol
407/tcp timbuktu Timbuktu
408/tcp prm-sm Prospero Resource Manager Sys. Man.
409/tcp prm-nm Prospero Resource Manager Node Man.
410/tcp decladebug DECLadebug Remote Debug Protocol
411/tcp rmt Remote MT Protocol
412/tcp synoptics-trap Trap Convention Port
413/tcp smsp SMSP
414/tcp infoseek InfoSeek
415/tcp bnet BNet
416/tcp silverplatter Silverplatter
417/tcp onmux Onmux
418/tcp hyper-g Hyper-G
419/tcp ariel1 Ariel
420/tcp smpte SMPTE
421/tcp ariel2 Ariel
422/tcp ariel3 Ariel
423/tcp opc-job-start IBM Operations Planning and Control Start
424/tcp opc-job-track IBM Operations Planning and Control Track
425/tcp icad-el ICAD
426/tcp smartsdp smartsdp
427/tcp svrloc Server Location
428/tcp ocs_cmu OCS_CMU
429/tcp ocs_amu OCS_AMU
430/tcp utmpsd UTMPSD
431/tcp utmpcd UTMPCD
432/tcp iasd IASD
433/tcp nnsp NNSP
434/tcp mobileip-agent MobileIP-Agent
435/tcp mobilip-mn MobilIP-MN
436/tcp dna-cml DNA-CML
437/tcp comscm comscm
438/tcp dsfgw dsfgw
439/tcp dasp dasp Thomas Obermair
440/tcp sgcp sgcp
441/tcp decvms-sysmgt decvms-sysmgt
442/tcp cvc_hostd cvc_hostd
443/tcp https http protocol over TLS/SSL
444/tcp snpp Simple Network Paging Protocol
445/tcp microsoft-ds Microsoft-DS
446/tcp ddm-rdb DDM-RDB
447/tcp ddm-dfm DDM-RFM
448/tcp ddm-ssl DDM-SSL
449/tcp as-servermap AS Server Mapper
450/tcp tserver TServer
451/tcp sfs-smp-net Cray Network Semaphore server
453/tcp creativeserver CreativeServer
454/tcp contentserver ContentServer
455/tcp creativepartnr CreativePartnr
456/tcp macon-tcp macon-tcp
457/tcp scohelp scohelp
458/tcp appleqtc apple quick time
459/tcp ampr-rcmd ampr-rcmd
460/tcp skronk skronk
461/tcp datasurfsrv DataRampSrv
462/tcp datasurfsrvsec DataRampSrvSec
463/tcp alpes alpes
464/tcp kpasswd kpasswd
465/tcp smtps smtp protocol over TLS/SSL (was ssmtp)
466/tcp digital-vrc digital-vrc
467/tcp mylex-mapd mylex-mapd
468/tcp photuris proturis
469/tcp rcp Radio Control Protocol
470/tcp scx-proxy scx-proxy
471/tcp mondex Mondex
472/tcp ljk-login ljk-login
473/tcp hybrid-pop hybrid-pop
474/tcp tn-tl-w1 tn-tl-w1
475/tcp tcpnethaspsrv tcpnethaspsrv
476/tcp tn-tl-fd1 tn-tl-fd1
477/tcp ss7ns ss7ns
478/tcp spsc spsc
479/tcp iafserver iafserver
480/tcp iafdbase iafdbase
481/tcp ph Ph service
482/tcp bgs-nsi bgs-nsi
483/tcp ulpnet ulpnet
484/tcp integra-sme Integra Software Management Environment
485/tcp powerburst Air Soft Power Burst
486/tcp avian avian
487/tcp saft saft Simple Asynchronous File Transfer
488/tcp gss-http gss-http
489/tcp nest-protocol nest-protocol
490/tcp micom-pfs micom-pfs
491/tcp go-login go-login
492/tcp ticf-1 Transport Independent Convergence for FNA
493/tcp ticf-2 Transport Independent Convergence for FNA
494/tcp pov-ray POV-Ray
495/tcp intecourier intecourier
496/tcp pim-rp-disc PIM-RP-DISC
497/tcp dantz dantz
498/tcp siam siam
499/tcp iso-ill ISO ILL Protocol
500/tcp isakmp isakmp
501/tcp stmf STMF
502/tcp asa-appl-proto asa-appl-proto
503/tcp intrinsa Intrinsa
504/tcp citadel citadel
505/tcp mailbox-lm mailbox-lm
506/tcp ohimsrv ohimsrv
507/tcp crs crs
508/tcp xvttp xvttp
509/tcp snare snare
510/tcp fcp FirstClass Protocol
511/tcp passgo PassGo
512/tcp exec remote process execution;
513/tcp login remote login a la telnet;
514/tcp shell cmd
515/tcp printer spooler
516/tcp videotex videotex
517/tcp talk like tenex link, but across
518/tcp ntalk
519/tcp utime unixtime
520/tcp efs extended file name server
521/tcp ripng ripng
522/tcp ulp ULP
523/tcp ibm-db2 IBM-DB2
524/tcp ncp NCP
525/tcp timed timeserver
526/tcp tempo newdate
527/tcp stx Stock IXChange
528/tcp custix Customer IXChange
529/tcp irc-serv IRC-SERV
530/tcp courier rpc
531/tcp conference chat
532/tcp netnews readnews
533/tcp netwall for emergency broadcasts
534/tcp mm-admin MegaMedia Admin
535/tcp iiop iiop
536/tcp opalis-rdv opalis-rdv
537/tcp nmsp Networked Media Streaming Protocol
538/tcp gdomap gdomap
539/tcp apertus-ldp Apertus Technologies Load Determination
540/tcp uucp uucpd
541/tcp uucp-rlogin uucp-rlogin
542/tcp commerce commerce
543/tcp klogin
544/tcp kshell krcmd
545/tcp appleqtcsrvr appleqtcsrvr
546/tcp dhcpv6-client DHCPv6 Client
547/tcp dhcpv6-server DHCPv6 Server
548/tcp afpovertcp AFP over TCP
549/tcp idfp IDFP
550/tcp new-rwho new-who
551/tcp cybercash cybercash
552/tcp deviceshare deviceshare
553/tcp pirp pirp
554/tcp rtsp Real Time Stream Control Protocol
555/tcp dsf
556/tcp remotefs rfs server
557/tcp openvms-sysipc openvms-sysipc
558/tcp sdnskmp SDNSKMP
559/tcp teedtap TEEDTAP
560/tcp rmonitor rmonitord
561/tcp monitor
562/tcp chshell chcmd
563/tcp nntps nntp protocol over TLS/SSL (was snntp)
564/tcp 9pfs plan 9 file service
565/tcp whoami whoami
566/tcp streettalk streettalk
567/tcp banyan-rpc banyan-rpc
568/tcp ms-shuttle microsoft shuttle
569/tcp ms-rome microsoft rome
570/tcp meter demon
571/tcp meter udemon
572/tcp sonar sonar
573/tcp banyan-vip banyan-vip
574/tcp ftp-agent FTP Software Agent System
575/tcp vemmi VEMMI
576/tcp ipcd ipcd
577/tcp vnas vnas
578/tcp ipdd ipdd
579/tcp decbsrv decbsrv
581/tcp bdp Bundle Discovery Protocol
588/tcp cal CAL
589/tcp eyelink EyeLink
590/tcp tns-cml TNS CML
593/tcp http-rpc-epmap HTTP RPC Ep Map
594/tcp tpip TPIP
596/tcp smsd SMSD
599/tcp acp Aeolon Core Protocol
600/tcp ipcserver Sun IPC server
606/tcp urm Cray Unified Resource Manager
607/tcp nqs nqs
608/tcp sift-uft Sender-Initiated/Unsolicited File Transfer
609/tcp npmp-trap npmp-trap
610/tcp npmp-local npmp-local
611/tcp npmp-gui npmp-gui
613/tcp hmmp-op HMMP Operation
620/tcp sco-websrvrmgr SCO WebServer Manager
621/tcp escp-ip ESCP
625/tcp dec_dlm DEC DLM
626/tcp asia ASIA
628/tcp qmqp QMQP
630/tcp rda RDA
631/tcp ipp IPP (Internet Printing Protocol)
632/tcp bmpp bmpp
634/tcp ginad ginad
635/tcp rlzdbase RLZ DBase
636/tcp ldaps ldap protocol over TLS/SSL (was sldap)
637/tcp lanserver lanserver
639/tcp msdp MSDP
666/tcp doom doom Id Software
667/tcp disclose campaign contribution disclosures - SDR Technologies
668/tcp mecomm MeComm
669/tcp meregister MeRegister
670/tcp vacdsm-sws VACDSM-SWS
671/tcp vacdsm-app VACDSM-APP
672/tcp vpps-qua VPPS-QUA
673/tcp cimplex CIMPLEX
674/tcp acap ACAP
675/tcp dctp DCTP
704/tcp elcsd errlog copy/server daemon
705/tcp agentx AgentX
709/tcp entrust-kmsh Entrust Key Management Service Handler
710/tcp entrust-ash Entrust Administration Service Handler
729/tcp netviewdm1 IBM NetView DM/6000 Server/Client
730/tcp netviewdm2 IBM NetView DM/6000 send/tcp
731/tcp netviewdm3 IBM NetView DM/6000 receive/tcp
741/tcp netgw netGW
742/tcp netrcs Network based Rev. Cont. Sys.
744/tcp flexlm Flexible License Manager
747/tcp fujitsu-dev Fujitsu Device Control
748/tcp ris-cm Russell Info Sci Calendar Manager
749/tcp kerberos-adm kerberos administration
750/tcp rfile
751/tcp pump
752/tcp qrh
753/tcp rrh
754/tcp tell send
758/tcp nlogin
759/tcp con
760/tcp ns
761/tcp rxe
762/tcp quotad
763/tcp cycleserv
764/tcp omserv
765/tcp webster
769/tcp vid
770/tcp cadlock
771/tcp rtip
772/tcp cycleserv2
773/tcp submit
774/tcp rpasswd
776/tcp wpages
780/tcp wpgs
786/tcp concert Concert
787/tcp qsc QSC
801/tcp device
873/tcp rsync rsync
886/tcp iclcnet-locate ICL coNETion locate server
887/tcp iclcnet_svinfo ICL coNETion server info
888/tcp accessbuilder AccessBuilder
900/tcp omginitialrefs OMG Initial Refs
911/tcp xact-backup xact-backup
990/tcp ftps ftp protocol, control, over TLS/SSL
991/tcp nas Netnews Administration System
992/tcp telnets telnet protocol over TLS/SSL
993/tcp imaps imap4 protocol over TLS/SSL
994/tcp ircs irc protocol over TLS/SSL
995/tcp pop3s pop3 protocol over TLS/SSL (was spop3)
996/tcp vsinet vsinet
997/tcp maitrd
998/tcp busboy
999/tcp garcon
1000/tcp cadlock
1010/tcp surf surf
1023/tcp Reserved Reserved
1030/tcp iad1 BBN IAD
1031/tcp iad2 BBN IAD
1032/tcp iad3 BBN IAD
1047/tcp neod1 Sun‘s NEO Object Request Broker
1048/tcp neod2 Sun‘s NEO Object Request Broker
1058/tcp nim nim
1059/tcp nimreg nimreg
1067/tcp instl_boots Installation Bootstrap Proto. Serv.
1068/tcp instl_bootc Installation Bootstrap Proto. Cli.
1080/tcp socks Socks
1083/tcp ansoft-lm-1 Anasoft License Manager
1084/tcp ansoft-lm-2 Anasoft License Manager
1123/tcp murray Murray
1155/tcp nfa Network File Access
1212/tcp lupa lupa
1222/tcp nerv SNI R&D network
1239/tcp nmsd NMSD
1248/tcp hermes
1313/tcp bmc_patroldb BMC_PATROLDB
1314/tcp pdps Photoscript Distributed Printing System
1321/tcp pip PIP
1345/tcp vpjp VPJP
1346/tcp alta-ana-lm Alta Analytics License Manager
1347/tcp bbn-mmc multi media conferencing
1348/tcp bbn-mmx multi media conferencing
1349/tcp sbook Registration Network Protocol
1350/tcp editbench Registration Network Protocol
1352/tcp lotusnote Lotus Note
1353/tcp relief Relief Consulting
1354/tcp rightbrain RightBrain Software
1355/tcp intuitive-edge Intuitive Edge
1356/tcp cuillamartin CuillaMartin Company
1357/tcp pegboard Electronic PegBoard
1358/tcp connlcli CONNLCLI
1359/tcp ftsrv FTSRV
1360/tcp mimer MIMER
1361/tcp linx LinX
1362/tcp timeflies TimeFlies
1363/tcp ndm-requester Network DataMover Requester
1364/tcp ndm-server Network DataMover Server
1365/tcp adapt-sna Network Software Associates
1366/tcp netware-csp Novell NetWare Comm Service Platform
1367/tcp dcs DCS
1368/tcp screencast ScreenCast
1369/tcp gv-us GlobalView to Unix Shell
1370/tcp us-gv Unix Shell to GlobalView
1371/tcp fc-cli Fujitsu Config Protocol
1372/tcp fc-ser Fujitsu Config Protocol
1373/tcp chromagrafx Chromagrafx
1374/tcp molly EPI Software Systems
1375/tcp bytex Bytex
1376/tcp ibm-pps IBM Person to Person Software
1377/tcp cichlid Cichlid License Manager
1378/tcp elan Elan License Manager
1379/tcp dbreporter Integrity Solutions
1380/tcp telesis-licman Telesis Network License Manager
1381/tcp apple-licman Apple Network License Manager
1382/tcp udt_os
1383/tcp gwha GW Hannaway Network License Manager
1384/tcp os-licman Objective Solutions License Manager
1385/tcp atex_elmd Atex Publishing License Manager
1386/tcp checksum CheckSum License Manager
1387/tcp cadsi-lm Computer Aided Design Software Inc LM
1388/tcp objective-dbc Objective Solutions DataBase Cache
1389/tcp iclpv-dm Document Manager
1390/tcp iclpv-sc Storage Controller
1391/tcp iclpv-sas Storage Access Server
1392/tcp iclpv-pm Print Manager
1393/tcp iclpv-nls Network Log Server
1394/tcp iclpv-nlc Network Log Client
1395/tcp iclpv-wsm PC Workstation Manager software
1396/tcp dvl-activemail DVL Active Mail
1399/tcp cadkey-licman Cadkey License Manager
1400/tcp cadkey-tablet Cadkey Tablet Daemon
1402/tcp prm-sm-np Prospero Resource Manager
1403/tcp prm-nm-np Prospero Resource Manager
1404/tcp igi-lm Infinite Graphics License Manager
1405/tcp ibm-res IBM Remote Execution Starter
1406/tcp netlabs-lm NetLabs License Manager
1407/tcp dbsa-lm DBSA License Manager
1408/tcp sophia-lm Sophia License Manager
1409/tcp here-lm Here License Manager
1410/tcp hiq HiQ License Manager
1411/tcp af AudioFile
1412/tcp innosys InnoSys
1413/tcp innosys-acl Innosys-ACL
1414/tcp ibm-mqseries IBM MQSeries
1415/tcp dbstar DBStar
1416/tcp novell-lu6.2 Novell LU6.2
1417/tcp timbuktu-srv1 Timbuktu Service 1 Port
1418/tcp timbuktu-srv2 Timbuktu Service 2 Port
1419/tcp timbuktu-srv3 Timbuktu Service 3 Port
1420/tcp timbuktu-srv4 Timbuktu Service 4 Port
1421/tcp gandalf-lm Gandalf License Manager
1422/tcp autodesk-lm Autodesk License Manager
1423/tcp essbase Essbase Arbor Software
1424/tcp hybrid Hybrid Encryption Protocol
1425/tcp zion-lm Zion Software License Manager
1426/tcp sais Satellite-data Acquisition System 1
1427/tcp mloadd mloadd monitoring tool
1428/tcp informatik-lm Informatik License Manager
1429/tcp nms Hypercom NMS
1430/tcp tpdu Hypercom TPDU
1431/tcp rgtp Reverse Gossip Transport
1432/tcp blueberry-lm Blueberry Software License Manager
1433/tcp ms-sql-s Microsoft-SQL-Server
1434/tcp ms-sql-m Microsoft-SQL-Monitor
1435/tcp ibm-cics IBM CICS
1436/tcp saism Satellite-data Acquisition System 2
1437/tcp tabula Tabula
1438/tcp eicon-server Eicon Security Agent/Server
1439/tcp eicon-x25 Eicon X25/SNA Gateway
1440/tcp eicon-slp Eicon Service Location Protocol
1441/tcp cadis-1 Cadis License Management
1442/tcp cadis-2 Cadis License Management
1443/tcp ies-lm Integrated Engineering Software
1444/tcp marcam-lm Marcam License Management
1445/tcp proxima-lm Proxima License Manager
1446/tcp ora-lm Optical Research Associates License Manager
1447/tcp apri-lm Applied Parallel Research LM
1448/tcp oc-lm OpenConnect License Manager
1449/tcp peport PEport
1450/tcp dwf Tandem Distributed Workbench Facility
1451/tcp infoman IBM Information Management
1452/tcp gtegsc-lm GTE Government Systems License Man
1453/tcp genie-lm Genie License Manager
1454/tcp interhdl_elmd interHDL License Manager
1455/tcp esl-lm ESL License Manager
1456/tcp dca DCA
1457/tcp valisys-lm Valisys License Manager
1458/tcp nrcabq-lm Nichols Research Corp.
1459/tcp proshare1 Proshare Notebook Application
1460/tcp proshare2 Proshare Notebook Application
1461/tcp ibm_wrless_lan IBM Wireless LAN
1462/tcp world-lm World License Manager
1463/tcp nucleus Nucleus
1464/tcp msl_lmd MSL License Manager
1465/tcp pipes Pipes Platform
1466/tcp oceansoft-lm Ocean Software License Manager
1467/tcp csdmbase CSDMBASE
1468/tcp csdm CSDM
1469/tcp aal-lm Active Analysis Limited License Manager
1470/tcp uaiact Universal Analytics
1471/tcp csdmbase csdmbase
1472/tcp csdm csdm
1473/tcp openmath OpenMath
1474/tcp telefinder Telefinder
1475/tcp taligent-lm Taligent License Manager
1476/tcp clvm-cfg clvm-cfg
1477/tcp ms-sna-server ms-sna-server
1478/tcp ms-sna-base ms-sna-base
1479/tcp dberegister dberegister
1480/tcp pacerforum PacerForum
1481/tcp airs AIRS
1482/tcp miteksys-lm Miteksys License Manager
1483/tcp afs AFS License Manager
1484/tcp confluent Confluent License Manager
1485/tcp lansource LANSource
1486/tcp nms_topo_serv nms_topo_serv
1487/tcp localinfosrvr LocalInfoSrvr
1488/tcp docstor DocStor
1489/tcp dmdocbroker dmdocbroker
1490/tcp insitu-conf insitu-conf
1491/tcp anynetgateway anynetgateway
1492/tcp stone-design-1 stone-design-1
1493/tcp netmap_lm netmap_lm
1494/tcp ica ica
1495/tcp cvc cvc
1496/tcp liberty-lm liberty-lm
1497/tcp rfx-lm rfx-lm
1498/tcp sybase-sqlany Sybase SQL Any
1499/tcp fhc Federico Heinz Consultora
1500/tcp vlsi-lm VLSI License Manager
1501/tcp saiscm Satellite-data Acquisition System 3
1502/tcp shivadiscovery Shiva
1503/tcp imtc-mcs Databeam
1504/tcp evb-elm EVB Software Engineering License Manager
1505/tcp funkproxy Funk Software, Inc.
1506/tcp utcd Universal Time daemon (utcd)
1507/tcp symplex symplex
1508/tcp diagmond diagmond
1509/tcp robcad-lm Robcad, Ltd. License Manager
1510/tcp mvx-lm Midland Valley Exploration Ltd. Lic. Man.
1511/tcp 3l-l1 3l-l1
1512/tcp wins Microsoft‘s Windows Internet Name Service
1513/tcp fujitsu-dtc Fujitsu Systems Business of America, Inc
1514/tcp fujitsu-dtcns Fujitsu Systems Business of America, Inc
1515/tcp ifor-protocol ifor-protocol
1516/tcp vpad Virtual Places Audio data
1517/tcp vpac Virtual Places Audio control
1518/tcp vpvd Virtual Places Video data
1519/tcp vpvc Virtual Places Video control
1520/tcp atm-zip-office atm zip office
1521/tcp ncube-lm nCube License Manager
1522/tcp ricardo-lm Ricardo North America License Manager
1523/tcp cichild-lm cichild
1525/tcp orasrv oracle
1525/tcp prospero-np Prospero Directory Service non-priv
1526/tcp pdap-np Prospero Data Access Prot non-priv
1527/tcp tlisrv oracle
1528/tcp mciautoreg micautoreg
1529/tcp coauthor oracle
1530/tcp rap-service rap-service
1531/tcp rap-listen rap-listen
1532/tcp miroconnect miroconnect
1533/tcp virtual-places Virtual Places Software
1534/tcp micromuse-lm micromuse-lm
1535/tcp ampr-info ampr-info
1536/tcp ampr-inter ampr-inter
1537/tcp sdsc-lm isi-lm
1538/tcp 3ds-lm 3ds-lm
1539/tcp intellistor-lm Intellistor License Manager
1540/tcp rds rds
1541/tcp rds2 rds2
1542/tcp gridgen-elmd gridgen-elmd
1543/tcp simba-cs simba-cs
1544/tcp aspeclmd aspeclmd
1545/tcp vistium-share vistium-share
1546/tcp abbaccuray abbaccuray
1547/tcp laplink laplink
1548/tcp axon-lm Axon License Manager
1549/tcp shivahose Shiva Hose
1550/tcp 3m-image-lm Image Storage license manager 3M Company
1551/tcp hecmtl-db HECMTL-DB
1552/tcp pciarray pciarray
1553/tcp sna-cs sna-cs
1554/tcp caci-lm CACI Products Company License Manager
1555/tcp livelan livelan
1556/tcp ashwin AshWin CI Tecnologies
1557/tcp arbortext-lm ArborText License Manager
1558/tcp xingmpeg xingmpeg
1559/tcp web2host web2host
1560/tcp asci-val asci-val
1561/tcp facilityview facilityview
1562/tcp pconnectmgr pconnectmgr
1563/tcp cadabra-lm Cadabra License Manager
1564/tcp pay-per-view Pay-Per-View
1565/tcp winddlb WinDD
1566/tcp corelvideo CORELVIDEO
1567/tcp jlicelmd jlicelmd
1568/tcp tsspmap tsspmap
1569/tcp ets ets
1570/tcp orbixd orbixd
1571/tcp rdb-dbs-disp Oracle Remote Data Base
1572/tcp chip-lm Chipcom License Manager
1573/tcp itscomm-ns itscomm-ns
1574/tcp mvel-lm mvel-lm
1575/tcp oraclenames oraclenames
1576/tcp moldflow-lm moldflow-lm
1577/tcp hypercube-lm hypercube-lm
1578/tcp jacobus-lm Jacobus License Manager
1579/tcp ioc-sea-lm ioc-sea-lm
1580/tcp tn-tl-r1 tn-tl-r1
1581/tcp mil-2045-47001 MIL-2045-47001
1582/tcp msims MSIMS
1583/tcp simbaexpress simbaexpress
1584/tcp tn-tl-fd2 tn-tl-fd2
1585/tcp intv intv
1586/tcp ibm-abtact ibm-abtact
1587/tcp pra_elmd pra_elmd
1588/tcp triquest-lm triquest-lm
1589/tcp vqp VQP
1590/tcp gemini-lm gemini-lm
1591/tcp ncpm-pm ncpm-pm
1592/tcp commonspace commonspace
1593/tcp mainsoft-lm mainsoft-lm
1594/tcp sixtrak sixtrak
1595/tcp radio radio
1596/tcp radio-sm radio-sm
1597/tcp orbplus-iiop orbplus-iiop
1598/tcp picknfs picknfs
1599/tcp simbaservices simbaservices
1600/tcp issd
1601/tcp aas aas
1602/tcp inspect inspect
1603/tcp picodbc pickodbc
1604/tcp icabrowser icabrowser
1605/tcp slp Salutation Manager (Salutation Protocol)
1606/tcp slm-api Salutation Manager (SLM-API)
1607/tcp stt stt
1608/tcp smart-lm Smart Corp. License Manager
1609/tcp isysg-lm isysg-lm
1610/tcp taurus-wh taurus-wh
1611/tcp ill Inter Library Loan
1612/tcp netbill-trans NetBill Transaction Server
1613/tcp netbill-keyrep NetBill Key Repository
1614/tcp netbill-cred NetBill Credential Server
1615/tcp netbill-auth NetBill Authorization Server
1616/tcp netbill-prod NetBill Product Server
1617/tcp nimrod-agent Nimrod Inter-Agent Communication
1618/tcp skytelnet skytelnet
1619/tcp xs-openstorage xs-openstorage
1620/tcp faxportwinport faxportwinport
1621/tcp softdataphone softdataphone
1622/tcp ontime ontime
1623/tcp jaleosnd jaleosnd
1624/tcp udp-sr-port udp-sr-port
1625/tcp svs-omagent svs-omagent
1636/tcp cncp CableNet Control Protocol
1637/tcp cnap CableNet Admin Protocol
1638/tcp cnip CableNet Info Protocol
1639/tcp cert-initiator cert-initiator
1640/tcp cert-responder cert-responder
1641/tcp invision InVision
1642/tcp isis-am isis-am
1643/tcp isis-ambc isis-ambc
1645/tcp datametrics datametrics
1646/tcp sa-msg-port sa-msg-port
1647/tcp rsap rsap
1648/tcp concurrent-lm concurrent-lm
1649/tcp inspect inspect
1650/tcp nkd nkd
1651/tcp shiva_confsrvr shiva_confsrvr
1652/tcp xnmp xnmp
1653/tcp alphatech-lm alphatech-lm
1654/tcp stargatealerts stargatealerts
1655/tcp dec-mbadmin dec-mbadmin
1656/tcp dec-mbadmin-h dec-mbadmin-h
1657/tcp fujitsu-mmpdc fujitsu-mmpdc
1658/tcp sixnetudr sixnetudr
1659/tcp sg-lm Silicon Grail License Manager
1660/tcp skip-mc-gikreq skip-mc-gikreq
1661/tcp netview-aix-1 netview-aix-1
1662/tcp netview-aix-2 netview-aix-2
1663/tcp netview-aix-3 netview-aix-3
1664/tcp netview-aix-4 netview-aix-4
1665/tcp netview-aix-5 netview-aix-5
1666/tcp netview-aix-6 netview-aix-6
1667/tcp netview-aix-7 netview-aix-7
1668/tcp netview-aix-8 netview-aix-8
1669/tcp netview-aix-9 netview-aix-9
1670/tcp netview-aix-10 netview-aix-10
1671/tcp netview-aix-11 netview-aix-11
1672/tcp netview-aix-12 netview-aix-12
1673/tcp proshare-mc-1 Intel Proshare Multicast
1674/tcp proshare-mc-2 Intel Proshare Multicast
1675/tcp pdp Pacific Data Products
1676/tcp netcomm1 netcomm1
1677/tcp groupwise groupwise
1678/tcp prolink prolink
1679/tcp darcorp-lm darcorp-lm
1681/tcp sd-elmd sd-elmd
1682/tcp lanyon-lantern lanyon-lantern
1683/tcp ncpm-hip ncpm-hip
1684/tcp snaresecure SnareSecure
1685/tcp n2nremote n2nremote
1686/tcp cvmon cvmon
1687/tcp nsjtp-ctrl nsjtp-ctrl
1688/tcp nsjtp-data nsjtp-data
1689/tcp firefox firefox
1690/tcp ng-umds ng-umds
1691/tcp empire-empuma empire-empuma
1692/tcp sstsys-lm sstsys-lm
1693/tcp rrirtr rrirtr
1694/tcp rrimwm rrimwm
1695/tcp rrilwm rrilwm
1696/tcp rrifmm rrifmm
1697/tcp rrisat rrisat
1698/tcp rsvp-encap-1 RSVP-ENCAPSULATION-1
1699/tcp rsvp-encap-2 RSVP-ENCAPSULATION-2
1700/tcp mps-raft mps-raft
1701/tcp l2f,l2tp l2f,l2tp
1702/tcp deskshare deskshare
1703/tcp hb-engine hb-engine
1704/tcp bcs-broker bcs-broker
1705/tcp slingshot slingshot
1706/tcp jetform jetform
1707/tcp vdmplay vdmplay
1708/tcp gat-lmd gat-lmd
1709/tcp centra centra
1710/tcp impera impera
1711/tcp pptconference pptconference
1712/tcp registrar resource monitoring service
1713/tcp conferencetalk ConferenceTalk
1714/tcp sesi-lm sesi-lm
1715/tcp houdini-lm houdini-lm
1716/tcp xmsg xmsg
1717/tcp fj-hdnet fj-hdnet
1718/tcp h323gatedisc h323gatedisc
1719/tcp h323gatestat h323gatestat
1720/tcp h323hostcall h323hostcall
1721/tcp caicci caicci
1722/tcp hks-lm HKS License Manager
1723/tcp pptp pptp
1724/tcp csbphonemaster csbphonemaster
1725/tcp iden-ralp iden-ralp
1726/tcp iberiagames IBERIAGAMES
1727/tcp winddx winddx
1728/tcp telindus TELINDUS
1729/tcp citynl CityNL License Management
1730/tcp roketz roketz
1731/tcp msiccp MSICCP
1732/tcp proxim proxim
1733/tcp siipat SIMS - SIIPAT Protocol for Alarm Transmission
1734/tcp cambertx-lm Camber Corporation License Management
1735/tcp privatechat PrivateChat
1736/tcp street-stream street-stream
1737/tcp ultimad ultimad
1738/tcp gamegen1 GameGen1
1739/tcp webaccess webaccess
1740/tcp encore encore
1741/tcp cisco-net-mgmt cisco-net-mgmt
1742/tcp 3Com-nsd 3Com-nsd
1743/tcp cinegrfx-lm Cinema Graphics License Manager
1744/tcp ncpm-ft ncpm-ft
1745/tcp remote-winsock remote-winsock
1746/tcp ftrapid-1 ftrapid-1
1747/tcp ftrapid-2 ftrapid-2
1748/tcp oracle-em1 oracle-em1
1749/tcp aspen-services aspen-services
1750/tcp sslp Simple Socket Library‘s PortMaster
1751/tcp swiftnet SwiftNet
1752/tcp lofr-lm Leap of Faith Research License Manager
1753/tcp translogic-lm Translogic License Manager
1754/tcp oracle-em2 oracle-em2
1755/tcp ms-streaming ms-streaming
1756/tcp capfast-lmd capfast-lmd
1757/tcp cnhrp cnhrp
1758/tcp tftp-mcast tftp-mcast
1759/tcp spss-lm SPSS License Manager
1760/tcp www-ldap-gw www-ldap-gw
1761/tcp cft-0 cft-0
1762/tcp cft-1 cft-1
1763/tcp cft-2 cft-2
1764/tcp cft-3 cft-3
1765/tcp cft-4 cft-4
1766/tcp cft-5 cft-5
1767/tcp cft-6 cft-6
1768/tcp cft-7 cft-7
1769/tcp bmc-net-adm bmc-net-adm
1770/tcp bmc-net-svc bmc-net-svc
1771/tcp vaultbase vaultbase
1772/tcp essweb-gw EssWeb Gateway
1773/tcp kmscontrol KMSControl
1774/tcp global-dtserv global-dtserv
1776/tcp femis Federal Emergency Management Information System
1777/tcp powerguardian powerguardian
1779/tcp pharmasoft pharmasoft
1780/tcp dpkeyserv dpkeyserv
1781/tcp answersoft-lm answersoft-lm
1782/tcp hp-hcip hp-hcip
1783/tcp fjris Fujitsu Remote Install Service
1784/tcp finle-lm Finle License Manager
1785/tcp windlm Wind River Systems License Manager
1786/tcp funk-logger funk-logger
1787/tcp funk-license funk-license
1788/tcp psmond psmond
1789/tcp hello hello
1790/tcp nmsp Narrative Media Streaming Protocol
1791/tcp ea1 EA1
1792/tcp ibm-dt-2 ibm-dt-2
1793/tcp rsc-robot rsc-robot
1794/tcp cera-bcm cera-bcm
1795/tcp dpi-proxy dpi-proxy
1796/tcp vocaltec-admin Vocaltec Server Administration
1797/tcp uma UMA
1798/tcp etp Event Transfer Protocol
1799/tcp netrisk NETRISK
1801/tcp msmq Microsoft Message Que
1804/tcp enl ENL
1807/tcp fhsp Fujitsu Hot Standby Protocol
1812/tcp radius RADIUS
1813/tcp radius-acct RADIUS Accounting
1814/tcp tdp-suite TDP Suite
1815/tcp mmpft MMPFT
1816/tcp harp HARP
1818/tcp etftp Enhanced Trivial File Transfer Protocol
1819/tcp plato-lm Plato License Manager
1820/tcp mcagent mcagent
1821/tcp donnyworld donnyworld
1822/tcp es-elmd es-elmd
1823/tcp unisys-lm Unisys Natural Language License Manager
1824/tcp metrics-pas metrics-pas
1850/tcp gsi GSI
1863/tcp msnp MSNP
1865/tcp entp ENTP
1901/tcp fjicl-tep-a Fujitsu ICL Terminal Emulator Program A
1902/tcp fjicl-tep-b Fujitsu ICL Terminal Emulator Program B
1903/tcp linkname Local Link Name Resolution
1904/tcp fjicl-tep-c Fujitsu ICL Terminal Emulator Program C
1905/tcp sugp Secure UP.Link Gateway Protocol
1906/tcp tpmd TPortMapperReq
1908/tcp dawn Dawn
1911/tcp mtp Starlight Networks Multimedia Transport Protocol
1913/tcp armadp armadp
1914/tcp elm-momentum Elm-Momentum
1915/tcp facelink FACELINK
1916/tcp persona Persoft Persona
1917/tcp noagent nOAgent
1921/tcp noadmin NoAdmin
1944/tcp close-combat close-combat
1945/tcp dialogic-elmd dialogic-elmd
1946/tcp tekpls tekpls
1947/tcp hlserver hlserver
1948/tcp eye2eye eye2eye
1949/tcp ismaeasdaqlive ISMA Easdaq Live
1950/tcp ismaeasdaqtest ISMA Easdaq Test
1951/tcp bcs-lmserver bcs-lmserver
1973/tcp dlsrap Data Link Switching Remote Access Protocol
1985/tcp hsrp Hot Standby Router Protocol
1986/tcp licensedaemon cisco license management
1987/tcp tr-rsrb-p1 cisco RSRB Priority 1 port
1988/tcp tr-rsrb-p2 cisco RSRB Priority 2 port
1989/tcp tr-rsrb-p3 cisco RSRB Priority 3 port
1989/tcp mshnet MHSnet system
1990/tcp stun-p1 cisco STUN Priority 1 port
1991/tcp stun-p2 cisco STUN Priority 2 port
1992/tcp stun-p3 cisco STUN Priority 3 port
1992/tcp ipsendmsg IPsendmsg
1993/tcp snmp-tcp-port cisco SNMP TCP port
1994/tcp stun-port cisco serial tunnel port
1995/tcp perf-port cisco perf port
1996/tcp tr-rsrb-port cisco Remote SRB port
1997/tcp gdp-port cisco Gateway Discovery Protocol
1998/tcp x25-svc-port cisco X.25 service (XOT)
1999/tcp tcp-id-port cisco identification port
2000/tcp callbook
2001/tcp dc
2002/tcp globe
2004/tcp mailbox
2005/tcp berknet
2007/tcp dectalk
2012/tcp ttyinfo
2013/tcp raid-am
2014/tcp troff
2015/tcp cypress
2025/tcp ellpack
2030/tcp device2
2032/tcp blackboard
2033/tcp glogger
2035/tcp imsldoc
2040/tcp lam
2042/tcp isis isis
2044/tcp rimsl
2045/tcp cdfunc
2046/tcp sdfunc
2047/tcp dls
2049/tcp shilp
2049/tcp nfs Network File System - Sun Microsystems
2065/tcp dlsrpn Data Link Switch Read Port Number
2067/tcp dlswpn Data Link Switch Write Port Number
2090/tcp lrp Load Report Protocol
2091/tcp prp PRP
2102/tcp zephyr-srv Zephyr server
2103/tcp zephyr-clt Zephyr serv-hm connection
2104/tcp zephyr-hm Zephyr hostmanager
2105/tcp minipay MiniPay
2200/tcp ici ICI
2201/tcp ats Advanced Training System Program
2213/tcp kali Kali
2222/tcp unreg-ab2 Allen-Bradley unregistered port
2232/tcp ivs-video IVS Video default
2234/tcp directplay DirectPlay
2236/tcp nani Nani
2240/tcp recipe RECIPe
2241/tcp ivsd IVS Daemon
2242/tcp foliocorp Folio Remote Server
2279/tcp xmquery xmquery
2280/tcp lnvpoller LNVPOLLER
2281/tcp lnvconsole LNVCONSOLE
2282/tcp lnvalarm LNVALARM
2283/tcp lnvstatus LNVSTATUS
2284/tcp lnvmaps LNVMAPS
2285/tcp lnvmailmon LNVMAILMON
2286/tcp nas-metering NAS-Metering
2287/tcp dna DNA
2288/tcp netml NETML
2300/tcp cvmmon CVMMON
2307/tcp pehelp pehelp
2308/tcp sdhelp sdhelp
2313/tcp iapp IAPP (Inter Access Point Protocol)
2316/tcp sent-lm SENT License Manager
2321/tcp rdlap RDLAP over UDP
2322/tcp ofsd ofsd
2323/tcp 3d-nfsd 3d-nfsd
2326/tcp idcp IDCP
2327/tcp xingcsm xingcsm
2329/tcp nvd NVD
2330/tcp tscchat TSCCHAT
2333/tcp snapp SNAPP
2337/tcp ideesrv ideesrv
2344/tcp fcmsys fcmsys
2345/tcp dbm dbm
2356/tcp gxtelmd GXT License Managemant
2358/tcp futrix Futrix
2390/tcp rsmtp RSMTP
2396/tcp wusage Wusage
2397/tcp ncl NCL
2398/tcp orbiter Orbiter
2401/tcp cvspserver cvspserver
2407/tcp orion Orion
2412/tcp cdn CDN
2415/tcp comtest COMTEST
2418/tcp cas cas
2421/tcp g-talk G-Talk
2423/tcp rnrp RNRP
2427/tcp stgcp Simple telephony Gateway Control Protocol
2428/tcp ott One Way Trip Time
2429/tcp ft-role FT-ROLE
2430/tcp venus venus
2432/tcp codasrv codasrv
2436/tcp topx TOP/X
2438/tcp msp MSP
2443/tcp powerclientcsf PowerClient Central Storage Facility
2445/tcp dtn1 DTN1
2447/tcp ovwdb OpenView NNM daemon
2449/tcp ratl RATL
2451/tcp netchat netchat
2458/tcp griffin griffin
2500/tcp rtsserv Resource Tracking system server
2501/tcp rtsclient Resource Tracking system client
2528/tcp ncr_ccl NCR CCL
2529/tcp utsftp UTS FTP
2532/tcp ovtopmd OVTOPMD
2592/tcp netrek netrek
2628/tcp dict DICT
2634/tcp pk-electronics PK Electronics
2636/tcp solve Solve
2639/tcp aminet AMInet
2641/tcp hdl-srv HDL Server
2642/tcp tragic Tragic
2646/tcp and-lm AND Licence Manager
2653/tcp sonus Sonus
2655/tcp unglue UNIX Nt Glue
2656/tcp kana Kana
2700/tcp tqdata tqdata
2784/tcp www-dev world wide web - development
2785/tcp aic-np aic-np
2786/tcp aic-oncrpc aic-oncrpc - Destiny MCD database
2787/tcp piccolo piccolo - Cornerstone Software
2788/tcp fryeserv NetWare Loadable Module - Seagate Software
2789/tcp media-agent Media Agent
2908/tcp mao mao
2912/tcp epicon Epicon
2971/tcp netclip Net Clip
2974/tcp signal Signal
2975/tcp fjmpcm Fujitsu Configuration Management Service
3000/tcp hbci HBCI
3001/tcp redwood-broker Redwood Broker
3003/tcp cgms CGMS
3010/tcp gw Telerate Workstation
3012/tcp twsdss Trusted Web Client
3020/tcp cifs CIFS
3047/tcp hlserver Fast Security HL Server
3048/tcp pctrader Sierra Net PC Trader
3049/tcp nsws NSWS
3105/tcp cardbox Cardbox
3130/tcp icpv2 ICPv2
3141/tcp vmodem VMODEM
3143/tcp seaview Sea View
3147/tcp rfio RFIO
3264/tcp ccmail cc:mail/lotus
3266/tcp ns-cfg-server NS CFG Server
3267/tcp ibm-dial-out IBM Dial Out
3268/tcp msft-gc Microsoft Global Catalog
3273/tcp sxmp Simple Extensible Multiplexed Protocol
3275/tcp samd SAMD
3279/tcp admind admind
3281/tcp sysopt SYSOPT
3284/tcp 4talk 4Talk
3285/tcp plato Plato
3286/tcp e-net E-Net
3288/tcp cops COPS
3289/tcp enpc ENPC
3290/tcp caps-lm CAPS LOGISTICS TOOLKIT - LM
3291/tcp sah-lm S A Holditch & Associates - LM
3293/tcp fg-fps fg-fps
3294/tcp fg-gip fg-gip
3296/tcp rib-slm Rib License Manager
3299/tcp pdrncs pdrncs
3304/tcp opsession-srvr OP Session Server
3306/tcp mysql MySQL
3309/tcp tns-adv TNS ADV
3313/tcp uorb Unify Object Broker
3314/tcp uohost Unify Object Host
3315/tcp cdid CDID
3318/tcp ssrip Swith to Swith Routing Information Protocol
3319/tcp sdt-lmd SDT License Manager
3321/tcp vnsstr VNSSTR
3326/tcp sftu SFTU
3327/tcp bbars BBARS
3328/tcp egptlm Eaglepoint License Manager
3329/tcp hp-device-disc HP Device Disc
3330/tcp mcs-calypsoicf MCS Calypso ICF
3333/tcp dec-notes DEC Notes
3338/tcp anet-b OMF data b
3339/tcp anet-l OMF data l
3340/tcp anet-m OMF data m
3341/tcp anet-h OMF data h
3342/tcp webtie WebTIE
3351/tcp btrieve BTRIEVE
3352/tcp ssql SSQL
3353/tcp fatpipe FATPIPE
3354/tcp suitjd SUITJD
3362/tcp dj-ilm DJ ILM
3372/tcp tip2 TIP 2
3378/tcp wsicopy WSICOPY
3379/tcp socorfs SOCORFS
3381/tcp geneous Geneous
3383/tcp esp-lm Enterprise Software Products License Manager
3390/tcp dsc Distributed Service Coordinator
3391/tcp savant SAVANT
3392/tcp efi-lm EFI License Management
3395/tcp dyna-lm Dyna License Manager (Elam)
3421/tcp bmap Bull Apprise portmapper
3455/tcp prsvp RSVP Port
3456/tcp vat VAT default data
3457/tcp vat-control VAT default control
3900/tcp udt_os Unidata UDT OS
3984/tcp mapper-nodemgr MAPPER network node manager
3985/tcp mapper-mapethd MAPPER TCP/IP server
3986/tcp mapper-ws_ethd MAPPER workstation server
4001/tcp newoak NewOak
4008/tcp netcheque NetCheque accounting
4096/tcp bre BRE (Bridge Relay Element)
4132/tcp nuts_dem NUTS Daemon
4133/tcp nuts_bootp NUTS Bootp Server
4143/tcp oidsr Document Replication
4321/tcp rwhois Remote Who Is
4343/tcp unicall UNICALL
4346/tcp elanlm ELAN LM
4348/tcp itose ITOSE
4444/tcp krb524 KRB524
4444/tcp nv-video NV Video default
4446/tcp n1-fwp N1-FWP
4449/tcp privatewire PrivateWire
4450/tcp camp Camp
4451/tcp ctisystemmsg CTI System Msg
4452/tcp ctiprogramload CTI Program Load
4500/tcp sae-urn sae-urn
4501/tcp urn-x-cdchoice urn-x-cdchoice
4546/tcp sf-lm SF License Manager (Sentinel)
4672/tcp rfa remote file access server
4800/tcp iims Icona Instant Messenging System
4801/tcp iwec Icona Web Embedded Chat
4802/tcp ilss Icona License System Server
4827/tcp htcp HTCP
4868/tcp phrelay Photon Relay
4885/tcp abbs ABBS
5002/tcp rfe radio free ethernet
5003/tcp fmpro-internal FileMaker, Inc. - Proprietary transport
5004/tcp avt-profile-1 avt-profile-1
5005/tcp avt-profile-2 avt-profile-2
5010/tcp telelpathstart TelepathStart
5020/tcp zenginkyo-1 zenginkyo-1
5021/tcp zenginkyo-2 zenginkyo-2
5050/tcp mmcc multimedia conference control tool
5060/tcp sip SIP
5150/tcp atmp Ascend Tunnel Management Protocol
5190/tcp aol America-Online
5191/tcp aol-1 AmericaOnline1
5192/tcp aol-2 AmericaOnline2
5193/tcp aol-3 AmericaOnline3
5272/tcp pk PK
5300/tcp hacl-hb # HA cluster heartbeat
5301/tcp hacl-gs # HA cluster general services
5304/tcp hacl-local # HA Cluster Commands
5305/tcp hacl-test # HA Cluster Test
5307/tcp sco-aip SCO AIP
5310/tcp outlaws Outlaws
5311/tcp tmlogin TM Login
5400/tcp excerpt Excerpt Search
5402/tcp mftp MFTP
5404/tcp hpoms-dps-lstn HPOMS-DPS-LSTN
5407/tcp foresyte-clear Foresyte-Clear
5409/tcp salient-dtasrv Salient Data Server
5410/tcp salient-usrmgr Salient User Manager
5411/tcp actnet ActNet
5414/tcp statusd StatusD
5418/tcp mcntp MCNTP
5419/tcp dj-ice DJ-ICE
5500/tcp fcp-addr-srvr1 fcp-addr-srvr1
5501/tcp fcp-addr-srvr2 fcp-addr-srvr2
5502/tcp fcp-srvr-inst1 fcp-srvr-inst1
5503/tcp fcp-srvr-inst2 fcp-srvr-inst2
5504/tcp fcp-cics-gw1 fcp-cics-gw1
5555/tcp personal-agent Personal Agent
5602/tcp a1-msc A1-MSC
5603/tcp a1-bs A1-BS
5631/tcp pcanywheredata pcANYWHEREdata
5632/tcp pcanywherestat pcANYWHEREstat
5678/tcp rrac Remote Replication Agent Connection
5679/tcp dccm Direct Cable Connect Manager
5713/tcp proshareaudio proshare conf audio
5714/tcp prosharevideo proshare conf video
5715/tcp prosharedata proshare conf data
5717/tcp prosharenotify proshare conf notify
5729/tcp openmail Openmail User Agent Layer
5741/tcp ida-discover1 IDA Discover Port 1
5742/tcp ida-discover2 IDA Discover Port 2
5745/tcp fcopy-server fcopy-server
5746/tcp fcopys-server fcopys-server
5755/tcp openmailg OpenMail Desk Gateway server
5757/tcp x500ms OpenMail X.500 Directory Server
5766/tcp openmailns OpenMail NewMail Server
5767/tcp s-openmail OpenMail Suer Agent Layer (Secure)
6000/tcp x11 X Window System
6110/tcp softcm HP SoftBench CM
6111/tcp spc HP SoftBench Sub-Process Control
6112/tcp dtspcd dtspcd
6123/tcp backup-express Backup Express
6141/tcp meta-corp Meta Corporation License Manager
6142/tcp aspentec-lm Aspen Technology License Manager
6143/tcp watershed-lm Watershed License Manager
6144/tcp statsci1-lm StatSci License Manager - 1
6145/tcp statsci2-lm StatSci License Manager - 2
6146/tcp lonewolf-lm Lone Wolf Systems License Manager
6147/tcp montage-lm Montage License Manager
6148/tcp ricardo-lm Ricardo North America License Manager
6149/tcp tal-pod tal-pod
6253/tcp crip CRIP
6389/tcp clariion-evr01 clariion-evr01
6500/tcp boks BoKS Master
6558/tcp xdsxdm
6665/tcp ircu IRCU
6670/tcp vocaltec-gold Vocaltec Global Online Directory
6672/tcp vision_server vision_server
6673/tcp vision_elmd vision_elmd
6790/tcp hnmp HNMP
6831/tcp ambit-lm ambit-lm
6969/tcp acmsoda acmsoda
7010/tcp ups-onlinet onlinet uninterruptable power supplies
7020/tcp dpserve DP Serve
7070/tcp arcp ARCP
7099/tcp lazy-ptop lazy-ptop
7100/tcp font-service X Font Service
7121/tcp virprot-lm Virtual Prototypes License Manager
7174/tcp clutild Clutild
7200/tcp fodms FODMS FLIP
7201/tcp dlip DLIP
7395/tcp winqedit winqedit
7426/tcp pmdmgr OpenView DM Postmaster Manager
7430/tcp xmpv7 OpenView DM xmpv7 api pipe
7431/tcp pmd OpenView DM ovc/xmpv3 api pipe
7491/tcp telops-lmd telops-lmd
7511/tcp pafec-lm pafec-lm
7544/tcp nta-ds FlowAnalyzer DisplayServer
7545/tcp nta-us FlowAnalyzer UtilityServer
7588/tcp sun-lm Sun License Manager
7777/tcp cbt cbt
7781/tcp accu-lmgr accu-lmgr
7932/tcp t2-drm Tier 2 Data Resource Manager
7933/tcp t2-brm Tier 2 Business Rules Manager
7999/tcp irdmi2 iRDMI2
8000/tcp irdmi iRDMI
8032/tcp pro-ed ProEd
8400/tcp cvd cvd
8401/tcp sabarsd sabarsd
8402/tcp abarsd abarsd
8403/tcp admind admind
8450/tcp npmp npmp
8473/tcp vp2p Vitual Point to Point
8888/tcp ddi-tcp-1 NewsEDGE server TCP (TCP 1)
8889/tcp ddi-tcp-2 Desktop Data TCP 1
8890/tcp ddi-tcp-3 Desktop Data TCP 2
8891/tcp ddi-tcp-4 Desktop Data TCP 3: NESS application
8892/tcp ddi-tcp-5 Desktop Data TCP 4: FARM product
8893/tcp ddi-tcp-6 Desktop Data TCP 5: NewsEDGE/Web application
8894/tcp ddi-tcp-7 Desktop Data TCP 6: COAL application
9000/tcp cslistener CSlistener
9006/tcp sctp SCTP
9090/tcp websm WebSM
9535/tcp man
9594/tcp msgsys Message System
9595/tcp pds Ping Discovery Service
9876/tcp sd Session Director
9992/tcp palace Palace
9993/tcp palace Palace
9994/tcp palace Palace
9995/tcp palace Palace
9996/tcp palace Palace
9997/tcp palace Palace
9998/tcp distinct32 Distinct32
9999/tcp distinct distinct
10000/tcp ndmp Network Data Management Protocol
11000/tcp irisa IRISA
11001/tcp metasys Metasys
12753/tcp tsaf tsaf port
13160/tcp i-zipqd I-ZIPQD
13720/tcp bprd BPRD Protocol (VERITAS NetBackup)
13721/tcp bpbrm BPBRM Protocol (VERITAS NetBackup)
13782/tcp bpcd VERITAS NetBackup
17219/tcp chipper Chipper
18000/tcp biimenu Beckman Instruments, Inc.
19410/tcp hp-sco hp-sco
19411/tcp hp-sca hp-sca
19541/tcp jcp JCP Client
21845/tcp webphone webphone
21846/tcp netspeak-is NetSpeak Corp. Directory Services
21847/tcp netspeak-cs NetSpeak Corp. Connection Services
21848/tcp netspeak-acd NetSpeak Corp. Automatic Call Distribution
21849/tcp netspeak-cps NetSpeak Corp. Credit Processing System
22273/tcp wnn6 wnn6
22555/tcp vocaltec-wconf Vocaltec Web Conference
22800/tcp aws-brf Telerate Information Platform LAN
22951/tcp brf-gw Telerate Information Platform WAN
24000/tcp med-ltp med-ltp
24004/tcp med-ovw med-ovw
24005/tcp med-ci med-ci
25000/tcp icl-twobase1 icl-twobase1
25001/tcp icl-twobase2 icl-twobase2
25002/tcp icl-twobase3 icl-twobase3
25003/tcp icl-twobase4 icl-twobase4
25004/tcp icl-twobase5 icl-twobase5
25005/tcp icl-twobase6 icl-twobase6
25006/tcp icl-twobase7 icl-twobase7
25007/tcp icl-twobase8 icl-twobase8
25008/tcp icl-twobase9 icl-twobase9
25009/tcp icl-twobase10 icl-twobase10
25793/tcp vocaltec-hos Vocaltec Address Server
26000/tcp quake quake
26208/tcp wnn6-ds wnn6-ds
45678/tcp eba EBA PRISE
47557/tcp dbbrowse Databeam Corporation
47806/tcp ap ALC Protocol
47808/tcp bacnet Building Automation and Control Networks
[color=#4B0082]夜晚十点的时候我照例在电话里跟男朋友情意绵绵发嗲耍赖,两人郎情妾意勾勾搭搭把肉麻当有趣,说一些写出来肯定会吐但说出来便叫甜言蜜语的话,正是全世界都不想搭理的时候,手机突然发疯般的响起来,一遍一遍的催命一般。男友在电话那头火大的叫道,把它给关了,谁这么不识趣呢。
我看看来电显示,接通便没好气的骂:“猪头你干嘛呢,半夜三更的打来不知道现在是热线电话时间吗?自己体积大就闪一边去,不要妨碍地球转。”
“兄弟有点同情心好不好?我在医院打吊瓶呢,没吃晚饭,送点夜宵过来吧,顺便陪我聊聊天。哎,对了,我还要一瓶红牛。”电话那头的人没把我的火气当回事,厚颜无耻的提出要求。
[separator]“打吊瓶而已,又不是马上要死了,自己呆着吧。”我恶狠狠的放下电话,对着电话那头的男友说“我有事要出去,今晚就不聊了。”
有一分钟的平静,然后男友淡淡的问:“是阿丹吧,这么晚叫你出去,不觉得应该注意点分寸吗?”
我立马恼了:“什么分寸不分寸的,这是我哥们,我跟他认识的时候还没你呢!吃什么飞醋!”
那边也火了,凶巴巴的吼过来:“周妖瞳你叫唤什么,他没太太照顾吗,非要叫你过去?两人平时行为亲密的我就不说了,说了当我小心眼,现在算什么?半夜三更出去陪他聊天,为了他跟我吵?你要他就跟了他去!告诉你,你今天要是去了,咱们就立马白白”
“很好。”我对着电话无限温柔的说:“你现在可以去撞墙了,88。”啪的一声大力砸上话筒。
时速80公里飚车来到医院的时候,看到一个家伙正扶着药水瓶眉开眼笑的跟急诊部的小姐要电话号码,顿时恶从胆边生,一瓶饮料砸将过去,怒吼一声,你怎么还没死啊!病成这样你老婆怎么不来陪你!休了她得了!
阿丹接住红牛,嘻皮笑脸的道:“我怕我死了没有人象我这么爱你啊。你要嫁我,便休了她。”我朝他便呸了一声。
老人说世间的东西一物降一物,这话我信。我就是拿这家伙没辙。老人说缘份的东西不能强求,这话我也信,阿丹不管是从认识的时间还是交情来说,都可以算是我的青梅竹马蓝颜知已,在中专学校一块儿上学的时候,还狠狠的暗恋了他一把,只是这家伙天生迟钝又或是会装傻,明示暗示都没反应,体贴入微只当是兄弟间理所当然的照顾,毕业聚会那天,班上不少互相之间仰慕的同学都趁着酒意对心上人说出爱意,我当时喝得烂醉,是他送我回来的,有同学便打趣到“又成了一对。”被他严正喝斥:“这是兄弟般的阶级友谊!不得胡说!”我一向是喝醉了之后,第二天起来脑子就跟清洗过一样,什么都记不得的。只是事后听说了此事,便也渐渐淡了这份心思,退而求其次好好经营彼此之间友谊,也算是不枉相知一场。
再后来他娶了太太,而我也换了N个男友,跟现任男友基也基本上定了下来。
缘份,嘿嘿,我有点失神的笑骂自己,今天是怎么了,突的想起这些破往事来了。
三瓶药水打完的时候,已经是近一点多了,我们呼了也是死党的阿猫来,到一家开在18层楼顶上的酒吧宵夜。
喝到有七分酒意,大家说话便放肆起来,阿猫大着舌头摸着胖乎乎的肚子无限感慨的说,当初大家都以为你们两人会成为一对,在学校的时候便形影不离这么要好的,真是奇怪,奇怪之极,为什么你们就是不相爱呢?我跟阿丹同时默契的回他一句:“我们是兄弟!”相视而笑。
男友的电话打来了,大概也是喝高了,语无伦次的在电话那头道歉检讨,又说些让人脸红的酒话,拿着电话我知道看着旁边坐着两人的表情,知道自己笑得暖味之极。
“看来这辈子就是他了罢,这么纵容体贴的人,宁愿错杀不要放过啊。”阿猫在旁边挤眉弄眼偷偷说道,然后状似痛苦哀嚎一声冲到卫生间里。阿丹静静坐着,看着我微笑,眼里有一些情绪是祝福吧?
我得意的飞个眼给他,拿着电话哄那头醉酒撒娇的男人:“乖,我不生气,真的,嗯嗯,我也想你,真的真的……”
“去死吧!”我甜蜜至极的对着电话笑骂,然后挂上电话。一抬眼发现阿丹在看着我,有点呆滞的样子。
“嗯?我脸上有脏东西么?”
“没什么。”他回过神来,表情古怪的问:“他说了什么话你叫他去死?”
“他说爱我。”
“人家说爱你你还要他去死?”
“嘿嘿,”我象只偷吃了油的小耗子一样得意的笑,“我一紧张就下意识的冒出这句口头禅,其实我的意思是,我也爱他。”我嘻皮笑脸的喝一大口啤酒,跟从卫生间出来的阿猫与他宣布:“我跟他准备结婚了。”
当天晚上阿丹喝了很多酒,烂醉如泥,我归结于为我感到高兴的原因,这样的兄弟,真真难得,我差点没抱着他痛哭流涕,最后是阿猫送他回去的,因为我亲爱的标准老公来接我去海边,说要在初升的太阳前正式向我求婚。
第二天,我在跟准老公选结婚用品的时候遇上阿猫,他趁我男友去付钱的时候,鬼鬼崇崇的贴近我做长舌妇状:“你知道昨天晚上我送阿丹回家的时候,他跟我说了什么吗?”
“总不可能说喜欢你吧?难免你们是玻璃?”人逢喜事精神爽,我笑咪咪的回答,破天荒没有给他一脚。
“他说在学校喝毕业酒的那天告诉你,他爱你。”我怔了一下,脑子里一片空白,下意识的问:“然后呢?”
“然后你跟他说,叫他去死……”
[/color]
[color=#FF4500]“我真不明白,你为什么要委屈求全?”“你这样做值得吗?”“你这样过你觉得幸福吗?”“你这样做有意义吗?”当我的感情出现问题时,很多人都非常不解地问我。
也有人恨铁不成钢地对我说:“如果我老公提出离婚,我二话不说就会离。天底下又不是只有他一个男人。”“女人要活得有自尊。”“你真是哀其不幸,怒其不争,他要离就离,有什么好留恋的。”
我知道他们都是为我好,都是站在关心我的角度上为我着想,都是抱着关心我的态度为我打抱不平,这一点我毫不怀疑。我非常感谢每一个关心我的人,但在感谢他们关心的同时,我只是淡淡地一笑,我并不完全认同他们的说法。
[separator]套用庄子的一句话:“子非鱼,焉知鱼之乐?”你不是我,又怎么知道我过得快乐不快乐?又怎么能了解我的内心!谁又能那样绝对地认为我这样做没有意义!
爱,到底是什么?谁又能说得清楚。
我也知道,人要活得有尊严,活出自我,活出自我的精彩,但是我们的家人呢?人不是只为自己而活,我考虑了太多太多的因素,而不是我自己的因素,比如对孩子的影响、对双方父母的影响,我们周边的社交圈……当然我想得最多的是我们曾经很深很深的感情!
爱情,又岂能用自尊来衡量?婚姻中,如果大家都顾忌自尊,你说分手我绝不挽留,那这世界上又能有多少夫妇白头到老?
我认为,那种“宁为玉碎,不为瓦全”的态度是不适合用到婚姻中来的,芸芸众生中,大都还得瓦全于世上。建立一个家庭不容易,而一个家庭的解体却是轻而易举,所以对家庭,我是除了珍惜,还是珍惜。我坚守着阵地,为的只是让头脑发热的先生有一个冷静反思的机会,也让我有时间冷静下来去好好反省自己检验对方,彼此都可以理智从容地去考虑去选择自己应走的路,尽可能地把痛苦减少到最低,让自己的人生不留遗憾。当一切努力都无济于事,实在是没办法一起生活下去时,再作定夺。
我从来不否认“补过的碗,总有一道裂痕”,但我亦非常认同“破镜重圆情更深”,何况我们之间的感情还没有到这个地步。我更知道,爱,需要理解、需要包容!
一直赞成把婚姻比作船,因为航程太远,这就注定了航行中难以避免遇到各种无法预料的风风雨雨,甚至狂风大浪。我相信一生一世的夫妻没有几个是风平浪静地从始至终恩爱到白头的。相信每个人走在街上看见夕阳下一对对蹒跚牵手的老夫妻,我们都会羡慕、钦佩甚至为之深深感动,可是,这些牵手一生的老夫妻你敢肯定他们年轻时没有过分开的打算吗?或者曾经在感情的轨道上偏离过,甚至背叛过?可他们最终跨过风风雨雨一路携手走了过来,你能说这不是一种幸福、一种爱、一种完美、一种爱情的最高境界吗?
虽然我的笑容背后有着无人知晓的泪水与哀愁,虽然我的做法令很多人不解甚至不屑,但是我对自己所做的一切,从来不去用值不值得来衡量,我只知道,无论将来怎么样,我的爱,不后悔!
[/color]
[color=#008000]她比我大一岁,是我的同班同学,学习很好,人长得不算漂亮,却很有气质。上学的时候我们一直是好朋友,经常在一起学习和研究问题,有时也会聊天,谈谈关于理想和未来什么的。在那个纯真的年代,我第一次知道了喜欢一个人的感觉,却没有勇气去告诉她。
后来大家都毕业了,她升了学,当了学生干部,还交了男朋友。这些我都是从同学那里听来的,不知道为什么,有一天我竟然鼓起勇气给她写了一封信。那只是一封普通的信,信很短,内容也仅限于朋友间的问候。对于深藏在内心的感情,我仍然没有勇气去表达。
[separator] 一个星期以后,我收到了她的回信,她说她收到我的信非常开心,还留下了她的电话号码,但对于信里我“关心”她的感情问题,她只字未提。
我心里很不是滋味,我猜那个男孩给她的爱情一定很快乐,而我却始终没来得及对她表白,我的爱情还没有开始就已经结束了。我一直留着她的电话号码,却始终没有勇气打。
放假了,我被同学拉去参加同学聚会,她也去了。她比从前漂亮了,也更有气质了,但不知道为什么,她总是对我不理不睬。后来我好不容易找到了一个单独和她说话的机会,本想跟她好好聊聊,谁知道她张嘴就说:“你是大忙人,怎么会记得跟我联系呢?”
那一晚无论我说什么,她总是这样尖酸刻薄地回应我,或者干脆不理我,而对别人却总是有说有笑。这让我莫名其妙,我真不明白女孩子的心,她为什么对我那么冷漠?是我做错什么了吗?
直到多年后,我收到了她的一封信,这个谜才终于揭开。我没想到,在失去了联络多年以后,她会给我写信回忆那个青春的年代。她说她是为了给自己一个交代才写这封信的,她说,她曾经为了等我的电话而夜夜睡不好觉,她以为,我会先对她说出那个“爱”字。
直到多年以后我才明白,一个女孩莫名其妙地对你发脾气,基本上是因为她爱你。而当我明白这个道理的时候,她已经结婚了。年轻的情感,一旦错过,就永远失去了,而所有的一切,再没有重新来过的机会。
她的现实让我困惑
告别了青涩的初恋,我开始了艰难的寻爱之旅,几年之间我交往了好些个女孩,但最终都没能有个好结果。我并不是一个不懂珍惜的人,我不知道我是不是真的要求很高,反正我一直也没有找到适合自己的女孩。虽然心里总不免觉得有些挫败,但还没绝望到放弃的地步。
后来我在网上认识了一个女孩,她比我小几岁,是个小妹妹。跟她聊天很有意思,她教会了我好多新奇的词汇,也让我接触到了很多新鲜的事物。聊了一段时间之后,我们对彼此都很有好感,我委婉地向她表达了见面的请求,并也暗示了想要进一步发展的愿望。她沉默了片刻,然后一本正经地说:“我从来不随便见网友的,交网友可以随意,但我对待感情是很认真的,你若是真心的我可以考虑,若你只是随便玩一玩就找别人吧!”
她的话让我很高兴,同时也更确定了自己的选择,我要的正是一个认真对待感情的好女孩。
很多人都说网恋是“见光死”,但我们都没有在乎这个。我见到了她,她很漂亮,很年轻也很活泼,和她在一起的时间过得轻松且愉快。在她的带领下,我去了好多我从来没去过的地方,认识了好多她的朋友,也见识了她五彩缤纷的世界。也许是每个长大的人都会怀着对青春的向往,我很喜欢她那个世界,甚至希望能留在那里。
可是随着交往的深入,我却开始在她身上发现了好多缺点:她没有明确的人生目标,喜欢逃避问题,常常随意浪费时间和金钱,还爱使性子发脾气。在她面前,我永远都扮演着包容和保护的角色。一开始我还觉得挺自豪,可时间长了就有些倦了。我开始担心,如果她永远都是这样一副长不大的样子,我怎样和她为了未来的人生而共同奋斗?
有一天,她又乱花钱了,我在劝她以后少花钱的时候随口说了一句:“你再这样下去,我们将来结婚就没房子了。”她当时愣了一下,没说什么。可当天晚上,她在网上不断问我,我有多少存款,我将来准备买多大的房子,是付现金还是贷款……
我的家庭条件确实不那么优越,但经过这几年我个人的奋斗和努力,结婚和维持一个中等水平的生活还是可以的,可是面对这样一连串的“拷问”,我突然觉得害怕,是什么让这么年轻的女孩子变得如此现实?如果我说我没有房子,她会因为爱情跟我在一起吗?
我还是为自己保留了一些,没有把我真正的经济状况告诉她,她开始对我越来越冷淡,很快我们就分手了。
最适合自己的爱最简单
我一向自问自己条件还不错,不知道为什么我的爱情之路会如此坎坷。我的同学和朋友都先后成了家,很多都已经为人父母,只有我还在爱的路上摸索着。也许我该学得现实一些,可我多么希望我的爱人是个与众不同的女孩。
对于我的婚事,我的家人比我还着急,后来竟在报纸上帮我公开征婚。没多久,还真找到了一个条件差不多的女孩。跟前两个女孩比起来,她显得很平凡,长相一般,也没有太强烈的个性,我硬着头皮跟她开始了交往。
这份爱情很随意,不过带给我更多的是轻松。随着接触的时间长了,我发现了她很多的优点:她不会居高临下地指挥你做这做那,也不会整天粘着你;她处事成熟,不管做什么总是恰到好处;她原来不是没个性,而是大智若愚。
其实每一种女孩都有她自己的可爱之处,如果能化挑剔为欣赏,你就会发现,其实每个女孩都很可爱。
后来,我们的关系发展到谈婚论嫁的地步了,可她却从来没有问过关于买房子的事儿,也从来不问我的经济状况和对未来的规划。我很奇怪,为什么之前每个女孩都会追着我问的事情,她却如此不放在心上?终于有一天,我忍不住问她:“你好像还有一个问题没有问我呢。”
“什么啊?”她好奇地看着我。
“我们都要结婚了,你还没问过我买房子的事。”
她笑了,笑得很随意,很坦然:“这不重要,重要的是,我们心里有对方。”
我的心升起一股莫名的感动,我知道,我终于找到了我要的女孩。
幸福,还是在我不倦的追求下被我得到了。我想爱情有时候可能是这样,你一开始看好的,并不一定就是适合你的;而你一开始不看好的,有可能才是最适合你的.
[/color]
[color=#DC143C]他既不是新欢,也不算旧爱,根本就是她爱错了的一个人,不知道当初为什么害自己那样轰轰烈烈地伤心。
是真的伤心。想当初已经到谈婚论嫁的地步,双人床都买好了,毫无征兆地,他突然就提出了分手:“我家出了事,没有钱结婚。”她说我不怕,实在不行,把新房子卖了吧,给你家凑些钱救急;他说分手吧,“我曾经定过亲,我得为人家负责任”,她说这不是一个包办的年代,你如果为难,我去和她说。他步步紧逼,她却不肯退后半步。后来他就开始躲避她,她有一种悬崖边上被人松了手的感觉,心不由自主往下沉,手也不由自主要抓紧,抓紧。
[separator] 她给他做饭,替他整理房间,费尽心思讨他的欢心,那段时间草都绿得发冷。上司说小秋你留下来,我有工作要和你讨论。所有人都走了,就她拘谨地坐在沙发上,看着上司一边挪动肥胖的身子一边哼哼,一点点向自己走近,影子像山一样压下来。她大惊失色,跳起来拼了命地冲出去,脱身的第一个念头就是去找他,在他的怀里哭个痛快。以前,他不就是这样的吗?她打开水的时候手被烫了一个小泡,他都心疼得要死。
可是见到了,吐了满腹委屈,他却没有表情,只反复说你要冷静,也许这是误会。你回去吧,我还有点事,要出门。她一个人去酒吧喝得酩酊大醉,嘴里整整叫了一夜他的名字。周围一圈朋友心急如焚,硬是把他找了过来,结果他就坐在她的身边,却一句都不肯回应。
狠狠爱了两年,再分手真是剥皮剔骨一样的痛,然后一夕之间,突然就醒了。
醒了才发现是这样一个不堪的男人。原来他要和老板的女儿结婚,这样,他就可以平步青云。而那急于摆脱她的心情,像扔掉一块旧抹布一样地无情。原来如此,醒过味来的爱情,是另一番光景。他此生注定是一只大鹏鸟,展翅飞上九重天,因为有深沉的心机,有斩截的决断,够干脆,够阴毒,够狠。
事实证明的确如此,再得知他的消息,已是10年后的今天,裙带关系上的龙飞凤舞,演变成而今呼风唤雨的角色。来人对她喋喋不休,详细描述他现今的风光。
“可是,你告诉我这些干什么呢?”她问。
“啊,我以为你想知道的……”前来做说客的也是故人,不好意思地喃喃呐呐,“毕竟当初你那样爱他。他非常想见你,怕你不肯见,托我来说说情。他老婆对他很不好,他一喝醉酒就哭,叫你的名字……”
她一下子想起一句话来:旧爱诡异地归来。
不,不是旧爱,是错爱,错爱诡异地归来。
那个写《青蛇》的李碧华说每个男人都希望他生命中有两个女人:白蛇和青蛇。“只是,当他得到白蛇,她渐渐成了朱门旁惨白的余灰;那青蛇,却是树顶青翠欲滴爽脆刮辣的嫩叶子。当他得到了青蛇,她反是百子柜中闷绿的山草药;而白蛇,抬尽了头方见天际皑皑飘飞柔情万缕新雪花。”
她也不幸地成为那个男人没有得到的寂寞青蛇,又像开在那个男人记忆深处的红果,诱得他把想得到的得到了,回过头来又想尝一口没得到的滋味是什么。而在他风光旖旎的想象中,当初深爱着他的女人,现在还在怀抱寂寞,苦苦想念着他。
那是不可能的!
当初凭你伸手就能摘得,你不肯;就算你不肯伸手,只要你张开怀抱就行,你还是不肯。为了前程,你选择了摆脱,为了摆脱,你安排了迷阵,就算这一切都没有发生,你以为世上有哪一只果子肯红红地挂在枝头10年,苦苦守候一个凉薄的情人?
女人和男人一样,如果他痴迷,你不要让他醒,醒过来就有一种决绝的无情。就像那个海盗一样的瑞特·巴特勒,对斯佳丽拼命地爱呀爱的,可是一旦梦醒,就对回头的斯佳丽说:“亲爱的,我才不在乎呢。”
她忘了自己说了些什么,反正面对来人,始终铁了心。你会失望,会伤心?你会伤,会痛?“对不起,我才不在乎呢。”
旧爱归来,昔日的你侬我侬尚且抵不过眼前柴米油盐的光景;错爱归来,对那个被辜负和瞒骗的女人来说,无非揭开一段屈辱的红尘,用事实证明米兰·昆德拉说的一句话:“一个女人的一生总会至少爱上一次王八蛋。”
错爱归来,让人连看一眼都不再肯。
[/color]
[color=#0000FF]她还记得男人给她讲稻草人的故事。稻草人穿着色彩艳丽的衣裙,忠心耿耿地守护着金灿灿的乡间田园。那时他们还读大学,晚上,有月亮的时候,校园的草坪上,她依着那个男生的肩膀,想着稻草人虚张声势地驱赶馋嘴的麻雀,偷偷地笑。
男人从乡村来到城市,一个人不停打拼,终于扎下了根。生活当然过得艰难,她为男人,为他们的家,付出了太多太多。好在男人的事业正朝好的方向发展,他每天穿着藏蓝色的西装,打着银灰色的领带,见各种各样的客户,谈各种各样的生意。男人在奔向成功,在他们婚后的第五个年头。
可是女人突然发现了男人的蛛丝马迹。之前只是听说,她并不相信。她不可能相信那样爱她疼她的男人竟会变心。可是男人的行为,好像可以说明一切。
[separator] 她知道男人偷偷地买过一套女装。很高档的那种,这之前,男人从来舍不得为她买。那天男人带着一位很时尚的女孩,那是男人公司的职员。她和女伴正在一扇窗子的后面喝茶,女伴说,你老公!男人就走过去了,目不斜视,臂弯上搭着那套女装。她说你看错了,不是他。她极力为他辩护的谎言像一把锋利的刀子,忍着痛说了出来,却把心划开一道口子。
男人去很远的城市出差,回来,鬼鬼祟祟地,似乎藏着什么。夜里女人忍不住翻看他的皮包,却翻出一枚镶了宝石的戒指。价值不菲的戒指,闪着柔和的光泽,却刺得女人眼睛疼痛,不敢去看。早晨女人问男人,有什么送给我吗?男人就变了表情,很慌乱的样子。他说有,当然有……我竟忘了!急急地从一个旅行包里掏出一个披肩。专门为你买的,咱们这里没有。男人躲闪着她的眼睛,说。
但是,女人曾经在门口的服装超市,见过和这条一模一样的披肩。三五十块钱的东西,挂得到处都是。
什么叫天荒地老?女人想,所谓的天荒地老,或许,只是一种美妙的幻想罢了。
女人开始挽救。她不想揭穿男人,但她要挽救他们的爱情。她给男人挑选最好的剃须刀,陪男人看味同嚼蜡的足球赛。她经常往男人的公司里打电话,装作不经意间打听男人的行踪。她抢先接听打进家里的每一个电话,然后柔声呼唤自己的丈夫。她为男人烧最可口的饭菜,然后在吃饭的时候,笑着问男人,下午,你过得好不好?一个人,还是……
她甚至当着男人的面,虚伪地夸那个时尚女孩很清纯很可爱。说这些时,她盯着男人的脸。她试图从男人的脸上读到些什么。她或许真的读到了,或许没有。她搞不清楚。
她感觉自己现在,真的变成一个穿着艳丽衣裙的稻草人,露着狰狞夸张的表情,守护着自己的感情田园,虚张声势地驱赶着看不见的来敌。多年的感情竟然要靠驱赶和恫吓来维系,她认为她和他和爱情,实在可怜。
并且,她不知道自己这种夸张的表演,还能坚持多久。
那天男人回来的很早。男人说,知道今天是什么日子吗?她问什么日子。男人说,结婚五周年纪念日啊。女人愣了愣。这么重要的日子,她竟忘了。男人说,今天,我终于可以兑现一个承诺。他掏出一张皱巴巴的纸片,捧给女人。女人接过,那上面写着:八年内,为你买最漂亮的房子和汽车,买最昂贵的衣裙和戒指。下面,是男人的签名。
女人想起来了。大学时候吧,那一天,男人为她写下了这样的两行字。她以为是玩笑,随手丢开,却被男人拣起。想不到,男人竟把一句根本算不上承诺的话,保存到现在。
男人说,房子和汽车,我们刚刚有,现在,让我兑现最后的两样。男人为她打开衣柜,女人惊喜地发现,她曾经和女伴一起看过的搭在男人臂弯上的漂亮衣服,不知什么时候,已经挂在那里。男人让女人闭上眼睛,然后,女人便感觉,一枚小巧的戒指,戴上了她的手指。
男人说,爱情并不需要昂贵的物什来装饰;但是,所有的承诺,特别是爱人间的承诺,都是昂贵的,都需要兑现。
男人说,其实,两个月前,我就准备好了。想给你一个惊奇,就一直藏到现在。男人竟红了脸,他搓着手,像一位正值初恋的小男孩。
那夜的女人,自责到极点。她认为自己有些过分了。那么宁静的感情田园,她却硬生生虚构出并不存在的入侵者,然后进行一场虚假的保卫战。显然,过分的敏感,让她差一点点,失去真正的感情田园。
其实,金灿灿的感情田园,并不需要虚张声势的稻草人。需要的,只是两位农夫。一起耕作,从青丝,到白头。
[/color]