2007年11月30日 星期五

USB病毒的演化(Evolution of USB-Virus)

 

 

USB病毒的演化(Evolution of USB-Virus)

最近不知是怎了,病毒又開始在筆者上班的地方大流行,還成是另一種對我的考驗呢?雖然電腦中毒時,第一時間一定是罵寫病毒的人,可是...

在我的觀點裡,縱使撰寫跟散布病毒的人居心叵測,但是使用電腦的人就真的沒錯嗎?在幫人解毒的時候,總是聽著中毒的人說:「那些寫病毒的人真可惡...」。

在我們這種缺少工具與執行面受阻的管理者聽來,讓電腦中毒的人可能比寫病毒的人更令人頭疼,只要跟我一樣有過類似經驗的人就能體會。

最近的病毒其實大多還是跟使用者習慣有關,還記得先前我們曾提過的隨身碟病毒,結果在不久的現在,它又已經有了新的變種病毒「kavo」系列的病毒(請愛用Google),它就是結合了隨身碟病毒系統型病毒(更改登錄檔)的變形。

我們可以知道它的傳染途徑跟隨身碟病毒一樣,那同事為什麼會中毒呢?

應該也不需要說破這一點了,不過對於當救火隊的我們,卻又要東翻西找把病毒給清除,運氣好的,三兩下就可以搞定,運氣不好碰到新的變種,除了網路上相關的資料少的可憐之外,甚至連防毒軟體都不太認得它是什麼,頂多是「惡意程式」,也只能做到隔離的動作而已。

現在回到正題,這隻討人厭的病毒應該要怎麼處理呢?

解決方式:

可以從兩個角度切入,一個是autorun.inf的清除,另個就是解除kavo被系統鎖定無法刪除的執行檔(*.exe)、關聯檔(*.dll)、或類似名稱檔(kavo*.*)。

以下是筆者自己用手動方式處理+掃毒相關程式的處理流程,其實可以參考我先前寫過的手動移除病毒一文,因為病毒大多還是逃不出這些範疇,所以我也只寫出大概的處理流程,其它就可以利用現有的軟體處理。

(1)處理autorun.inf和其它相關檔案。(命令提示字元下,手動刪除)

(2)利用相關程式找到問題檔案(例:HijackthisSREng...比對問題檔案)

  1.在C:\WINDOWS\system32\下,有kavo.exe、kavo0.dll相關類似名。
  2.在系統磁碟中會產生ntdelect.com的檔案。

(3)修復相關登錄檔:(以Hijackthis、SREng修複),相關路徑如下,會因變種不同躲在不同的地方,要先修改後,才有辦法解除系統鎖定(或利用程式強迫解除鎖定)


  HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  ...略

(4)更新病毒碼,重新開機,F8進入安全模式,手動刪除目標檔案。

其實在第(3)步移除登錄檔後,不管是一般或安全模式都殺的掉,安全模式只是避免其它問題的影響,而且還可以做個系統掃描,說不定還會掃到其它的問題。

經過筆者在網路上找資料的結果,其實已經有人譔寫出小程式可以手動清除它(書維的部落格:將kavo.exe病毒完整消滅?簡單又快速的方法)。

經過了這一陣子的折磨...,讓我更有種想要把USB Port封掉的想法,這樣子應該會哀鴻遍野吧!這就是安全性便利互相牴觸的最好實例呀!

如何自製檔案救援隨身碟?

 

如何自製檔案救援隨身碟?
 雖然還原磁碟檔案的軟體體積都不大,不過每到一台電腦要安裝一次也很麻煩,能不能推薦一些免安裝,可以隨身帶著走的檔案救援軟體?真的要使用的時候,便利性會高一點。
【文╱張繼聖】

雖然還原磁碟檔案的軟體體積都不大,不過每到一台電腦要安裝一次也很麻煩,能不能推薦一些免安裝,可以隨身帶著走的檔案救援軟體?真的要使用的時候,便利性會高一點。

使用者不可能一年到頭都發生「不小心」誤刪檔案的情況,所以檔案救援這一類的工具,往往在一年裡頭你可能只會用到一兩次,但需要的時候總是找得焦頭爛額。所以,尋找一些檔案修復的綠色軟體,安裝在隨身碟上作為急救工具包,需要用的時候再將隨身碟插進電腦使用,還可以機動地幫朋友解決問題,是比較方便的作法。

在此我們找了兩套檔案救援的綠色軟體:「Restoration」以及「SoftPerfect File Recovery」,都是可以放在隨身碟內直接使用的。兩者都支援主流的檔案系統,像是FAT12、FAT16、FAT32、NTFS,以及NTFS5等。而且這兩個軟體都有支援隨身儲存裝置的救援功能,但救援的程式最好不要放置在被救援的硬碟上,所以如果遇到這種情況,最好將程式複製到硬碟中再來使用。

