利用01Editor手工加殼

2022-07-29 11:33:08 字數 2470 閱讀 1150

主要工具: 010editor、lordpe、od

實驗平台:win10 64位

實現功能:加殼。

加殼原理

要想弄明白怎麼對pe檔案加殼,首先需要對pe檔案比較熟悉,而最快的熟悉pe檔案的方法就是自己寫乙個pe解析工具和寫殼了。

先只用工具010editor完成乙個手工加殼,那麼就明白加殼的原理了。

首先進行手工加殼

先用vs隨便生成乙個exe檔案,我們使用它進行實驗。

可以先使用010editor、lordpe、od等工具檢視節區個數,我實驗程式的原始區段(節區)個數是8個。

1. 給pe檔案新增乙個新區段

修改檔案頭的numberofsection

使用010editor開啟測試程式,按alt+4出現乙個模板選單找到numberofsection把該數字加1,這裡改為了9。

2. 設定新的區段頭

新增儲存之後, 重新執行010editor的模板(或者重啟010),區段就增加了乙個。

設定整個新增加的區段的資料,主要需要設定的字段如下:

區段名(可選)

區段資料的實際位元組數misc.virtualsize

區段的virtualaddress(區段資料在記憶體中的rva),此值必須是: 上乙個區段的virtualaddress + 上乙個區段經記憶體對齊粒度對齊後的大小(記憶體對齊大小是0x1000的整數倍)

區段以檔案對齊粒度對齊後的大小sizeofrawdata(檔案對齊大小是0x200的整數倍)

區段的pointertorawdata(區段資料在檔案中的偏移),此值必須是:上乙個區段的pointertorawdata + 上乙個區段的sizeofrawdata

區段屬性主要設定區段為可讀可寫可執行如下圖

對比上乙個區段修改新新增的區段裡的字段。

3.新增區段資料

區段頭內容雖然設定好了,但真正重要的區段裡的資料還需要插入到檔案中,以擴充檔案的大小,因為區段頭只是乙個相當於目錄的存在,如果只有目錄而沒有內容,就會造成這個檔案成為乙個無效的pe檔案。

把010editor裡的資料頁滾動到最下面按ctrl+shift+i新增200h個(16進製制)位元組

4. 修改pe檔案的擴充套件頭的sizeofimage

現在pe檔案已經被擴充了大小,擴充套件頭中的映像大小必須更新,否則當pe檔案載入到記憶體後,新區段的資料將無法得到正常載入。

這個欄位的值記錄的是乙個pe檔案在記憶體中的大小,可以將之設定為: 最後乙個區段在記憶體中的位置 + 最後乙個區段在記憶體中的大小,即:

optionalheader.sizeofimage = 最後乙個區段.virtualaddress + 最後乙個區段.sizeofrawdata按記憶體對齊粒度對齊的大小

儲存之後,執行該程式,就能正常執行(中間某些環節操作錯了就會導致該檔案無法正常執行)到此新增區段成功了。那麼加殼也就成功了90%,這個新區段之後稱為殼**段。

5.新增殼**

先找到擴充套件頭的dll屬性字段,去掉隨機基址,把40 81改為 00 81後儲存。

在這裡為了方便,就使用lordpe來操作剩下的步驟了,先記錄原始的oep入口點為11055,把他改為新區段的rva 1f000然後點選儲存。

然後再使用od開啟,進入到入口點就是41f000,因為預設載入基址是0x400000, 發現全是00 00 00的位元組,沒用內容。把第一行**改為跳轉到原來的入口點jmp 0x411055,然後打乙個補丁,程式就能正常執行了。

這就是乙個完整的殼流程了,雖然這個殼的內容只有一條跳轉到原入口點的**,但萬丈高樓平地起。基礎的東西弄懂了後面才能少遇見一些坑!

利用0 1揹包問題談動態規劃

維基百科的定義 動態規劃的本質,是對問題狀態的定義和狀態轉移方程的定義。引自維基百科 dynamic programming is a method forsolving acomplex problem bybreaking itdown into acollection of r subprob...

js特效01手風琴動態效果案例

思路分析 1給ul中的每乙個li動態新增背景圖。2排他乾掉所有人並且滑鼠經過改變所有寬度,留下我自己 滑鼠經過改變當前寬度3滑鼠離開後寬度還原 var box document.getelementbyid box var ul box.children 0 var lis ul.children ...

NTP服務被利用做流量攻擊以及檢測預防手段

被攻擊伺服器相關配置 ip eth0 172.28.9.2 eth1 192.168.0.2 eth3 外網ip 某一天發現這台web伺服器流量一直很高。開始一直以為是web服務的流量很高,根本沒往ntp服務那方面想。因為我設定ntp服務的時候就有考慮到安全問題。檢測過程 可以發現傳送流量非常大。後...