從可執行文件中刪除.reloc節區

.reloc節區

  • EXE形式的PE文件中“.reloc”項對運行沒什麼影響
  • 對DLL和SYS而言“.reloc”項則是必須的
  • .reloc一般位於所有節區的最後

reloc.exe

刪除.reloc節區的步驟:

  • 刪除.reloc節區頭
  • 刪除.reloc節區
  • 修改IMAGE_FILE_HEADER
  • 修改IMAGE_OPTIONAL_HEADER

刪除.reloc節區頭

通過PEView查看:
在這裏插入圖片描述
通過HEX Editor將其用0填充:
在這裏插入圖片描述
在這裏插入圖片描述

刪除.reloc節區

文件中.reloc 節區的起始偏移地址爲C000,將其全部刪除:
在這裏插入圖片描述

修改IMAGE_FILE_HEADER

需要修改的項包括:

  • NumberOfSections:刪除一個節區所以應該減1
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

修改IMAGE_OPTIONAL_HEADER

需要修改的項包括:

  • SizeOfImage:刪除.reloc節區後,映射大小隨之改變
    在這裏插入圖片描述
    .reloc的大小爲E40,根據SectionAlignment將其擴展爲1000,所以需要減去1000:
    在這裏插入圖片描述
    在這裏插入圖片描述
參考文獻

《逆向工程核心原理》

發佈了94 篇原創文章 · 獲贊 21 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章