中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個簡單壓縮殼的實現

發布時間:2020-08-03 19:40:40 來源:網絡 閱讀:1021 作者:適__ 欄目:編程語言

之前,花了三、四天的時間寫了一個壓縮殼,Mark一下。

簡單說下邏輯:

1、MFC實現的UI交互部分:展示殼的功能,獲取被加殼程序的路徑,顯示加殼進度。

2、加殼功能Pack導出為一個dll,MFC部分動態加載。

3、殼的本體Stub,把數據段、只讀數據段合并到代碼段,添加到被加殼程序的最后。

一個簡單壓縮殼的實現

簡單說下功能:

1、支持反調試,檢查PEB可以過x64dbg,NtQueryInformationProcess可以過StrongOD。

2、加密代碼段,用的AES加密庫。大概思路:遍歷區段頭表,找到.text區段頭表,通過PointerToRawData字段加上被加殼程序讀取到內存中的首地址,找到.text段在內存中的位置;通過SizeOfRawData得到它的文件大小;調用AES加密庫。

3、壓縮代碼段,大概思路:通過.text段頭表找到.text段,調用壓縮庫壓縮。申請內存空間,大小=PE頭+已壓縮.text+其他區段。依次從內存空間把文件拷貝過去:PE頭、已壓縮.text段、其他區段,重組PE文件。同時,修改.text的SizeOfRawData、修改其他區段的PointerToRawData。

一個簡單壓縮殼的實現

4、檢測虛擬機,大概思路:動態獲取遍歷進程的幾個函數,在殼里面檢測虛擬機相關的進程。

5、IAT加密,大概思路:遍歷被加殼程序的導入表,獲取API函數地址,動態加密。申請內存空間,寫入解密和跳轉的shellcode。IAT表地址改為指向這個內存空間。

6、重定位,有多處需要重定位。

6.1、Stub.dll的.text段需要進行重定位,因為默認加載基址從0x10000000變成了0x400000。

6.2、要想被加殼程序支持重定位,需要把被加殼程序的重定表重定向Stub.dll的.reloc段。因為殼程序優先執行,利用系統自動完成殼部分的重定位。在殼程序中,手動完成目標程序的重定位。

7、TLS,需要在殼程序中定義一個TLS變量,佯裝使用一下,編譯的時候生成TLS相關的信息。然后,手動調用被加殼程序的TLS回調函數才能成功。

8、在碼云有一個工程:https://gitee.com/shihuozhiyu/SimplePack

9、有一個腦圖:

一個簡單壓縮殼的實現

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

锦州市| 随州市| 肥乡县| 讷河市| 金山区| 阳信县| 阿荣旗| 天柱县| 广饶县| 湖南省| 宜良县| 闻喜县| 南召县| 东乡县| 长顺县| 雅安市| 米易县| 玉环县| 梁河县| 太保市| 工布江达县| 库伦旗| 浮山县| 仪陇县| 德格县| 赤水市| 灌云县| 共和县| 古蔺县| 西平县| 沭阳县| 长岛县| 朝阳市| 屯留县| 台安县| 温泉县| 财经| 冕宁县| 兴城市| 乐亭县| 济源市|