困擾我多年的問題,用vscode也會出現類似的錯誤。網上的許多方案都是下載360,火絨類似的方案,但是治標不治本,過一段時間又不好了。其根本原因是映像劫持造成的,可以理解成病毒,下面我主要介紹一下:
映像劫持的根本原因就是被惡意程序篡改了注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options。
假如在這里新建一個子項notepad.exe,再在這子項里新建一個REG_SZ的名字為Debugger,內容為cmd.exe的值項。這樣就會實現映像劫持了,這樣你每次用記事本的方式打開文本文件時,卻打開的是命令提示符的窗口。相信你也遇到過類似的情況吧。一下木馬,病毒就是通過這個讓殺毒軟件和防火牆之類的應用程序,啟動不起來。
Debugger參數的本意是為了讓程序員能夠通過雙擊程序文件直接進入調試器里調試自己的程序,曾經調試過程序的朋友也許會有一個疑問,既然程序啟動時都要經過IFEO這一步,那么在調試器里點擊啟動剛被Debugger參數送進來的程序時豈不是又會因為這個法則的存在而導致再次產生一個調試器進程?微軟並不是傻子,他們理所當然的考慮到了這一點,因此一個程序啟動時是否會調用到IFEO規則取決於它是否“從命令行調用”的,那么“從命令行調用”該怎么理解呢?例如我們在命令提示符里執行taskmgr.exe,這就是一個典型的“從命令行調用”的執行請求,而我們在點擊桌面上、普通應用程序菜單里的taskmgr.exe時,系統都會將其視為由外殼程序Explorer.exe 傳遞過來的執行請求,這樣一來,它也屬於“從命令行調用”的范圍而觸發IFEO規則了。為了與用戶操作區分開來,系統自身加載的程序、調試器里啟動的程 序,它們就不屬於“從命令行調用”的范圍,從而繞開了IFEO,避免了這個加載過程無休止的循環下去。由於Debugger參數的這種特殊作用,它又被稱為“重定向”(Redirection), 而利用它進行的攻擊,又被稱為“重定向劫持”(Redirection Hijack),它和“映像劫持”(Image Hijack,或IFEO Hijack)只是稱呼不同,實際上都是一樣的技術手段。
這里介紹一個最簡單粗暴的辦法 cmd -> regedit -> 找到image file execution options 刪除360提示的文件夾 然后設置權限 獲得system完全控制的權限 然后刪除這個文件夾 最后取消image file execution options的system用戶的所有權限,這樣一來外界就無法對此進行修改了。