■ 威海職業(yè)學(xué)院 趙永華
編者按:宏代碼注入技術(shù)是一把雙刃劍,在給人們帶來便利的同時,也潛藏著安全風(fēng)險。一些惡意軟件往往采取此類方式對用戶網(wǎng)絡(luò)和應(yīng)用實施攻擊。因此,我們應(yīng)當學(xué)會辨別其好壞。
代碼注入是Windows系統(tǒng)中常用的一種幕后技術(shù),常用于改寫DDL文件,所以也稱作DLL注入,其實有時也會修改其他文件。
代碼注入技術(shù)是一種典型的雙刃劍,例如安全工具通過代碼注入瀏覽器去監(jiān)控網(wǎng)絡(luò)流量,從而阻止危險內(nèi)容。但是一些惡意軟件采用相同手段,其目的卻是竊取用戶隱私。
而且,很多應(yīng)用程序?qū)⒋a注入作為一種技巧,為用戶解決實際問題,比如改變桌面布置,美化系統(tǒng)界面。AutoHotkey程序可以通過代碼注入編寫系統(tǒng)腳本完成一些操作任務(wù)。NVIDIA顯卡功能是通過注入DLLs完成圖顯,一些應(yīng)用程序注入DLLs提供菜單項,一些工具軟件通過代碼注入提供自動搶票和點贊等。
代碼注入也會帶來bugs,比如在 Windows系統(tǒng)下使用Chrome瀏覽器時,代碼注入有時會引起Chrome崩潰。Windows中的瀏覽器Edge出于安全考慮,會阻止代碼注入修改瀏覽器設(shè)置。我們很難簡單說代碼注入是好是壞,代碼注入為用戶帶來了方便,而且有時是一種必不可少的功能,但它確實有時又會帶來隱患,那么我們?nèi)绾闻卸ㄋ呛檬菈哪兀?/p>
對此,微軟網(wǎng)站提供了一個檢查工具Process Explorer,它頗似一個升級版的Windows任務(wù)管理器,它可以讓我們查看當前系統(tǒng)DLLs的詳情,其下載地址如下:
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
運行Process Explorer后,進入菜單“View→Lower Pane View→DLLs”(如圖 1)。
圖1 Process Explorer顯示DLLs
此時我們選擇其中的某個進程,即可查看其相應(yīng)的 DLLs,通過其中的“Company Name”欄目可以了解其來源,比如可以看到是“Microsoft Corporation”或者“Google Inc.”等等,但是在這里我們很難有更多的行為,比如我們不能卸載具有代碼注入行為的那些程序。
代碼注入行為其實并不會修改當前系統(tǒng)中的底層應(yīng)用,只是當那些底層應(yīng)用開始運行后伺機執(zhí)行代碼注入到進程中,從而改變功能和作用。而Windows系統(tǒng)本身不僅不會阻止這種行為,而且其提供的形形色色的APIs本質(zhì)上也屬于代碼注入。有時有些游戲玩家會改變應(yīng)用的底層代碼,也就是替換掉游戲原來的DLL,這種行為并不屬于代碼注入。