2008年9月11日星期四

Post和Get的区别

1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。

2008年9月1日星期一

logparser使用精华

1、导出为execl能打开的格式logparser -i:evt -o:csv "select * from c:\sec.evt" > d:sec.csvlogparser -i:evt -o:csv "select * from security" > d:sec.csvlogparser -i:evt -o:nat "select * into a.txt from security"
logparser -i:evt -o:csv "select TimeGenerated,EventID,Message from c:\sec.evt" > d:sec.csv
logparser -i:evt -o:TPL -tpl:EventLogs.tpl "select * into b.html from d:\sec.evt"
使用条件语句:SELECT TimeGenerated, EventTypeName, SourceName FROM SystemWHERE ( SourceName = 'Service Control Manager' AND EventID >= 7024) OR ( SourceName = 'W32Time')
SELECT * FROM SecurityWHERE Message LIKE '%logon%'
A、在iis日志中搜索特殊链接LogParser -o:csv "SELECT * into a.csv FROM iis.log where EXTRACT_EXTENSION(cs-uri-stem) LIKE 'asp'"
B、最经典的例子,对日志中的url进行归并统计LogParser -o:csv "SELECT cs-uri-stem, COUNT(*) into a.csv FROM iis.log GROUP BY cs-uri-stem"
c、统计所有日志LogParser -o:csv "SELECT cs-uri-stem, COUNT(*)into a.csv FROM ex*.log GROUP BY cs-uri-stem"LogParser -i:iisw3c -o:csv "SELECT cs-uri-stem, COUNT(*)into a.csv FROM *.log GROUP BY cs-uri-stem"
d、对文件后缀进行排名LogParser -i:iisw3c -o:csv "SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, COUNT(*) into a.cssv FROM *.log GROUP BY PageType"
e、得到所有的不重复的链接LogParser -i:iisw3c -o:csv "SELECT distinct cs-uri-stem into a.csv FROM *.log"
2、生成百分比饼图LogParser "SELECT EventID, COUNT(*) AS Times INTO Chart.gif FROM d:\tmp\sec.evt GROUP BY EventID ORDER BY Times DESC" -chartType:PieExploded3D -chartTitle:"Status Codes"
3、http日志LogParser file:querytop.sql -o:chart -chartType:Bar3d -chartTitle:"TOP 10 URL"
querytop.sql:SELECT TOP 10 cs-uri-stem AS Url, COUNT(*) AS HitsINTO Urls.gifFROM <1>GROUP BY UrlORDER BY Hits DESC
4、在html页面里找关键字Return the lines in an HTML document that contain links to other pages:LogParser "SELECT Text FROM
http://www.microsoft.adatum.com/ WHERE Text LIKE '%href%'" -i:TEXTLINE
5、MD5 Hashes of System FilesLogParser "SELECT Path, HASHMD5_FILE(Path) into a.txt FROM C:\Windows\System32\*.exe" -i:FS -recurse:0
6、Print the 10 largest files on the C: drive: LogParser "SELECT TOP 10 Path, Name, Size FROM C:\*.* ORDER BY Size DESC" -i:FS
7、获得本机登陆帐户的查看LogParser.exe -o:nat "SELECT RESOLVE_SID(Sid) AS Account FROM Security WHERE EventID IN (540; 528)"
8、获得系统日志的分类详细信息LogParser "SELECT DISTINCT SourceName, EventID,SourceName,message INTO Event_*.csv FROM security" -i:EVT -o:CSVLogParser "SELECT DISTINCT SourceName, EventID,SourceName,message INTO Event_*.csv FROM System" -i:EVT -o:CSV根据id分类LogParser "SELECT DISTINCT eventid, EventID,SourceName,message INTO Event_*.csv FROM System" -i:EVT -o:CSVLogParser "SELECT DISTINCT eventid, EventID,SourceName,message INTO Event_*.csv FROM security" -i:EVT -o:CSV
9、生成图形界面日志LogParser "SELECT 'Event ID:', EventID, SYSTEM_TIMESTAMP(),message FROM security" -i:EVT -o:datagrid
10、生成一个Web页面LogParser file:d:\EventLogs.sql?EventLog=security -o:TPL -tpl:d:\EventLogs.tplLogParser file:d:\EventLogs.sql?EventLog=system -o:TPL -tpl:d:\EventLogs.tpl
11、在iis日志里查看返回代码分布饼图LogParser "SELECT sc-status, COUNT(*) AS Times INTO Chart.gif FROM iis.log GROUP BY sc-status ORDER BY Times DESC" -chartType:PieExploded3D -chartTitle:"Status Codes"
12、在所有日志中手机前10位的排名LogParser file:querytop.sql -o:chart -chartType:Bar3d -chartTitle:"TOP 10 URL"
querytop.sql:
SELECT TOP 10 cs-uri-stem AS Url, COUNT(*) AS HitsINTO Urls.gifFROM ex*.logGROUP BY UrlORDER BY Hits DESC
13、检索目录下所有文件的所有的信息logparser "select * into a.csv from c:\x-scan\*.*" -i:fs -o:csv
查看每个源IP发了多少个包LogParser "SELECT srcip ,count(*) into a.csv FROM a.cap group by srcip" -fmode:tcpip -o:csv
查看每个源端口的包的个数LogParser "SELECT srcport ,count(*) into a.csv FROM a.cap group by srcport" -fmode:tcpip -o:csv
归并所有srcip,dstip,srcport一样的包,得到个数LogParser "SELECT srcip,dstip,srcport ,count(*) into a.csv FROM a.cap group by srcip,dstip,srcport" -fmode:tcpip -o:csv
归并所有tcpflags的包LogParser "SELECT srcip,srcport,dstip,dstport,tcpflags,count(*) into a.csv FROM a.cap where tcpflags='AF' group by srcip,srcport,dstip,dstport,tcpflags" -fmode:tcpip -o:csv
tcpflags的分布饼图LogParser "SELECT tcpflags,count(*) into a.gif FROM a.cap group by tcpflags " -fmode:tcpip -chartType:PieExploded3D -chartTitle:"Status Codes"LogParser "SELECT tcpflags,count(*) into a.csv FROM a.cap group by tcpflags " -fmode:tcpip -o:csv

