當前位置:編程學習大全網 - 網站源碼 - Hook和DLL 註入有什麽聯系和區別

Hook和DLL 註入有什麽聯系和區別

註入跟hook確實有密不可分的聯系,我們通常都是把這兩者放到壹起來談,導致很多人認為它們是壹回事。

應用安全裏面有壹個概念叫完整性,指的是程序或數據不能被攻擊者惡意篡改。根據篡改時刻的不同,我們有兩類方式來破壞應用的完整性:靜態和動態。

在安卓上,靜態的篡改方式是反編譯apk,修改或添加代碼後重打包,用戶只要安裝了這個修改過的apk,運行時攻擊者的代碼就會被加載到進程空間。

動態的篡改方法就是hook。如果我要篡改代碼,那麽我要實現的就是在程序將要執行某段邏輯的時候控制它去執行我的代碼,這個行為就叫hook。

壹個運行時的程序表現形式是進程,代碼跟數據都放在自己的進程裏面。那麽問題來了,操作系統隔離了進程,我的代碼在我的進程裏,別人的代碼在別人的進程裏,別人的進程是不能跳到我的進程來執行我的代碼的,這怎麽辦呢,所以要先想辦法把代碼註入到別人的進程裏。之前提到的重打包也算是壹種靜態的註入方法,動態的註入方法在安卓上與Linux的***享庫註入是類似的,這種方法網上用的最多的應該是看雪的古河發布的libinject。另外還有Xposed,它采取了壹種特殊的註入方法,是動靜結合的。

  • 上一篇:如何用js實現圖片自動切換如何用js實現圖片自動切換
  • 下一篇:下面這個matlab程序的錯誤在哪裏?它為什麽不跑了?
  • copyright 2024編程學習大全網