61阅读

风水基础:正确使用罗盘的方法-DB2 基础:日期和时间的使用

发布时间:2018-03-22 所属栏目:编程

一 : DB2 基础:日期和时间的使用

介绍

这篇短文是为那些刚接触 DB2 并想理解如何操作日期和时间的新手而写的。使用过其它数据库的大部分人都会很惊喜地发现在 DB2 中操作日期和时间是多么简单。

基础

要使用 SQL 获得当前的日期、时间及时间戳记,请参考适当的 DB2 寄存器:

以下为引用的内容:
SELECT current date FROM sysibm.sysdummy1SELECT current time FROM sysibm.sysdummy1SELECT current timestamp FROM sysibm.sysdummy1

sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的 DB2 寄存器的值。您也可以使用关键字 VALUES 来对寄存器或表达式求值。例如,在 DB2 命令行处理器(Command Line Processor,CLP)上,以下 SQL 语句揭示了类似信息:

VALUES current dateVALUES current timeVALUES current timestamp

在余下的示例中,我将只提供函数或表达式,而不再重复 SELECT ... FROM sysibm.sysdummy1或使用 VALUES 子句。

要使当前时间或当前时间戳记调整到 GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器:

current time - current timezonecurrent timestamp - current timezone

给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:

以下为引用的内容:
YEAR (current timestamp)MONTH (current timestamp)DAY (current timestamp)HOUR (current timestamp)MINUTE (current timestamp)SECOND (current timestamp)MICROSECOND (current timestamp)

从时间戳记单独抽取出日期和时间也非常简单:

DATE (current timestamp)TIME (current timestamp)

因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:

current date + 1 YEARcurrent date + 3 YEARS + 2 MONTHS + 15 DAYScurrent time + 5 HOURS - 3 MINUTES + 10 SECONDS

要计算两个日期之间的天数,您可以对日期作减法,如下所示:

days (current date) - days (date('1999-10-22'))

而以下示例描述了如何获得微秒部分归零的当前时间戳记:

CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS

如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。为此,只要使用 CHAR() 函数:

char(current date)char(current time)char(current date + 12 hours)

要将字符串转换成日期或时间值,可以使用:

以下为引用的内容:
TIMESTAMP ('2002-10-20-12.00.00.000000')TIMESTAMP ('2002-10-20 12:00:00')
       DATE ('2002-10-20')       DATE ('10/20/2002')       TIME ('12:00:00')       TIME ('12.00.00')

TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。

警告:

摘自 DB2 UDB V8.1 SQL Cookbook,作者 Graeme Birchall(see http://ourworld.compuserve.com/homepages/Graeme_Birchall).

如果你在日期函数中偶然地遗漏了引号,那将如何呢?结论是函数会工作,但结果会出错:

SELECT DATE(2001-09-22) FROM SYSIBM.SYSDUMMY1;

结果:

======05/24/0006

为什么会产生将近 2000 年的差距呢?当 DATE 函数得到了一个字符串作为输入参数的时候,它会假定这是一个有效的 DB2 日期的表示,并对其进行适当地转换。相反,当输入参数是数字类型时,函数会假定该参数值减 1 等于距离公元第一天(0001-01-01)的天数。在上面的例子中,我们的输入是 2001-09-22,被理解为 (2001-9)-22, 等于 1970 天,于是该函数被理解为 DATE(1970)。

日期函数

有时,您需要知道两个时间戳记之间的时差。为此,DB2 提供了一个名为 TIMESTAMPDIFF() 的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有 30 天。以下示例描述了如何得到两个日期的近似时差:

timestampdiff (<n>, char(timestamp('2002-11-30-00.00.00')-timestamp('2002-11-08-00.00.00')))

对于 <n>,可以使用以下各值来替代,以指出结果的时间单位:

1 = 秒的小数部分

2 = 秒

4 = 分

8 = 时

16 = 天

32 = 周

64 = 月

128 = 季度

256 = 年

当日期很接近时使用 timestampdiff() 比日期相差很大时精确。如果需要进行更精确的计算,可以使用以下方法来确定时差(按秒计):

(DAYS(t1) - DAYS(t2)) * 86400 + (MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2))

为方便起见,还可以对上面的方法创建 SQL 用户定义的函数:

CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP)RETURNS INTRETURN ((DAYS(t1) - DAYS(t2)) * 86400 + (MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2)))@

如果需要确定给定年份是否是闰年,以下是一个很有用的 SQL 函数,您可以创建它来确定给定年份的天数:

以下为引用的内容:
 CREATE FUNCTION daysinyear(yr INT)RETURNS INTRETURN (CASE (mod(yr, 400)) WHEN 0 THEN 366 ELSE         CASE (mod(yr, 4))   WHEN 0 THEN         CASE (mod(yr, 100)) WHEN 0 THEN 365 ELSE 366 END         ELSE 365 END         END)@

最后,以下是一张用于日期操作的内置函数表。它旨在帮助您快速确定可能满足您要求的函数,但未提供完整的参考。有关这些函数的更多信息,请参考 SQL 参考大全。

SQL 日期和时间函数

DAYNAME

返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。

DAYOFWEEK

返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。

DAYOFWEEK_ISO

返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。

DAYOFYEAR

返回参数中一年中的第几天,用范围在 1-366 的整数值表示。

