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的進程殺除強大且方便(當然也會有危險)??奢p易將選中的多個任意進程一并殺除。當然,說任意不確切,除去三個: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.hknwbo.live/1153629.html

61閱讀| 精彩專題| 最新文章| 熱門文章| 蘇ICP備13036349號-1

投注网