Soft Info:

軟體名稱:Restoration
軟體性質:免費軟體
檔案大小:413kB
作業系統:Windows 98/2000/XP
下載網址:www.snapfiles.com/get/restoration.html

軟體名稱:SoftPerfect File Recovery
軟體性質:免費軟體
檔案大小:248kB
作業系統:Windows 98/2000/XP
下載網址:www.softperfect.com

2007年10月29日 星期一

Fw: 肝硬化,居然有救( 多多轉寄)--有效的請分享經驗

 
 

肝硬化,居然有救( 多多轉寄)

【無價至寶】新奇的新鮮果汁
 
日本禪宗高僧富澤知芳大師,提個馬鈴薯鮮汁療法,有顯著的神奇藥效。
馬鈴薯、紅蘿蔔、蘋果三合一鮮汁 的功效:
一、 防治癌症,抑制癌細胞生長
二、 防治肝臟病、腎臟病、胰臟病、胃潰瘍。
三、 防治非典型肺炎、心臟病、高血壓。
四、 恢復體力,增強體質,提高免疫和自癒能力。
五、 恢復眼睛疲勝,消除眼睛乾燥,令雙眼亮麗。
六、 治癒腰痛、肩膀痛、膝痛。
七、 排除體內毒素,美容顏潤皮膚、治肥胖。
八、 根治便秘,痔瘡,根治口臭、胃酸、減低月經痛。

特點:
沒有任何副作用,高營養健康食品,迅速吸收和排毒,令食慾增加,補氣恢復體力。
材料:
新鮮馬鈴薯(即薯仔)、紅蘿蔔、蘋果各一個。
每個各重約 150 200
榨汁,即榨即飲,切勿存放。
 
注意:
馬鈴薯發芽處要切除,以免中毒。新鮮果汁宜清晨空腹飲用。

重症患者,每天下午五時空腹時再飲一次。飲用後約一小時才可以進食早、晚餐,以免胃液被稀釋,影響消化力。必須天天飲用不間斷,輕症三週見效。重症三個月見效。

有效病例:
一、二十年口臭頑疾根治
先生四十五歲,二十年來口異臭,給社交帶來極大煩惱,中西醫治療無效,去年經親友熱心推介服用新鮮果汁,當時半信半疑試一試,每天清早空腹飲五百 c.c. ,二個月後口臭完全清除,人變得自信了,新鮮果汁的神奇功效令他佩服,喜不自禁 地再三感謝向他推介的親友,解除了他二十年來的苦惱。

二、 肺癌得以控制
丁 先生耳下生一個腫瘤,被診斷是末期癌細胞,用放射療法之後,癌細胞轉移到肺部,成為肺癌,被宣告已經是到了無法治療的階段。 丁 先生以積極的態度,回到家裡實行鮮汁療法。目前已經控制住癌細胞的蔓延,體力漸漸恢復,而且幾乎可以回到工作崗位。

三、 肝炎、花粉症、濕疹
須 女士六十八歲,患慢性肝炎、花粉症、濕疹。醫生分析,肝炎惡化,會使食道、胃腸易患癌症。 須 女士的父親、叔父、叔母和姐姐都因癌症而去世,她很擔心自己也會得癌症。承以當她看到馬鈴薯鮮汁對治療癌症有效的文章之後,就毫不猶豫隨即把馬鈴薯配合蘋果一起榨成鮮果汁,如此更可口易喝,她把鮮汁視為「生命之水」,一回氣就全部喝完了。不久,奇蹟出現,二個月後檢查:病情穩定」。四個月後檢查:「接近正常」。
 
除了肝炎顯著改善之外,還有二件值得慶幸的意外收穫:
第一:她長年受花粉症的困擾,今年春天沒有出現這種症狀。
第二:以往手腳一吹到冷風,就會出現紅疹,非常痕癢,又稱濕疹。今年卻一次也沒有。這都是飲馬鈴薯鮮汁的功效,體質獲得改善,身體的自癒能力增強承致, 須 女士現在心情非常愉快。

四、 四十年白眼球赤熱,三個月根治
林 先生五十八歲,從十七歲開始雙目常赤熱,中醫診斷是「肝經積鬱」,服藥多年無效。西醫診斷說是城市空氣污染承致,最好移居鄉村,但是居住鄉村十幾年,眼未見好轉。由於白眼球長期充血呈紅色,朋友戲稱他外號叫荔枝眼。去年幸獲讀了三合一新鮮果汁文章之後,每天清早空腹飲五百 cc鮮汁,一個月後雙眼明顯好轉,赤熱減退。三個月後,雙目黑白分明,從此再也沒有赤熱的現象。