DAYS

返回日期的整数表示。

JULIAN_DAY

返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。

MIDNIGHT_SECONDS

返回午夜和参数中指定的时间值之间的秒数,用范围在 0 到 86400 之间的整数值表示。

MONTHNAME

对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。

TIMESTAMP_ISO

根据日期、时间或时间戳记参数而返回一个时间戳记值。

TIMESTAMP_FORMAT

从已使用字符模板解释的字符串返回时间戳记。

TIMESTAMPDIFF

根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。

TO_CHAR

返回已用字符模板进行格式化的时间戳记的字符表示。TO_CHAR 是 VARCHAR_FORMAT 的同义词。

TO_DATE

从已使用字符模板解释过的字符串返回时间戳记。TO_DATE 是 TIMESTAMP_FORMAT 的同义词。

WEEK

返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。

WEEK_ISO

返回参数中一年的第几周,用范围在 1-53 的整数值表示。

改变日期格式

在日期的表示方面,这也是我经常碰到的一个问题。用于日期的缺省格式由数据库的地区代码决定,该代码在数据库创建的时候被指定。例如,我在创建数据库时使用 territory=US 来定义地区代码,则日期的格式就会像下面的样子:

以下为引用的内容:
values current date
1----------05/30/20031 record(s) selected.

也就是说,日期的格式是 MM/DD/YYYY. 如果想要改变这种格式,你可以通过绑定特定的 DB2 工具包来实现. 其他被支持的日期格式包括:

DEF

使用与地区代码相匹配的日期和时间格式。

EUR

使用欧洲日期和时间的 IBM 标准格式。

ISO

使用国际标准组织(ISO)制订的日期和时间格式。

JIS

使用日本工业标准的日期和时间格式。

LOC

使用与数据库地区代码相匹配的本地日期和时间格式。

USA

使用美国日期和时间的 IBM 标准格式。

在 Windows 环境下,要将缺省的日期和时间格式转化成 ISO 格式(YYYY-MM-DD),执行下列操作:

1、在命令行中,改变当前目录为sqllibbnd。

例如:

在 Windows 环境:c:program filesIBMsqllibbnd

在 UNIX 环境:/home/db2inst1/sqllib/bnd

2、从操作系统的命令行界面中用具有 SYSADM 权限的用户连接到数据库:

db2 connect to DBNAMEdb2 bind @db2ubind.lst datetime ISO blocking all grant public

(在你的实际环境中, 用你的数据库名称和想使用的日期格式分别来替换 DBNAME and ISO。)

现在,你可以看到你的数据库已经使用 ISO 作为日期格式了:

以下为引用的内容:
values current date
1----------2003-05-301 record(s) selected.

定制日期/时间格式

在上面的例子中,我们展示了如何将 DB2 当前的日期格式转化成系统支持的特定格式。但是,如果你想将当前日期格式转化成定制的格式(比如‘yyyymmdd’),那又该如何去做呢?按照我的经验,最好的办法就是编写一个自己定制的格式化函数。

下面是这个 UDF 的代码:

以下为引用的内容:
create function ts_fmt(TS timestamp, fmt varchar(20))returns varchar(50)returnwith tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as(   select   substr( digits (day(TS)),9),   substr( digits (month(TS)),9) ,   rtrim(char(year(TS))) ,   substr( digits (hour(TS)),9),   substr( digits (minute(TS)),9),   substr( digits (second(TS)),9),   rtrim(char(microsecond(TS)))   from sysibm.sysdummy1   )select case fmt   when 'yyyymmdd'       then yyyy || mm || dd   when 'mm/dd/yyyy'       then mm || '/' || dd || '/' || yyyy   when 'yyyy/dd/mm hh:mi:ss'       then yyyy || '/' || mm || '/' || dd || ' ' ||               hh || ':' || mi || ':' || ss   when 'nnnnnn'       then nnnnnn   else       'date format ' || coalesce(fmt,' <null> ') ||        ' not recognized.'   endfrom tmp

乍一看,函数的代码可能显得很复杂,但是在仔细研究之后,你会发现这段代码其实非常简单而且很优雅。最开始,我们使用了一个公共表表达式(CTE)来将一个时间戳记(第一个输入参数)分别剥离为单独的时间元素。然后,我们检查提供的定制格式(第二个输入参数)并将前面剥离出的元素按照该定制格式的要求加以组合。

这个函数还非常灵活。如果要增加另外一种模式,可以很容易地再添加一个 WHEN 子句来处理。在使用过程中,如果用户提供的格式不符合任何在 WHEN 子句中定义的任何一种模式时,函数会返回一个错误信息。

使用方法示例:

values ts_fmt(current timestamp,'yyyymmdd') '20030818'values ts_fmt(current timestamp,'asa') 'date format asa not recognized.'

二 : 冰刃IceSword使用方法 (基础到高级)

冰刃是一款功能强大的杀毒辅助软件,深受很多杀毒高手的青睐,这里我介绍一下冰刃这个软件的简单使用方法,供大家参考。说句实话,我不是高手,不能像高手一样把一些软件运用自如,如有纰漏或者不足,请见谅!
IceSword,也称为冰刀或者冰刃,有些地址简称IS,是USTC的PJF出品的一款系统诊断、清除利器。
用于查探系统中的幕后黑手(木马后门)并作出处理,当然使用它需要用户有一些操作系统的知识 ,它适用于Windows 2000/XP/2003操作系统。


