- Explorer के crash बहुत बढ़ गए थे, इसलिए कारण ढूंढते हुए stack में malware जैसे function pointer मिले
- और जांचने पर पता चला कि वह malware नहीं बल्कि uninstaller था
- uninstaller बंद होने के बाद अपने ही binary को मिटाने के लिए इंतज़ार कर रहा था (Self Deleting)
- इस code में CodeProject पर 10 साल पहले पेश की गई method का इस्तेमाल किया गया था
- संभवतः किसी DLL के function को call करना था, लेकिन वह detour हो गया और उसी वजह से यह हुआ
- खुद को delete करना हो तो इस तरह दूसरे process (Explorer) में code injection या detour करने के बजाय नीचे की तरह
cleanup.js जैसी temporary file का इस्तेमाल करना चाहिए
- यह code खुद को मिटाता है, और uninstaller को भी 20 सेकंड तक delete करने की कोशिश करता है
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 टिप्पणियां
उस ज़माने में, कबाड़ फ़ाइलें हटाने वाले प्रोग्राम इस्तेमाल करने की याद आ रही है...
फिर भी आजकल Windows में भी package management प्रोग्राम धीरे-धीरे बेहतर हो रहे हैं, इसलिए उम्मीद है। +_+
लगता है मैंने 'अत्यधिक' शब्द बहुत इस्तेमाल किया। अत्यधिक विकसित विज्ञान जादू से अलग नहीं पहचाना जा सकता।
लेख का शीर्षक प्रसिद्ध SF उपन्यासकार Sir Arthur C. Clarke के कथन से लिया गया है।
Hacker News राय
LD_PRELOADकमांड से की गई