codeblocks和vscode編譯時彈出不支持的16位程序解決方案

困擾我多年的問題,用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)只是稱呼不一樣,實際上都是同樣的技術手段。code

這裏介紹一個最簡單粗暴的辦法 cmd -> regedit -> 找到image file execution options 刪除360提示的文件夾 而後設置權限 得到system徹底控制的權限 而後刪除這個文件夾  最後取消image file execution options的system用戶的全部權限,這樣一來外界就沒法對此進行修改了。進程

相關文章
相關標籤/搜索