废话少说,进入正题,我先通过以下图片介绍一下冰刃。
说到一个软件,就要先说一下它的运行环境,冰刃这个软件,第一次运行必须在管理员帐户下进行,当一台计算机多个用户,如果管理员用户运行了冰刃,最好重新启动后再交给低权限用户使用计算机,否则低权限用户就可以启动冰刃这个软件。
下载地址:http://mail.ustc.edu.cn/~jfpan/download/IceSword122cn.zip
MD5: 0f6ebc9da1276baf45db9e5f2460284b
其他 >> 冰刃(icesword) V1.22 Final 汉化绿色修正版

冰刃大菜单分为查看、注册表、文件。查看里面又分为很多小部分,我这里只介绍常用的功能,包括进程、内核、启动组、服务,其他项目,我会在最后进行介绍性说明。注册表里面就是一个注册表编辑器,方便使用,而且拥有管理员权限,可以查看、修改、删除注册表项目。文件是一个浏览计算机所有文件的地方,它可以看到任何隐藏的文件,对付无法删除的文件,也可以使用强制删除等特殊方法删除,具体方法下面会有具体介绍。图片上有一些使用方法,但是不具体,下面我就带您一步一步地来用冰刃实现一些固定的操作。我介绍的方法是从简单到难,可能有些您还看不懂,不要紧,慢慢学习,共同进步。

首先,我们看进程这里可以做的事情 字串8

一、显示隐藏进程。 字串3

打开冰刃的进程选项后,里面红色字显示的就是隐藏的进程,这样显示可以方便查找隐藏的后门、木马等 字串4

二、结束进程

点击选中要结束的进程,按Ctrl键可以选择多个项目,然后再点开右键菜单中的“结束进程”,就把选中的项目结束掉了。


三、终止插入的DLL文件 字串7

现在很多木马程序都插入桌面文件explorer.exe下面很多DLL文件,来执行木马所需要的操作,那么对于这些插入的DLL文件怎么办呢,用冰刃就可以解决好这个问题。


打开冰刃后,选中DLL所插入的进程,然后点右键菜单中的“模块信息”,会看到所嵌入进程的所有DLL文件,找到病毒进程,点击卸载即可结束掉这个DLL,如果病毒、木马或者黑客程序比较厉害,可能无法卸载,那么强制卸载就

起了作用,一般的DLL包括系统DLL都可以强制卸载掉,所以慎用这个功能。


四、其他功能 字串8

进程里面还有某些其他功能,比如强制结束线程,包括右键菜单中还有线程信息、内存读写等,这些对我们的杀毒工作用处不大,所以不进行具体介绍了。 字串9

其次,我们看内核的使用方法



内核程序是通过C:\windows\system32\ntkrnlpa.exe等程序启动,基本上是C:\windows\system32\drivers\下的sys文件,当然也有少部分C:\windows\system32\目录下的sys文件,仅有很少的几个dll文件,我计算机有3个。冰刃中的内核模块只能察看简单的内核信息,靠知识去分析正常和不正常的内核。 字串7

第三,我们看启动组



这里和内核程序一样,只能查看,无法作任何处理。这个启动组里面只显示几个地方的启动项目,非常不全面,我了解得是以下项目: 字串1

注册表中,仅包括HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run两个项目,文件夹包括C:\Documents and Settings\您所使用的用户名称\「开始」菜单\程序\启动和C:\Documents and Settings\All Users\「开始」菜单\程序\启动 字串7

等我的下一个文章的更新后,就知道这个启动组是多么的不全面了。


第四,我们看服务 字串7

一、显示隐藏服务



服务中可以显示隐藏服务,用红色表示,和进程一样 字串6

二、修改服务的当前状态(启动、停止等) 字串8

打开服务,选中要进行操作的服务,按Ctrl键可以选择多个项目,在右键菜单里面选择要作的操作,比如停止、启动、暂停、恢复。这里面要注意一个问题,就是系统的关键服务是不能停止的,否则系统会自动重新启动计算机。这个仅修改当前状态,而重新启动计算机后,如果服务的启动类型是自动,还会启动该服务。 字串9

三、修改服务的启动类型(禁用、自动、手动)


打开服务,选中要进行操作的服务,按Ctrl键可以选择多个项目,在右键菜单里面选择要作的操作,比如禁用、自动、手动。这个修改的是启动类型,所以修改后,不可能修改当前状态。


第五,我们看注册表

冰刃对注册表有非常高的权限,可以看到某些系统注册表编辑器中不可见的项目,所以在进行操作的时候要有十足把握,不要因为错删、错改某些系统关键项目,使计算机系统崩溃。



一、查找项



按照图六中“+”“-”符号的说明,点击“+”可以快速在左边查找到对应的项目,选中即可在右面查看该项下面的键值

二、删除项

在左面选中要删除的项,在右键菜单中选择“删除”,即可。


三、新建项 字

串8

选择要新建项的位置,然后在左面右键菜单中的新建下选择“项”,即可弹出新建项的对话框,输入名称,点确定即可。



四、修改键值

