GS保護技術

2021-09-27 06:14:26 字數 1317 閱讀 2726

gs保護檢測棧溢位,在函式呼叫時向棧幀中壓入乙個額外的隨機dword,就是常見的逆向**中的security cookie.

security cookie 位於ebp之前,系統還將在.data的記憶體區域中存放乙個security cookie的副本。

系統比較棧幀中原先存放的security cookie和.data中的副本的值是否一致。來判定棧是否被破壞。

當檢測到棧中發生溢位時,系統將進入異常處理流程。函式不會被正常返回。ret指令也不會被執行。系統以.data節的第乙個雙位元組作為原始cookie,所用的函式cookie都是通過此dword生成,程式每次執行時原始cookie都不同,在棧幀初始化後系統用ebp異或原始cookie,作為當前函式的cookie.增加不同的函式cookie隨機性。函式返回前在異或回去。

若統一將函式都gs保護,gs操作將大大影響系統效能,因此在設計時部分情況不會用gs,因此對繞過gs就有了可乘之機。

下面幾種情況編譯器不會應用gs.

1.函式不包含緩衝區。

2.函式被定義為具有變數引數列表。

3.函式使用無保護的關鍵字標記。

4.函式第乙個語句中包含內嵌彙編**。

5.緩衝區不是8位元組型別且大小不大於4個位元組。

visual studio 2005後加入變數重排技術。編譯時將區域性變數型別對變數在棧幀中毒的位置進行調整。將字串變數移動到棧幀的高位址。防止在字串溢位對其他區域性變數的破環。同時將指標引數和字串引數複製到記憶體中低位址。防止函式引數被破壞。

程式設計師可對特殊的不符合gs保護條件的函式新增gs保護。通過#pragram strict_gs_check(on)新增security cookie.

#pragram strict_gs_check(on)//為此函式強制啟用gs

int sometingfunc(char * str)

vs2017中的啟用編譯器啟用gs保護。 

理解軟體保護技術之Key File保護

key file 註冊檔案 是一種利用檔案來註冊軟體的保護方式。key file一般是乙個小檔案,可以是純文字檔案,也可以是包含不可顯示字元的二進位制檔案,其內容是一些加密過或未加密的資料,其中可能有使用者名稱 註冊碼等資訊。檔案格式則由軟體作者自己定義。試用版軟體沒有註冊檔案,當使用者向作者付費註...

GS連線事件

gs網路連線事件 網路事件 這個事件是在libevent裡面的收到的事件就是在那個listen裡面,就是客戶端開啟,伺服器收到通知 link stat stat link stat rpkt.size if stat link stat link connected gamechannel game...

分級保護測評檢查技術方案

分級保護測評檢查技術方案 一 簡介 分級保護測評檢查技術方案,是根據國家保密局保密分級保護要求,採取從網路接入到單位區域網使用者終端一系列的軟,硬體保護方法。不僅僅是要通過分級保護測評檢查,更重要的是使使用者單位的網路,通訊,電源,無線訊號,電磁資訊得到有效安全的遮蔽,隔離,檢查和過濾 使使用者單位...