5. 字符集
字符集是由一对方括号“[]”括起来的字符集合。使用字符集,你可以告诉正则表达式引擎仅仅匹配多个字符中的一个。如果你想匹配一个“a”或一个“e”,使用<<[ae]>>。你可以使用<<gr[ae]y>>匹配gray或grey。这在你不确定你要搜索的字符是采用美国英语还是英国英语时特别有用。相反,<<gr[ae]y>>将不会匹配graay或graey。字符集中的字符顺序并没有什么关系,结果都是相同的。
你可以使用连字符“-”定义一个字符范围作为字符集。<<[0-9]>>匹配0到9之间的单个数字。你可以使用不止一个范围。<<[0-9a-fA-F] >>匹配...
文章出处:http://www.cnblogs.com/dragon/archive/2006/05/08/394078.html
前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的感受,所以也就不能免俗了。 本文是Ja...
PPPOE Killer 1.0版说明
//By redice //redice@163.com (redice@see.xidian.edu.cn)//http://redice.bookold.net//2008.6.23
功能说明:
该程序可以模拟一个ADSL Modem。程序运行时,局域网内的PPPOE验证数据将转向本程序所在主机(即将该主机误认为成一物理存在的"猫")。程序将与客户端进行验证交互,并捕获用户ID,密码,Mac地址等信息。
原理说明:
程序伪装成ADSl Modem与客户拨号程序进行交互,获取帐号密码。特别适用于“一猫多拨的201上网”环境。
“一猫多...
//by redice http://blog.bookold.net redice@163.com//2008.6.10
 
 
☆ 如何获取网卡的MAC地址?
进行网络底层编程时,这是一个大家都无法回避的问题,也是一个比较棘手的问题。就我所知道的方法有如下几种:
1 使用NetBois命令。  在网上搜索,可以发现这是最常见的方法。不过有点复杂,使用起来也有限制,如果机器禁用了NetBois,那么这种方法就行不通了。
 
2 使用Winpcap Packet.dll中的PacketGetNetType函数。  熟悉Win...
最近在黑防上看了一篇文章《简易杀毒软件编写》,讲到了通过扫描PE文件中危险API的方法判断PE文件是否为病毒的思路,很不错。但是在关键的地方,作者却用了一句“黑防以前的文章有关于查看PE导入表的,在这里不aoshu”的话,将如何扫描PE导入表搪塞过去了。狂郁闷呀。“以前的黑防”到底是哪一期呀??最后到黑防网站上下到了这篇文章的代码,代码中只有关于如何查找文件,如何获取进程列表以及如何判断一个文件是pe文件三个函数,根本没有关于扫描PE导入表的相关方法。
 
看来要靠自己动手了。以前就像好好学习一下PE结构,但是后几次都知难而退了。这次一定要拿下。
到"看雪"找来了关于PE...
在CSS文件中加入如下代码即可(只支持IE~):
*{filter:gray; color:gray;}
TCP端口扫描
客户端向服务器某端口发送TCP连接(第一次握手)请求,服务器接收到该数据包(连接请求)后,检查系统该端口是否处于监听状态。
(1) 如果系统发现该端口处于监听状态,则将该数据包传递给应用程序,应用程序向客户端发送第二次握手,客户端接收到后,发送第三次握手。这样一个TCP连接就建立了。客户端可以根据服务器端是否给予了第二次握手来判断服务器是否开放了该端口。(SYN极速TCP端口扫描就是这个原理)
(2 )如果服务器发现客户请求的端口没有处于监听状态,则回送一个RST标志位为1的TCP数据包。
(以下图片放大后会更清晰!)
第一次握手:
此主题相关...
参考了孙鑫老师的《VC++从入门到精通》,向孙老师致敬!
ADO的三个核心对象Connection对象   Connection对象表示了到数据库的连接,它管理应用程序和数据库之间的通信。 Recordset和Command对象都有一个ActiveConnection属性,该属性用来引用Connection对象。Command对象   Command对象被用来处理重复执行的查询,或处理需要检查在存储过程调用中的输出或返回参数的值的查询。Recordset对象   Recordset对象被用来获取数据。 Recordset对象存...
IP地址格式转换在网络编程中会经常遇到,下面总结一下:
 