通过查找项,找到要修改的键,双击此键,即可打开修改键值的对话框,输入要修改的名字或者清空,点确定即可。


一、删除键



通过查找项,找到要删除的键,按Ctrl键可以选择多个项目,然后在右面窗口中的右键菜单中选择“删除所选”即可。 字串8

二、新建键 字串3

通过查找项,找到要新建键的项,选中此项,在左面窗口中的右键菜单中的新建下选择建立哪种类型的键,会弹出建立键的对话框,输入键名称和键值即可。 字串5

三、关于类型


冰刃新建键值给了3种类型——字符串值、二进制值、双字,这个在建立键的时候,按照需要选择,下面我说的是如何看一个键值是什么类型,在冰刃右面显示具体键的地方有类型,它显示了此键是什么类型。REG_SZ是字符串,BEG_BINARY是二进制,REG_DWORD是双字,除了这三项,还有其他类型,不经常使用,这里不列出了。



字串3

四、通过注册表删除启动项 字串1

查找列到固定的启动项,在SRE中都显示了每一个注册表启动项的具体位置,我也可能会写一篇关于启动项目的文章,那时候就可以查看了。找到位置后,删除不需要的键值即可。


五、通过注册表清理服务和驱动项目

在冰刃里面没有给删除服务和驱动项目的地方,对于服务,我们可以禁用,对于驱动,冰刃没有给具体方法,我们可以通过删除存放服务和驱动的注册表值,来删除服务和驱动。存放服务的注册表项是HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\里面每一个项都代表一个服务,这两个项之间有一一对应关系,删除时候请完全删除服务或驱动所对应的项即可。

第六,我们看文件 字串3

一、查找冰刃的文件夹


按照图七中“+”“-”符号的说明,点击“+”可以快速在左边查找到对应的文件夹,选中即可在右面查看该文件夹下面的文件了



二、删除文件夹


在冰刃左面选择“文件”,按照上面的方法,选择要删除的文件夹,在右键菜单中选择“删除”即可,但是这个文件夹还在冰刃中显示,你只要把上一级文件夹的“-”收一下,再展看,就可以看到文件夹已经删除。如果删除不了,请选择右键菜单中的“强制删除”。



三、删除文件


在冰刃左面选择“文件”,按照上面的方法,选中要删除的文件所在的文件夹,找到要删除的文件。找文件也有窍门,如果知道日期,你可以按照日期排列,然后再找对应

文件,如果只知道文件名,按照文件名排列后,按所找文件的首字母,可以加快查找速度。

找到文件后,选中文件,然后在右键菜单中选择“删除”,如果删除不了,选择“强制删除”即可,如果此两种方法删除不了文件,那么就看看第四项。

四、处理顽固的病毒文件(暂时没有试验可用性)



文件经过冰刃的“删除”和“强制删除”都没有办法删除,可以试下面的方法,我不知道可行性,因为没有病毒样本,只能介绍给大家,自己试验了。方法如下:

在一个目录建立一个与病毒同名的文件,包括扩展名,复制到病毒位置。举个例子,比如你不能删除的文件是c:\windows\system32\下的1.sys,那么你可以在c:\建立一个记事本文件,里面随便打两个字母,保证文件大小不为0KB,修改其名称为1.sys,然后打开冰刃,选中新建立的c:\1.sys,在右键菜单中选择“复制”,然后打开复制对话框,选择病毒所在目录——c:\windows\system32\,然后输入文件名——1.sys,点复制,就可以了。


经过试验,此方法无效,对付这种顽固病毒文件看来还需要更好的利器。 此方法没有实践过,不知道是否成功。 字串9

最后,我们了解菜单栏所有功能



一、禁止插入新进程 字串2

点菜单栏中文件下面的“设置”,打开设置对话框,在“禁止进线程创建”前面打上对勾即可。这样计算机就无法建立任何进程。


写到这里,冰刃的基本用法也就介绍得差不多了,其他高级内容,请看高级篇,你会了解更多关于冰刃这款软件的使用方法,具体讲述终止插入的DLL文件、病毒处理流程、创建进程规则等等冰刃的一些高级知识。


冰刃IceSword的使用方法(高级篇)
本来打算尽快更新这个东西,让大家学习更多知识,但是作业好多好多,我快忙不过来了。这次就来更新这个文章。此文章分为几个部分,我慢慢写,大家慢慢看。
第一部分:冰刃杀毒流程。
在基础篇里面,我向大家介绍了有关所有冰刃的基础使用方法,那么怎么用冰刃来杀毒呢?这个写一下大概的流程。
第一步:禁止运行进程。打开所有需要的软件和文件夹后,可以通过菜单里面禁止进线程建立,具体方法看基础篇,里面有详细介绍。
第二步:结束病毒进程。结束所有与病毒有关的进程,还要结束某些与系统进程无关的进程,可能包括一些额外的应用程序,包括桌面文件等等。这个为了保持病毒不会因为某些进程而重新被调用。
第三步:处理启动项目,处理服务、注册表等启动项目,分别在冰刃查看——服务、注册表、文件中处理。具体方法可以看基础篇。
第四步:删除病毒文件。

