PE知識復習之PE合並節


                      PE知識復習之PE合並節

一丶簡介

   根據上一講.我們為PE新增了一個節. 並且屬性了各個成員中的相互配合. 例如文件頭記錄節個數.我們新增節就要修改這個個數.

那么現在我們要合並一個節.以上一講我們例子講解.

  以前我們講過PE擴大一個節怎么做. 合並節跟擴大節類似. 只不過一個是擴大. 一個是合並了.

合並節的步驟.

  1.修改文件頭節表個數

  2.修改節表中的屬性

    節.sIzeofRawData 節數據對齊后的大小.

  3.修改擴展頭中PE鏡像大小 SizeofImage

  4.被合並的節以0填充.

二丶實戰合並一個節

  1.修改文件頭中節表個數

     為什么修改應該不用多說了. 我們既然合並. 那么節就要少一個.那么自然就進行修改了.

原節表有8個.我們修改為7即可.

  2.修改節.SizeofRawData 節數據對齊后的大小.

 

我們把最后的AAAA節.合並到上一個節.rsrc中.

  .rsrc.SizeofRawData = .文件對齊(rsrc.SizeofRawData + AAA.節數據的大小)

修改這個屬性就按照上面的公式修改就行.原來節數據大小.加上要被合並的節的數據大小.按照文件對齊存放即可.

  例如下圖:

  

原來節數據對齊后的大小是0x600. AAAA節數據對齊后的大小是0x1000.那么修改.rsrc.SizeofRawData 為 0x1600即可.

  最后一個節表以0填充即可.

  3.修改擴展頭的PE鏡像大小. SizeofImage

我們上一講新增了一個節.所以映像大小為0x1E000. 所以現在要進行修改.合並了0x1000數據大小.那么改為0x1D000即可.

  4.測試程序

程序可以直接運行.那么內存中看看節展開位置有沒有我們的合並節的節數據.

內存中0x41c000位置.就是節展開位置.我們沒有合並之前.並沒有我們的FFFF填充的數據.合並之后.出現了數據.說明已經成功合並了這個節了.

也相當於對這個節進行擴大了.

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM