什麼是 Windows 上的程式碼注入?

什麼是 Windows 上的程式碼注入?

程式碼注入是 Windows 上非常常見的技術。應用程式會將自己的程式碼「注入」到另一個正在運行的進程中,以更改該進程的行為。這種技術可以用於好的目的,也可以用於壞的目的,但無論哪種方式,它都可能導致不必要的問題。防毒軟體等防毒軟體會將程式碼注入Chrome以修改其行為。這導致瀏覽器問題更頻繁地發生。

程式碼注入通常也稱為 DLL 注入,因為注入其他進程的程式碼片段通常採用DLL 檔案(動態連結程式庫)的形式。但是,應用程式有時也可以將不以 DLL 檔案形式存在的其他類型的程式碼注入到另一個進程中。

什麼是 Windows 上的程式碼注入?

程式碼注入有什麼用?

程式碼注入用於在 Windows 上執行所有技巧和功能。合法軟體和惡意軟體都會使用程式碼注入,例如:

  • 防毒程式通常會將腳本插入網路瀏覽器,並使用它們來監視網路流量並阻止危險的網路內容。
  • 惡意程式可以向您的網路瀏覽器添加程式碼來追蹤您的瀏覽記錄和信息,然後竊取您瀏覽器上安裝的受保護信息,例如密碼、信用卡號碼和更改。
  • Stardock 的WindowBlinds注入程式碼來修改視窗的開啟方式。
  • Stardock 的 Fences 注入程式碼來改變 Windows 的工作方式。
  • AutoHotkey插入程式碼以允許您建立腳本並指派系統範圍的熱鍵。
  • NVIDIA 等圖形驅動程式會傳送 DLL 檔案來執行各種與圖形相關的任務。
  • 某些程式註入 DLL 檔案以向應用程式新增附加選項。
  • 電腦遊戲作弊者經常向遊戲中註入程式碼以修改其特性,從而使作弊者相對於其他玩家獲得不公平的優勢。

程式碼注入不好嗎?

Windows 上的許多不同應用程式經常使用此技術。它對於執行各種任務來說確實是獨一無二的。與 Apple 的 iOS 或 Google 的 Android 等現代行動作業系統平台相比,Windows 的功能要強大得多,因為它為開發人員提供了這種靈活性。

當然,其中也存在一些危險。程式碼注入可能會導致應用程式出現問題和錯誤。谷歌表示,使用向 Chrome 注入程式碼的軟體的 Windows 用戶在 Chrome 上遇到錯誤的可能性比平常高 15%,這就是為什麼谷歌正在努力防止程式碼注入的原因。

微軟甚至提供了說明,以便用戶可以檢查Microsoft Outlook中是否正在載入第三方DLL文件,因為這些文件會在Outlook中造成很多問題。

2004 年,一位微軟員工在部落格上分享了這個問題:

注入其他應用程式的 DLL 檔案永遠不安全,因為程式碼非法進入並非由該進程的作者設計、建置或測試的進程。您可能會遇到以前從未遇到過的同步或資源問題的風險,或者這些檔案會加劇應用程式中現有的問題。

換句話說,程式碼注入是一種非法駭客行為。然而,程式碼注入只是當今 Windows 應用程式平台上的常見技術。它在 PC 上的 Windows 後台持續使用。

如何檢查已註入應用程式中的DLL檔案。

您可以使用 Microsoft 的 Process Explorer 應用程式檢查系統上的程式碼注入。基本上,該應用程式是任務管理器的增強版本,增強了必要的附加功能。

首先,您下載並執行 Process Explorer。然後按一下視圖 > 下窗格視圖 > DLL或按 Ctrl + D。

什麼是 Windows 上的程式碼注入?

在頂部窗格中選擇一個進程,然後查看下面的窗格以查看正在載入哪些 DLL 檔案。公司名稱列將為您提供過濾此列表的有用方法。

例如:當您看到一堆由 Microsoft Corporation 建立的 DLL 檔案時,這是完全正常的,因為它們是 Windows 的一部分。在該應用程式中找到源自應用程式母公司的 DLL 檔案是完全正常的(例如下面螢幕截圖中的「Google Inc」)。