删除所有可能的病毒进程,当然如果要备份,可以利用冰刃的复制功能,把病毒副本复制出来。如果复制病毒样本,需要一些技术,因为很多病毒如果处理不当,在重新启动后还会恢复回来。
第五步:重新启动计算机,你可以利用冰刃的重启并监视这个功能,我会下面的部分介绍。也可以利用计算机系统的重新启动功能,但是要把禁止进程建立的对勾去掉,并且在运行冰刃的前提下重新启动。这一步的目的为了防止某些潜入式DLL潜入到系统进程中作乱,而且无法删除。比如潜入到Winlogon中的DLL用基础篇里面的方法可能会出现蓝屏。
第六步:做进一步检查,检查文件删除情况,注册表删除情况。
第七步:检查应用程序。很多病毒会修改应用程序,达到保护自己的目的,比如:盗取QQ的软件,会修改QQ.exe,当运行QQ软件的时候病毒会重新被加载,所以要通过冰刃的线程监控,还有文件进行进一步的监控。
第八步:处理可疑文件。在以上所有步骤过程中,一般都会出现一些不认识的或者不知道的程序,对这些程序我们做的就是最后处理,重点在于分析这些程序到底有无用处。到底是什么软件释放的,或者病毒释放的。这个一般要高手才能进行。
最后一步:特别处理,重点处理病毒修改的系统设置,比如隐藏文件的设置、HOST文件的修改、主页等IE项目的修改、文件关联的修改等等。这些修改一般都要等杀毒结束后进行。
这个杀毒过程只是最基本的,和我自己给人解决问题时候套用的一个格式有一些关系。看过这个以后,对于我的删除方法会有一定了解
第二部分:删除顽固病毒文件
这一部分在基础篇中提到,但是当时我没有测试,小聪给我的结果让我很惊讶,怎么会不能成功,我就想了想做进一步的实验。此实验在虚拟机下进行,如果没有虚拟机请不要模仿。
因为我没有释放顽固病毒的样本,只能运用计算机系统中最基础的文件,考虑到非常难删除的病毒文件都是SYS文件,我选择了C:\WINDOWS\system32\drivers\acpi.sys文件进行进一步测试,这个文件是系统基础文件,不要轻易删除。
此文件很像某些病毒,删除它还会重新生成一个新的文件,我们就用它来进行新的测试。第一次测试是在正常模式下,在c:\建立一个名称为acpi.sys的文件,并设置了只读、系统、隐藏三个属性,用冰刃强制删除此文件,再以最快速度考入,观察,确实可以达到2分钟的目的,也就是说2分钟后系统会自动把此文件修改会上面的样子,并且大小相同。第二次测试是根据基础篇叙述禁止了进线程创建(方法详见基础篇最后部分的一)的模式下进行,利用冰刃可以删除文

件,并且保证在此模式的前提条件下并不被删除,也不会被覆盖,但是当模式改变,就会被快速替换。猜想,测试到此发现,顽固病毒文件冰刃删除不了,但是它真的无能为力,我觉得不会,禁止进线程建立只是禁止了全部的进线程建立,那么我们可不可以用冰刃禁止一部分呢?等待我们的是进一步测试,如果成功,那么冰刃也可以删除顽固文件了。
第三部分 冰刃的运行原理
在这一部分,我主要讲的是为什么冰刃可以检查隐藏进程、可以那么强大。我们现在知道,有很多免费软件都可以进行进程、端口、注册表的检查,但是为什么冰刃的功能会比其他软件好呢?下面就看看以下回答吧。 字串6

第一,绝大多数所谓的进程工具都是利用Windows的Toolhlp32或者psapi再或者ZwQuerySystemInformation系统调用来编写的,随便一个ApiHook就可以轻松的干掉它们了,更不用说那些内核级别的后门了。此外还有极少数工具利用内核线程调度结构来查询进程,这种方案需要硬编码,这不仅因不同版本的系统而各异,而且打个补丁也可能需要升级程序,并且现在还有人提出过防止此种查找的方法。而IceSword的进程查找核心态方案是目前比较特殊的,并且充分考虑到内核后面可能的隐藏手段,可以查到目前大部分隐藏进程。 字串2

第二,绝大多数工具查找进程路径名也通过Toolhlp32和psapi,前者会调用RtlDebug函数向目标注入远线程,后者会调用api读取目标进程内存,其本质上都是对PEB的枚举,因此,通过修改PEB就可以轻易让这些工具失灵。而IceSword的核心态方案采用全路径展示,运行时剪切到的其他路径也会显示出来。

第三,进程dll模块与前一种情况一样,利用PEB的其他工具会被轻易欺骗,而IceSword不会弄错,如果系统不支持,这时候会采用枚举PEB。

第四,IceSword的进程杀除功能强大且方便,可轻易将选中的多个进程一并杀除,其中包括系统进程(除idle进程、System进程、csrss进程),此时系统可能会出现蓝屏、重启等状况。


注:以上内容参考《计算机病毒分析与防范大全》278页

根据以上叙述,我们可以看出,一般病毒不会轻易结束掉冰刃的进程,但是某些病毒为了保护自己,根据进程名称结束了冰刃,这时只要修改冰刃主程序(IceSword.exe)的名称就可以了。 字串5

根据某期《黑客防线》的介绍,好像有一种方法可以对付冰刃,彻底结束冰刃。