五、 肝硬化,居然有救
高 女士五十九歲,患肝硬化,食道靜脈瘤破裂,大量吐血,皮膚黃疸,臉和手腳浮腫,終日昏昏睡夢中,多次入院施手術,亦曾經嘗試各種療法和健康食品,但因肝臟太差,承以總是無效。突然在一個契機經朋友介紹,聽到馬鈴薯鮮汁對治癌症有很好效果,於是立刻動手做馬鈴薯鮮汁。
 
材料是馬鈴薯、紅蘿蔔、蘋果、再加三份一的檸檬汁調味,三種一起榨汁即時飲用,一個小時後才吃早餐。

2007年10月12日 星期五

文字裁切雙位元函數


文字裁切雙位元函數
 
或許已有高手編寫過了,但因為沒有找到過
所以編寫了這支可以切斷文字左邊或右邊的函數,
想請各位高手多多指導精簡一下,
並看看是否還有其他要改進的地方.
謝謝~
 

(SETQ STR "一二三四五") ;字串
(SETQ STR_ST 3)  ;字串起始值 1...
(SETQ STR_LH 3)  ;字串切割位數 1...N / NIL
(SETQ DB_Byte T) ;雙位元計算保留 T/NIL
(SETQ CP_LF T)   ;反轉左切 T/NIL
(JTHWA-TRIM-STR STR STR_ST STR_LH DB_Byte CP_LF)
 
exp1:
(SETQ STR "1234567890")
(JTHWA-TRIM-STR STR 3 1 t t)
_$ "3"
(JTHWA-TRIM-STR STR 3 2 n t)
_$ "23"
(JTHWA-TRIM-STR STR 3 1 n n)
_$ "3"
(JTHWA-TRIM-STR STR 3 2 n n)
_$ "34"
 
exp2:
(SETQ STR "一二三四五")
(JTHWA-TRIM-STR STR 3 2 n n)
_$ "二"
(JTHWA-TRIM-STR STR 3 3 n n)
_$ "二?
(JTHWA-TRIM-STR STR 3 3 t n)
_$ "二三"
(JTHWA-TRIM-STR STR 4 3 t n)
_$ "二三"
(JTHWA-TRIM-STR STR 4 4 t n)
_$ "二三四"
(JTHWA-TRIM-STR STR 4 4 n t)
_$ "一二"
(JTHWA-TRIM-STR STR 4 3 n t)
_$ "@二"
(JTHWA-TRIM-STR STR 5 2 t t)
_$ "二三" 
(JTHWA-TRIM-STR STR 7 3 t t)
_$ "三四"
 
