- Do số vụ Explorer bị crash tăng đột biến nên khi lần theo nguyên nhân, người ta phát hiện trong stack có một function pointer giống hệt mã độc
- Tìm kỹ hơn thì hóa ra đó không phải mã độc mà là uninstaller
- Sau khi uninstaller kết thúc, nó chờ để xóa chính binary của mình (self-deleting)
- Đoạn mã này dùng một phương pháp được giới thiệu trên CodeProject từ 10 năm trước
- Có lẽ nó cần gọi hàm của một DLL nào đó, nhưng hàm đó đã bị vòng qua bằng detour nên mới xảy ra sự việc này
- Nếu muốn tự xóa, đừng chèn mã hoặc detour sang tiến trình khác (Explorer) như vậy; hãy dùng một tệp tạm như
cleanup.js dưới đây
- Đoạn mã này tự xóa chính nó, đồng thời cũng thử xóa uninstaller trong 20 giây
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile("C:\\Users\\Name\\AppData\\Local\\Temp\\cleanup.js");
var path = "C:\\Program Files\\Contoso\\contoso_update.exe";
for (var count = 0; fso.FileExists(path) && count < 40; count++) {
try { fso.DeleteFile(path); break; } catch (e) { }
WSH.Sleep(500);
}
5 bình luận
Tôi nhớ hồi đó từng dùng các chương trình dọn rác...
Dù vậy, dạo này ngay cả Windows cũng đang dần cải thiện các trình quản lý gói, nên tôi vẫn đang kỳ vọng. +_+
Có vẻ bạn đã dùng từ 'đủ mức phát triển' khá nhiều. Khoa học phát triển đến mức cao thì không thể phân biệt với ma thuật.
Tiêu đề bài viết lấy từ một câu nói của ngài Arthur C. Clarke, nhà văn khoa học viễn tưởng nổi tiếng.
Ý kiến trên Hacker News
wscripts, thứ có thể bị phân loại là phần mềm độc hại do mã không được ký hoặc không thể xác minh trước khi chạyLD_PRELOADcủa Linux