以上只是简单说明了以下冰刃的原理,它的显示进程的算法与其他软件不同,所以可以很好的结束大部分进程。这个也是为什么第一次运行冰刃需要管理员帐户的原因之一。


冰刃在启动的时候会加载很

复杂的东西,其中包括一些dll文件和系统驱动文件,这些也必须需要管理员账户,并且开启某个特定的服务才能启动。所以冰刃第一次在普通用户组或者安全模式下是无法启动的,显示如图二的提示框。

第四部分 冰刃对DLL文件的处理


没有找到类似病毒,我在测试病毒的时候如果有雷同就可以对这一部分进行更新。



第五部分 菜单高级应用
在基础篇中,我讲了如何应用菜单的设置,禁止进程或者线程的建立,我们现在看看其他菜单项目的应用。在文件下拉菜单中,有设置、重启并监视、创建进程规则、创建线程规则等几个项目


在对软件做讲解之前,首先说明第一注意事项:此程序运行时不可激活内核调试器(如softice),否则系统即刻崩溃。另外使用前请保存好您的数据,以防万一未知的Bug带来损失。

IceSword内部功能是十分强大的。可能您也用过很多类似功能的软件,比如一些进程工具、端口工具,但是现在的系统级后门功能越来越强,一般都可轻而 易举地隐藏进程、端口、注册表、文件信息,一般的工具根本无法发现这些“幕后黑手”。IceSwo rd使用大量新颖的内核技术,使得这些后门躲无所躲。

IceSword FAQ 进程、端口、服务篇

问:现在进程端口工具很多,什么要使用IceSword?
答:1、绝大多数所谓的进程工具都是利用Windows的Toolhlp32或psapi再或ZwQuerySystemInformation 系统调用(前二者最终也用到此调用)编写,随便一个ApiHook就可轻轻松松干掉它们,更不用说一些内核级 后门了;极少数工具利用内核线程调度结构来查询进程,这种方案需要硬编码,不仅不同版本系统不同,打个补丁也可能需要升级程序,并且现在有人也提出过防止 此种查找的方法。而IceSword的进程查找核心态方案是目前独一无二,并且充分考虑内核后门可能的隐藏手段,目前可以查出所有隐藏进程。

2、绝大多数工具查找进程路径名也是通过Toolhlp32、psapi,前者会调用RtlDebug***函数向目标注入远线程,后者会用调试 api读取目标进程内,本质上都是对PEB的枚举,前面我的blog提到过轻易修改PEB就让这些工具找不到 北了。而IceSword的核心态方案原原本本地将全路径展示,就算运行时剪切到其他路径也会随之显示。

3、进程dll模块与2的情况也是一样,利用PEB的其他工具会被轻易欺骗,而IceSword不会弄错。

4、IceSword的进程杀除强大且方便(当然也会有危险)。可轻易将选中的多个任意进程一并杀除。当然,说任意不确切,除去三个:idle进 程、System进程、csrss进程,原因就不详述了。其余进程可轻易杀死,当然有些进程(如winlogon)杀掉后系统就

崩溃了。

5、对于端口工具,网上的确有很多,不过网上隐藏端口的方法也很多,那些方法对IceSword可是完全行不通的。其实本想带个防火墙动态查找,不过不想弄得太臃肿。

问:windows自带的服务工具强大且方便,IceSowrd有什么更好的特点呢?
答:因为比较懒,界面使用上的确没它来的好,不过IceSword的服务功能主要是查看木马服务的,使用还是很方便的。举个例子,顺便谈一类木马 的查找:有一种利用svchost的木马,怎么利用的呢?svchost是一些共享进程服务的宿主,有些木马就以dll存在,依*svchost运作,如 何找出它们呢?首先看进程一栏,发现svchost过多,特别注意一下pid较大的,记住它们的pid,到服务一栏,就可找到pid对应的服务项,配合注 册表查看它的dll文件路径(由服务项的第一栏所列名称到注册表的services子键下找对应名称的子键),根据它是不是惯常的服务项,很容易发现异 常。剩下的工作就是停止任务或结束进程、删除文件、恢复注册表 之类的了,当然过程中需要你对服务有一般的知识。

问:那么什么样的木马后门才会隐藏进程注册表文件的?用IceSword又如何查找呢?
答:比如近来很流行且开源(容易出变种)的hxdef就是这么一个后门。虽然它带有一个驱动,不过还只能算一个系统级后门,还称不上内核级。不过 就这样的一个后门,你用一些工具,***专家、***大师、***克星看看,能不能看到它的进程、注册项、服务 以及目录文件,呵呵。用IceSword就很方便了,你直接就可在进程栏看到红色显示的hxdef100进程,同时也可以在服务栏中看到红色显示的服务 项,顺便一说,在注册表和文件栏里你都可发现它们,若木马正在反向连接,你在端口栏也可看到,另外,内核 模块中也可以看到它的驱动。杀除它么,首先由进程栏得后门程序全路径,结束进程,将后门目录删除,删除注册表中的服务对应项...这里只是选一个简单例 子,请你自行学习如何有效利用IceSword吧。

问:“内核模块”是什么?
答:加载到系统内和空间的PE模块,主要是驱动程序*.sys,一般核心态后们作为核心驱动存在,比如说某种rootkit加载_root_.sys,前面提到的hxdef也加载了hxdefdrv.sys,你可以在此栏中看到。