根據下圖,我們也可以在這個清單中發現一些由「AVAST Software」建立的DLL檔案。這表示系統上的 Avast 反間諜軟體應用程式正在向 Chrome 注入「Avast 腳本阻止過濾器庫」等程式碼。

什麼是 Windows 上的程式碼注入?

即使您在系統上發現程式碼注入,除了卸載注入程式碼的程式以防止其造成進一步的問題之外,您也無能為力。例如,如果您的 Chrome 經常崩潰,您可以檢查是否有任何程式向 Chrome 中註入程式碼,如果有,請卸載這些程式以防止它們進一步幹擾您的進度。

程式碼注入如何運作?

程式碼注入不會影響磁碟機上儲存的底層應用程式。相反,它會等到應用程式啟動,然後將程式碼注入到正在運行的進程中以更改進程的運行方式。

眾所周知,Windows包含一系列可用於程式碼注入的應用程式介面(API)。進程可以將自身附加到目標進程,分配內存,然後將 DLL 或其他代碼寫入該內存,並指示目標進程執行該代碼。 Windows 絕對不會阻止電腦上的進程像這樣相互幹擾。

在某些情況下,有人可以更改驅動器上的基本代碼,例如,通過用另一段已修改的代碼替換 PC 遊戲附帶的 DLL 文件,可以欺騙遊戲作弊或侵犯版權。從技術上講,這不是程式碼注入,因為程式碼不會注入到正在運行的進程中,而是使用另一個同名的 DLL 檔案來欺騙該進程。

看更多:


什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

您是否掃描過您的設備並發現它感染了 HackTool:Win32/Keygen?在您使用破解或金鑰產生器啟動進階軟體後,Windows Defender 可能會自動警告您有關此惡意軟體的存在。

在 Windows 10 上建立備份和還原點(Restore Point)的說明

在 Windows 10 上建立備份和還原點(Restore Point)的說明

探索如何在Windows 10上建立和管理還原點,這是一項有效的系統保護功能,可以讓您快速還原系統至先前狀態。

在 Windows 10 中開啟裝置管理員的 15 種方法

在 Windows 10 中開啟裝置管理員的 15 種方法

您可以使用以下 15 種方法輕鬆在 Windows 10 中開啟<strong>裝置管理員</strong>,包括使用命令、捷徑和搜尋。

Windows「顯示桌面」的 10 種超快速方法

Windows「顯示桌面」的 10 種超快速方法

很多人不知道如何快速顯示桌面,只好將各個視窗一一最小化。這種方法對於用戶來說非常耗時且令人沮喪。因此,本文將向您介紹Windows中快速顯示桌面的十種超快速方法。

如何使用 Windows Repair 修復 Windows 錯誤

如何使用 Windows Repair 修復 Windows 錯誤

Windows Repair 是一款有效的 Windows 錯誤修復工具,幫助使用者修復與 Internet Explorer、Windows Update 和其他重要程式相關的錯誤。

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

您可以使用檔案總管選項來變更檔案和資料夾的工作方式並控制顯示。掌握如何在 Windows 10 中開啟資料夾選項的多種方法。

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

刪除不使用的使用者帳戶可以顯著釋放記憶體空間,並讓您的電腦運行得更流暢。了解如何刪除 Windows 10 使用者帳戶的最佳方法。

如何使用Bootsect /nt60將VBC更新為BOOTMGR

如何使用Bootsect /nt60將VBC更新為BOOTMGR

使用 bootsect 命令能夠輕鬆修復磁碟區引導程式碼錯誤,確保系統正常啟動,避免 hal.dll 錯誤及其他啟動問題。

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

存檔應用程式是一項功能,可以自動卸載您很少使用的應用程序,同時保留其關聯的檔案和設定。了解如何有效利用 Windows 11 中的存檔應用程式功能。

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

要啟用虛擬化,您必須先進入 BIOS 並從 BIOS 設定中啟用虛擬化,這將顯著提升在 BlueStacks 5 上的效能和遊戲體驗。