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