问:“SPI”与“BHO”又是什么?
答:SPI栏列举出系统中的网络服务提供者,因为它有可能被用来做无进程木马,注意“DLL路径”,正常系统只有两个不同DLL(当然协议比较多)。BHO是IE的插件,全名Browser Help Objects,木马以这种形式存在的话,用户打开网页即会激活木马。

问:“SSDT”有何用?
答:内核级后门有可能修改这个服务

表,以截获你系统的服务函数调用,特别是一些老的rootkit,像上面提到的ntrootkit通过这种hook实现注册表、文件的隐藏。被修改的值以红色显示,当然有些安全程序也会修改,比如regmon,所以不要见 到红色就慌张。

问:“消息钩子”与木马有什么关系?
答:若在dll中使用SetWindowsHookEx设置一全局钩子,系统会将其加载入使用user32的进程中,因而它也可被利用为无进程木马的进程注入手段。

问:最后两个监视项有什么用处?
答:“监视进线程创建”将IceSword运行期间的进线程创建调用记录在循环缓冲里,“监视进程终止”记录一个进程被其它进程 Terminate的情况。举例说明作用:一个木马或病毒进程运行起来时查看有没有杀毒程序如norton的进程,有则杀之,若 IceSword正在运行,这个操作就被记录下来,你可以查到是哪个进程做的事,因而可以发现木马或病毒进程并结束之。再如:一个木马或病毒采用多线程保 护技术,你发现一个异常进程后结束了,一会儿它又起来了,你可用IceSword发现是什么线程又创建 了这个进程,把它们一并杀除。中途可能会用到“设置”菜单项:在设置对话框中选中“禁止进线程创建”,此时系统不能创建进程或者线程,你安稳的杀除可疑进 线程后,再取消禁止就可以了。

问:IceSword的注册表项有什么特点?相对来说,RegEdit有什么不足吗?
答:说起Regedit的不足就太多了,比如它的名称长度限制,建一个名长300字节的子项看看(编程或用其他工具,比如regedt32),此 项和位于它后面的子键在regedit中显示不出来;再如有意用程序建立的有特殊字符的子键regedit根本 打不开。当然IceSword中添加注册表编辑并不是为了解决上面的问题,因为已经有了很多很好的工具可以代替Regedit。IceSword中的“注 册表”项是为了查找被木马后门隐藏的注册项而写的,它不受目前任何注册表隐藏手法的蒙蔽,真正可*的让你看到注 册表实际内容。

问:那么文件项又有什么特点呢?
答:同样,具备反隐藏、反保护的功能。当然就有一些副作用,文件保护工具(移走文件和文件加密类除外)在它面前就无效,如果你的机器与人共用,那 么不希望别人看到的文件就采用加密处理吧,以前的文件保护(防读或隐藏)是没有用的。还有对安全的副作用是本来 system32\config\SAM等文件是不能拷贝也不能打开的,但IceSword是可以直接拷贝的。不过只有管理员能运行IceSword。最 后说一个小技巧:用复制来改写文件。对一个被非共享打开的文件、或一个正运行的程序文件(比如木马), 你想改掉它的内容(比如想向木马程序文件写入垃圾

数据使它重启后无法运行),那么请选中一个文件(内含你想修改的内容),选“复制”菜单,将目标文件栏中 添上你欲修改掉的文件(木马)路径名,确定后前者的内容就写入后者(木马)从头开始的位置。最后提醒一句:每次开机IceSword只第一次运行确认管理 员权限,所以管理员运行程序后,如果要交付机器给低权限用户使用,应该先重启机器,否则可能为低权限用户利用。

问:GDT/IDT的转储文件里有什么内容?
答:GDT.log内保存有系统全局描述符表的内容,IDT.log则包含中断描述符表的内容。如果有后门程序修改它,建立了调用门或中断门,很容易被发现。

问:转储列表是什么意思?
答:即将显示在当前列表视中的部分内容存入指定文件,比如转储系统内所有进程,放入网上请人帮忙诊断。不过意义不大,IceSword编写前已假定使用者有一定安全知识,可能不需要这类功能。

为了您的安全,请只打开来源可靠的网址
打开网站 取消
来自:

三 : TotoiseSVN的基本使用方法

[svn 使用]TotoiseSVN的基本使用方法——简介
工欲善其事,必先利其器【BasicTools】中,我已经讲解了怎样安装TortoiseSVN。在上面的讲解中已经讲了怎么使用VisualSVNServer了,今天我要讲的是,TortoiseSVN的简单使用方法。
[svn 使用]TotoiseSVN的基本使用方法——知识点
TotoiseSVN[svn 使用]TotoiseSVN的基本使用方法——详细知识

[svn 使用]TotoiseSVN的基本使用方法 一
签出源代码到本机
在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体:

[svn 使用]TotoiseSVN的基本使用方法 二
在上图中URLofRepository:下的文本框中输入svnserver中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
说明:上图中的CheckoutDepth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入
http://zt.net.henu.edu.cn/svn/StartKit/
这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。
搞定!源代码已经成功签出到刚才新建的StartKit目录中。
打开StartKit目录,可以看到如下图的文件夹结构:

[svn 使用]TotoiseSVN的基本使用方法 三
一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中我修改了其中的二个文件:

