展開
湖北國聯計算機科技有限公司
  • 首頁HOME
  • 公司簡介INTRODUCTION
  • 安全防御DEFENSE
  • 軟件開發SOFTWARE
  • 物聯網IOT
  • 運行維護SRE
  • 成功案例CASE
  • 聯系我們CONTACT
  • IndustryEvents |業界動態

    如何禁用軟件DLL劫持(Disable DLL Hijacking)
    來源:吾愛破解論壇 時間:2021-10-16

    前言

    越來越多的木馬使用DLL劫持功能進行加載,大家也經常做補丁使用DLL劫持功能進行破解,有沒有想過如何進行防護了?本文介紹通過修改文件manifest屬性進行定向位置加載和動態加載簽名校驗來解決劫持問題,給開發者提供一些防護思路,加強軟件保護,防止被劫持利用。

    介紹

    木馬:如早期的犇牛木馬,使用偽裝LPK.DLL、USP10.DLL系統DLL進行劫持加載傳播感染,到如今各種流氓軟件和APT組織使用DLL劫持正常軟件繞過安全軟件攔截,如使用偽裝chrome.dll劫持Chrome.exe來實現加載,其中比較知名APT組織海蓮花(OceanLotus)最為擅長。

    破解補丁:Windows平臺加密殼發展到如今階段,脫殼成本提升和自校驗的加強,已經很少有直接通過文件Patch進行補丁破解了,基本都開始使用內存修改的方式進行補丁,相對于傳統的啟動進程再修改內存的方式,DLL劫持修改內存更為方便,DLL劫持補丁已經成為主流的破解補丁存在方式了。為什么可以進行DLL劫持了,本文不再贅述,可以參看微軟官方的介紹:https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order。

    防護方法

    1、對于系統DLL,不通過修改本機KnownDLLs進行單機防護,而是通過修改文件manifest屬性進行定向加載DLL來解決通用系統DLL劫持問題,開發者可以看微軟的manifest介紹:

    >https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests。

    比如我們給程序添加以下代碼

    復制代碼 隱藏代碼

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assemblymanifestVersion="1.0"xmlns="urn:schemas-microsoft-com:asm.v1">
    <filename="winmm.dll"loadFrom="%SystemRoot%\system32\winmm.dll" />
    <filename="lpk.dll"loadFrom="%SystemRoot%\system32\lpk.dll" />
    <filename="version.dll"loadFrom="%SystemRoot%\system32\version.dll" />
    </assembly>

    編譯成功后再進行winmm.dll、lpk.dll和version.dll劫持,就會無效了,這里只添加了部分DLL,可以根據自己程序所需,把對應所有的導入表中的系統DLL都加入即可。對于二次開發的程序沒有源代碼如何進行修改了?我們可以使用ResEdit等資源工具進行修改,如圖所示:


    2、對于非系統第三方DLL,上面的方法就不太適用了,可以使用動態加載方式,不要使用靜態導入方式加載,通過動態加載對文件進行校驗,如數字簽名校驗通過后再進行加載,來保證程序的安全性。

    結語

    未知攻焉知防,充分了解攻擊手段才才可以做出更好的防御。



    荊州地區政府網站建設 解決方案 專業團隊 地址:湖北省荊州市沙市區荊沙大道楚天都市佳園一期C區29棟112       地址:湖北省松滋市才知文化廣場1141-1142號     郵編:434200 聯系電話:0716-6666211     網站編輯部郵箱:business@gl-ns.com 鄂公網安備 42100202000212號 備案號:鄂ICP備2021015094號-1     企業名稱:湖北國菱計算機科技有限公司
    黄页在线网站免费大全,黄页站在线观看,黄淫视频免费下载