程式碼注入在Windows上很常見。應用程式將自己的程式碼片段“注入”到另一個正在執行的程序中,以修改其行為。這項技術可以用來做好事或壞事,但無論哪種方式,它都可能導致問題。
程式碼注入通常也稱為DLL注入,因為注入的程式碼通常是以DLL(動態連結庫)檔案的形式出現的。然而,應用程式也可以將其他型別的非dll程式碼注入到程序中。
程式碼注入用於在Windows上完成各種技巧和功能。正當程式使用它的同時,惡意軟體也在使用它。例如:
Windows上的各種應用程式經常使用這種技術。這是完成各種任務的唯一真正方法。與蘋果iOS或谷歌Android這樣的現代移動平臺相比,Windows桌面如此強大,是因為if為開發者提供了這種靈活性。
當然,伴隨著這些力量,也會帶來一些危險。程式碼注入會導致應用程式出現問題和bug。谷歌表示,將程式碼注入Chrome瀏覽器的Windows使用者,其Chrome崩潰的可能性要高出15%,這就是谷歌正在努力阻止這種情況的原因。微軟指出,惡意應用程式可能會利用程式碼注入來篡改瀏覽器設定,這也是它在Edge中已經被阻止的原因之一。
Microsoft甚至提供了檢查第三方DLL是否載入到Microsoft Outlook的說明,因為它們會導致大量Outlook崩潰。
正如一位微軟員工在2004年的開發者部落格中所說:
DLL injection is never safe. You’re talking about squirting code into a process that was never designed, built, or tested by the process’s author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren’t there before or exacerbating issues that were there.
換句話說,程式碼注入是一種骯髒的駭客行為。在一個理想的世界裡,會有一個更安全的方法來實現這一點,而不會造成潛在的不穩定。然而,程式碼注入只是當今Windows應用程式平臺的一個普通部分。它經常發生在你的Windows電腦的後臺。你可以稱之為一個必要的邪惡。
您可以使用Microsoft強大的Process Explorer應用程式檢查系統上的程式碼注入。它基本上是一個工作管理員的高階版本,包含了額外的特性。
如果願意,請下載並執行Process Explorer。單擊“檢視”>“下窗格檢視”>“DLL”,或按Ctrl+D。
在頂部窗格中選擇一個程序,然後在下部窗格中檢視已載入的DLL。“公司名稱”列提供了篩選此列表的有用方法。
例如,在這裡看到“微軟公司”生產的各種DLL是很正常的,因為它們是Windows的一部分。在下面的螢幕截圖中,同樣可以看到DLL是由同一家公司生產的,比如Chrome的“谷歌公司”。
我們也可以在這裡找到一些由“AVAST軟體”**的DLL。這表明我們系統上的Avast反惡意軟體正在向Chrome注入類似“Avast指令碼阻止過濾器庫”的程式碼。
如果在系統上發現程式碼注入,除了解除安裝程式注入程式碼以防止它引起問題之外,您沒有什麼可以做的。例如,如果Chrome經常崩潰,您可能希望檢視是否有任何程式將程式碼注入Chrome並解除安裝它們,以防止它們篡改Chrome的程序。
程式碼注入不會修改磁碟上的底層應用程式。相反,它會等待應用程式執行,並向正在執行的程序中注入額外的程式碼,以更改其執行方式。
Windows包括各種應用程式程式設計介面(api),可用於程式碼注入。程序可以將自身附加到目標程序,分配記憶體,將DLL或其他程式碼寫入該記憶體,然後指示目標程序執行程式碼。Windows不能防止計算機上的程序像這樣相互干擾。
有關更多技術資訊,請檢視這篇解釋開發人員如何注入dll的部落格文章,並檢視Windows上其他型別的程式碼注入。
在某些情況下,有人可能會更改磁碟上的底層程式碼,例如,用修改過的DLL檔案替換PC遊戲附帶的DLL檔案,以啟用作弊或盜版。從技術上講,這不是“程式碼注入”,程式碼並沒有被注入到正在執行的程序中,而是被誘使程式載入具有相同名稱的不同DLL。
圖片來源:Lukatme/Shutterstock.com網站.
...脅。其中兩個是XSS和SQL注入。 目錄 1. 概述和主要區別 2. 什麼是XSS 3. 什麼是SQL注入 4. 並排比較——XSS與SQL表格形式的注入 5. 摘要 什麼是xss公司(xss)? XSS代表跨站點指令碼,它是最常見的網站攻擊之一。它可以影響特定網站以...
...威脅。其中兩個是XSS和CSRF。 目錄 1. 概述和主要區別 2. 什麼是XSS 3. 什麼是CSRF 4. 並列比較——XSS與CSRF的表格形式 5. 摘要 什麼是xss公司(xss)? XSS是一種向網站注入惡意程式碼的程式碼注入攻擊。這是最常見的網站攻擊之一。它...
...servlet容器和一個web伺服器。 目錄 1. 概述和主要區別 2. 什麼是JBoss 3. 什麼是雄貓 4. JBoss和Tomcat的相似之處 5. 並列比較——JBoss與Tomcat的表格形式 6. 摘要 什麼是jboss(jboss)? 應用伺服器為應用程式提供事務、安全、依賴注入和併...
擴散與離子注入 一旦你瞭解了什麼是擴散和離子注入,就可以理解擴散和離子注入的區別。首先,應該提到的是,擴散和離子注入是與半導體有關的兩個術語。它們是將摻雜原子引入半導體的技術。本文介紹了這兩種工藝,...
Linux是給舊機器注入新生命的好方法。為什麼?因為大多數Linux發行版的系統要求比Windows低,所以商店裡**的大多數PC上都有這種作業系統。Linux通常對計算機CPU的壓力較小,不需要太多的硬碟空間。但是拉姆呢? ...
... 什麼是系統完整性保護(system integrity protection)? ...
... 為此,谷歌在Windows上引入了Chrome的一項新功能。這將檢查您的計算機中的軟體,可能會導致穩定問題的鉻,並幫助您刪除它。下面是如何看一看。 ...