2008年8月20日星期三

加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段. 加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码. 加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东西。软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内存中运行的。通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,保护你的程序数据的完整性。不被修改或者窥视你程序的内幕。加“壳”虽然增加了CPU附带但是减少了硬盘读写时间,实际应用时加“壳”以后程序运行速度更快(当然有的加“壳”以后会变慢,那是选择的加“壳”工具问题)。 一般软件都加“壳”这样不但可以保护自己的软件不被破解、修改还可以增加运行时启动速度。 加“壳”不等于木马,我们平时的绝大多数软件都加了自己的专用“壳”。 RAR和ZIP都是压缩软件不是加“壳”工具,他们解压时是需要进行磁盘读写,“壳”的解压缩是直接在内存中进行的,用RAR或者ZIP压缩一个病毒你试试解压缩时杀毒软件肯定会发现,而用加“壳”手段封装老木马,能发现的杀毒软件就剩不下几个。木马加壳的原理很简单,在黑客营中提供的多数木马中,很多都是经过处理的,而这些处理就是所谓的加壳。大姐说,当一个EXE的程序生成好后,很轻松的就可以利用诸如资源工具和反汇编工具对它进行修改,但如果程序员给EXE程序加一个壳的话,那么至少这个加了壳的EXE程序就不是那么好修改了,如果想修改就必须先脱壳。听雨了解鹿采薇很清楚每一个木马的加壳手段,冰河用ASPack,而灰鸽子则是UPX Shell进行加壳的

2008年8月11日星期一

单元测试之三:边界条件(CORRECT Boundary Conditions)

如何测试哪些边界条件?

代码中许多的bugs都出现在“边界条件”附近,也就是说,在那些条件下,代码的行为可能不同于平常的、每天都能运行到的程序路径。用首字母缩略词“CORRECT”来助记:

一致性(Conformance):值是否符合预期格式(正常的数据),列出所有可能不一致的数据,进行验证。

有序性(Ordering):传入的参数的顺序不同的结果是否下确,对排序算法会产生影响。或者是对类的属性赋值顺序不同会不会产生错误。

区间性(Range):参数的取值范围是否在某个合理的区间范围内。

引用/耦合性(Rerference):程序依赖外部的一些条件是否已满足。前条件:系统必须处于什么状态下,该方法才能运行。后条件:你的方法将会保证哪些状态发生改变。

存在性(Existence):参数是否真的存在,引用为null,string为空,数值为0或者物理介质不存在时,程序是否能正常运行。

基数性(Cardinality):考虑以"0-1-N原则",当数值分别为0,1,N时,可能出现的结果,其中N为最大值。

时间性(Time):相对时间:函数执行的依赖顺序;绝对时间:超时问题;并发问题。