UINT->LPSTR
 
//将一个具有网络字节序的UINT型IP地址转化为点分十进制的字符串形式的IP
//方法1(很简单,不用解释了)
char *IpToString(char *ip, unsigned long lIp){char octeto[4]; ip[0] = 0; itoa(lIp & 0xff, octeto, 10); strcat(ip, octeto); strcat(ip, ".");
 itoa((lI...
 ISAPI Filter 开发心得    //转载请保留此信息,谢谢合作 //By RedIce 2008.4.13 //E-mail:redice@163.com //http://redice.bookold.net
 最近写了几个ISAPI Filter,网上这方面的资料很少, 不过MSDN上有一些。
 总结了一些我的经验,如下:  问:如何创建一个ISAPI Filter工程? 答:Vc++6.0->工程->ISAPI Extension Wizard 然...
meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:
name 属性
1、<meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等;
2、<meta name="KEY...
//c程序int add(int a,int b){ return a+b;}int main(){ int c; c=add(1,2); return 0;}
//对应的汇编代码1: int add(int a,int b)2: {00401010 55 push ebp00401011 8B EC mov ebp,esp00401013 83 EC 40 sub esp,40h00401016 53 ...
微机原理问答(转载)
第二章
1. 存储器与寄存器有什么不同?
答:寄存器在CPU的内部,它的访问速度快,但容量小(8086微处理器只有14个16位寄存器)、成本高,它用名字来标识(如AX、BX等),没有地址;存储器在CPU的外部,它的访问速度比寄存器慢,容量大(20根地址线寻址1M内存空间)、成本低,存储单元用地址来标识,地址可用各种方式形成。
2. 标志寄存器中的状态标志和控制标志有什么区别?
答:状态标志用来记录程序运行结果的状态信息,许多指令执行完毕后都相应地设置状态标志,它又称为条件码标志,包括进位标志、溢出标志、符号标志、零标志、奇偶标志等;控...
DNS的工作原理及过程分下面几个步骤: 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相...
数据库视图介绍(一)什么是视图: 视图(view):从一个或几个基本表中根据用户需要而做成一个虚表 1:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据 2:视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户 视图与查询的区别: 视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别: 它们的区别在于: 1:存储上的区别:视图存储为数据库设计的一部分,而查询则不是. 2:更新限制的要求不一样 要注意:因为视图来自于表,所以通过视图可以间接对表进行更新,我们也可以通过update语句对表进行更新,但是对视图和查询更新...
精妙SQL语句收集
SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表c...
Windows开机密码遗忘解决又一法RedIce 08.3.7Windows开机密码忘了,的确是一件令人头疼的问题。大家也想出了好多解决的办法,诸如:1 尝试使用Administrator用户登录。2 使用dospass或者深山红叶光盘带的NTPWEDIT.EXE程序破解。3 在Dos下使用系统备份的SAM文件(我的是在:C:\WINDOWS\system32\config\Newsid Backup)替换系统正在使用的SAM文件(C:\WINDOWS\system32\config)。4 还有一招比较绝的是在Dos下使用cmd.exe替换系统的默认屏保logon.scr文件,这样在登录...
LanKiller(局域网杀手) V1.0 //By redice//E-mail:redice@see.xidian.edu.cn//http://redice.bookold.net
功能简介:
 
1、扫描存活主机
2、IP冲突攻击, 禁止上网(中断主机于网关通信)
3、LAN敏感信息捕获(校内网账号密码,ADSL路由器账号密码)
4、DNS欺骗
 
开发平台:
Windows+VC6.0(MFC)+Winpcap4.02
 
程序运行截图:
 
 
 
 ...
C/C++语言误区之:void main( ) 作者:antigloss 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.( void main( ) 从来就不存在于 C++ 或者 C )。下面我分别说一下...
1 取得列表中数据的行数 int totalcount=m_list.GetItemCount();2 插入数据 m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 ); //添加表头 m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 ); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES); int nRow = m_list.InsertItem(0, “11”); //插入行 ...