[svn 使用]TotoiseSVN的基本使用方法 四
大家看一下不同状态所对应的图片:

[svn 使用]TotoiseSVN的基本使用方法 五
我们已经知道怎么将源代码签入到SVN服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。

[svn 使用]TotoiseSVN的基本使用方法 六
签入(导入)源代码到SVN服务器
假如我们使用VisualStudio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到SVNServer上的代码库中里,首先右键点击StartKit文件夹,这时候的右键菜单如下图所示:

[svn 使用]TotoiseSVN的基本使用方法 七
点击Import,弹出下面的窗体,其中http://zt.net.henu.edu.cn是服务器名,svn是代码仓库的根目录,StartKit是我们在上个教程中添加的一个代码库。
说明:左下角的CheckBox,在第一次签入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。

[svn 使用]TotoiseSVN的基本使用方法 八
https://192.168.1.XX/svn/class53devp/
点击OK按钮,会弹出下面的窗体,要求输入凭据:

[svn 使用]TotoiseSVN的基本使用方法 九
在上面的窗体中输入用户名和密码,点击OK按钮:

[svn 使用]TotoiseSVN的基本使用方法 十
如上图所示,好了,源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。

注意!不要到桌面上面进行import,会把桌面上所有项都会导入进去,而且不知道到那。

[svn 使用]TotoiseSVN的基本使用方法 1一
提交修改过的文件到SVN服务器
上面的图2-2-7中,我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。
注意:提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVNCommit…弹出下面的窗体:

[svn 使用]TotoiseSVN的基本使用方法 1二
点击OK按钮后,弹出如下图的窗体:

[svn 使用]TotoiseSVN的基本使用方法 1三
添加新文件到SVN服务器
我们在Model文件下添加一个新的类文件UserInfo.cs,在Model文件下的空白处点击右键,点击SVNCommit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=>>Add,弹出如下图的窗体:

[svn 使用]TotoiseSVN的基本使用方法 1四
选中UserInfo.cs文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为修改状态。之后,我们要再SVNCommit这个文件一次,才可以将其真正提交到SVN服务器上

[svn 使用]TotoiseSVN的基本使用方法 1五
的代码库中。
上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。

[svn 使用]TotoiseSVN的基本使用方法 1六
更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVNUpdate,就可以了。
注意:更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【GetLock】而失败,这是需要先解锁【ReleaseLock】。
重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVNCommit提交到SVN服务器后才真正重命名。
删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVNCommit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVNCommit提交到SVN服务器后才真正删除。
说明:实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。

注意此delect是服务器上面的配置项,而右键删除的是本地文件,不会影响到服务器,只是你现在电脑里面删除了;

[svn 使用]TotoiseSVN的基本使用方法 1七
变更svn服务器地址:
经常SVN服务器地址变更了,为了不需要重新checkout,只需要变更服务器地址即可:

[svn 使用]TotoiseSVN的基本使用方法 1八
操作时候的注意事项:
A.在修改之前,建议先update操作再进行mod的commit操作,省的覆盖前面在你mod之前的操作;
B、在rmv操作之前,先确定是否本机数据,还是的确要删除service端数据,删除提交commit才是正式删除服务端数据;

以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。

另外说明下SVN服务端和客户端组网:也可以算是B/S结构,但是B结构只能查看,不能修改;

1、客户端可以checkin、checkout,delect等操作配置,配置项,一般操作都在客户端完成;
2、服务端只能规划配置库大概的结构,而且不能做打开,编辑配置配置项操作,而且服务器端机器上也直接查找不到对应的配置文件,这个是出于安全考虑加密了;所以所有操作到客户端完成;



[svn 使用]TotoiseSVN的基本使用方法——注意事项
注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。 一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧!

四 : 电暖风机的正确使用方法你了解多少

电暖风机的使用方法

1、首先连接到插座, (5-22KW暖风机需要3相380-400V电压

2、将暖风机竖直放置在表面坚固的地方,要远离潮湿的环境和易燃物品。

3、接通电源.

4、将温控调节器旋至MAX(最大),让暖风机满功率运行。

5、将档位功率开关调至所需档位后,暖风机会按所设定功率运行。

6、一旦房间温度达到所要求的,加热元件将停止工作,但风扇会继续工作,一旦气温下降,加热元件会继续加热。

7、暖风机会自动启动,停止,从而保持室内温度的恒定。

8、在关闭加热器之前,将温控调节器调至MIN关闭,将档位开关调至风扇或者O关闭,暖风机会在2分钟内冷却下来。

9、风扇延时温控功能:如果关闭暖风机之前忘记将温控调节器旋至OFF位置,当出风口网罩将近50℃时,延时温控将继续运行直到温度降至40℃,此功能将加快冷却,延长使用寿命。

10、使用过后,首先关闭暖风机开关,然后拔出插头电源线。

11、当暖风机过热或宜昌操作和温控失灵时,非自动复位温控将启动,会关闭暖风机。 拔下插头等暖风机冷却后,用探针对准RESET复位孔往里按,当听到滴答声响后表示电路复位,然后插上插头,打开暖风机开关,机器将恢复正常运行。

本文标题:风水基础:正确使用罗盘的方法-DB2 基础:日期和时间的使用
本文地址: http://www.61k.com/1153629.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1