(DEFUN JTHWA-TRIM-STR (STR STR_ST STR_LH DB_Byte CP_LF / ANS I ST01
      ST02 STAL STNNB STR_LH-BK STR_LH-FT STR_LH-K
      STR_LH-ME STR_ST-BK STR_ST-FT STR_ST-ME
      STR_STLH SUBNB-K TSTNB )      
  (SETQ STNNB NIL)
  (SETQ STAL (tc:getstrwid STR))
  (SETQ ST01 (CAR (tc:getstrwid STR)))
  (SETQ ST02 (CDR (tc:getstrwid STR)))
  (SETQ I -1)
  (REPEAT ST01
    (SETQ I (1+ I))
    (SETQ TSTNB (strlen (NTH I ST02)))
    (REPEAT TSTNB
      (SETQ STNNB (CONS I STNNB))
    )
  )
  (SETQ STNNB (reverse STNNB))
  (IF CP_LF
    ;; ======================處理左切字串
    (PROGN
      (SETQ STR_STLH (strlen STR))
      (SETQ SUBNB-K (1- STR_ST))
      (SETQ STR_ST-FT (IF (minusp (1+ SUBNB-K))
   NIL
   (NTH (1+ SUBNB-K) STNNB)
        )
      )
      (SETQ STR_ST-ME (IF (minusp (NTH SUBNB-K STNNB))
   NIL
   (NTH SUBNB-K STNNB)
        )
      )
      (SETQ STR_ST-BK (IF (minusp (1- SUBNB-K))
   NIL
   (NTH (1- SUBNB-K) STNNB)
        )
      )
      (COND
 ((OR
    (= SUBNB-K 0)
    (minusp STR_ST)
    (< STR_ST STR_LH)
  )
   (PRINT "Runner Error")
   (SETQ ANS "")
 )
 (T
   (IF DB_Byte
     (PROGN
       (IF (= STR_LH NIL)
  (SETQ STR_LH (1- STR_ST))
       )
       (COND
  ((= STR_ST-ME STR_ST-FT)
    (SETQ STR_ST (1+ STR_ST))
    (SETQ STR_LH (1+ STR_LH))
  )
  ((= STR_ST-ME STR_ST-BK)
    (SETQ STR_ST STR_ST)
  )
       )
       (IF STR_LH
  (PROGN
    (SETQ STR_LH-K (- STR_ST STR_LH))
    (SETQ STR_LH-FT (IF (minusp (1+ STR_LH-K))
        NIL
        (NTH (1+ STR_LH-K) STNNB)
      )
    )
    (SETQ STR_LH-ME (IF (minusp (NTH STR_LH-K STNNB))
        NIL
        (NTH STR_LH-K STNNB)
      )
    )
    (SETQ STR_LH-BK (IF (minusp (1- STR_LH-K))
        NIL
        (NTH (1- STR_LH-K) STNNB)
      )
    )
  )
       )
       (IF STR_LH
  (PROGN
    (COND
      ((= STR_LH-ME STR_LH-FT)
        (SETQ STR_LH STR_LH)
      )
      ((= STR_LH-ME STR_LH-BK)
        (SETQ STR_LH (1+ STR_LH))
      )
    )
    (SETQ ANS (SUBSTR STR (1+ (- STR_ST STR_LH)) STR_LH))
  )
  (SETQ ANS (SUBSTR STR 1 STR_ST))
       )
     )
     (PROGN
       (IF STR_LH
  (SETQ ANS (substr STR (SETQ STR_ST (- (1+ STR_ST)
            STR_LH
         )
          )
      (SETQ STR_LH STR_LH)
     )
  )
  (SETQ ANS (substr STR 1 STR_ST))
       )
     )
   )
 )
      )
    )
    ;; ======================處理右切字串
    (PROGN
      (SETQ STR_STLH (strlen STR))
      (SETQ SUBNB-K (1- STR_ST))
      (SETQ STR_ST-FT (IF (minusp STR_ST)
   NIL
   (NTH STR_ST STNNB)
        )
      )
      (SETQ STR_ST-ME (IF (minusp (NTH SUBNB-K STNNB))
   NIL
   (NTH SUBNB-K STNNB)
        )
      )
      (SETQ STR_ST-BK (IF (minusp (1- SUBNB-K))
   NIL
   (NTH (1- SUBNB-K) STNNB)
        )
      )
      (COND
 ((OR
    (= SUBNB-K 0)
    (minusp STR_ST)
    (> SUBNB-K STR_STLH)
  )
   (PRINT "Runner Error")
   (SETQ ANS "")
 )
 (T
   (IF DB_Byte
     (PROGN
       (COND
  ((= STR_ST-ME STR_ST-FT)
    (SETQ STR_ST STR_ST)
  )
  ((= STR_ST-ME STR_ST-BK)
    (SETQ STR_ST (1- STR_ST))
    (SETQ STR_LH (IF (= STR_LH NIL)
     (SETQ STR_LH NIL)
     (1+ STR_LH)
          )
    )
  )
       )
       (IF (= STR_LH NIL)
  (SETQ STR_LH NIL)
  (IF STR_LH
    (PROGN
      (SETQ STR_LH-K (- (+ STR_ST STR_LH) 2))
      (SETQ STR_LH-FT (IF (minusp (1+ STR_LH-K))
          NIL
          (NTH (1+ STR_LH-K) STNNB)
        )
      )
      (SETQ STR_LH-ME (IF (minusp (NTH STR_LH-K STNNB))
          NIL
          (NTH STR_LH-K STNNB)
        )
      )
      (SETQ STR_LH-BK (IF (minusp (1- STR_LH-K))
          NIL
          (NTH (1- STR_LH-K) STNNB)
        )
      )
    )
  )
       )
       (IF STR_LH
  (PROGN
    (COND
      ((= STR_LH-ME STR_LH-FT)
        (SETQ STR_LH (1+ STR_LH))
      )
      ((= STR_LH-ME STR_LH-BK)
        (SETQ STR_LH STR_LH)
      )
    )
    (SETQ ANS (SUBSTR STR STR_ST STR_LH))
  )
  (SETQ ANS (SUBSTR STR STR_ST))
       )
     )
     (PROGN
       (IF STR_LH
  (SETQ ANS (substr STR STR_ST STR_LH))
  (SETQ ANS (substr STR STR_ST))
       )
     )
   )
 )
      )
    )
  )
  (PRINT ANS)
  (prin1)
)
 
tc:getstrwid 函數
引用來源: http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=50326&page=1
BY xxsheng
(defun tc:getstrwid(str / m n a c)
  (setq m 0)
  (setq n 0)
  (while (< m (strlen str))
    (if (> (vl-string-elt str m) 128)
      (progn
        (setq n(1+ n))
    (setq a (substr str (1+ m) 2))
    (setq m(+ 2 m))
      )
      (progn
    (setq n(1+ n))
    (setq a (substr str (1+ m) 1))
    (setq m(1+ m))
      )
    )
    (setq c(cons a c))
  )
  (setq c(reverse c))
  (cons n c)
)