91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

一個簡單壓縮殼的實現

發布時間: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

财经| 瑞丽市| 延庆县| 额尔古纳市| 桂阳县| 九寨沟县| 汕尾市| 连州市| 怀宁县| 邹城市| 通山县| 全椒县| 八宿县| 磐石市| 沙坪坝区| 剑川县| 溧水县| 苏尼特右旗| 莱西市| 柳林县| 新宁县| 宁武县| 葫芦岛市| 绥江县| 克什克腾旗| 尼玛县| 屏边| 丰宁| 沽源县| 报价| 河间市| 静宁县| 道孚县| 平果县| 桑植县| 惠来县| 建湖县| 乐清市| 河西区| 曲松县| 孝昌县|