MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / isNTHdrModified

Method isNTHdrModified

pkg/pe/header.go:62–91  ·  view source on GitHub ↗
(mem *PE)

Source from the content-addressed store, hash-verified

60}
61
62func (pe *PE) isNTHdrModified(mem *PE) bool {
63 if pe.Is64 != mem.Is64 {
64 return true
65 }
66 if pe.ntHeader == (peparser.ImageNtHeader{}) && mem.ntHeader == (peparser.ImageNtHeader{}) {
67 return false
68 }
69 if pe.ntHeader == (peparser.ImageNtHeader{}) || mem.ntHeader == (peparser.ImageNtHeader{}) {
70 return true
71 }
72
73 // reset image base before comparing
74 switch pe.Is64 {
75 case true:
76 fileOH64 := pe.ntHeader.OptionalHeader.(peparser.ImageOptionalHeader64)
77 memOH64 := mem.ntHeader.OptionalHeader.(peparser.ImageOptionalHeader64)
78 fileOH64.ImageBase = 0
79 memOH64.ImageBase = 0
80 pe.ntHeader.OptionalHeader = fileOH64
81 mem.ntHeader.OptionalHeader = memOH64
82 case false:
83 fileOH32 := pe.ntHeader.OptionalHeader.(peparser.ImageOptionalHeader32)
84 memOH32 := mem.ntHeader.OptionalHeader.(peparser.ImageOptionalHeader32)
85 fileOH32.ImageBase = 0
86 memOH32.ImageBase = 0
87 pe.ntHeader.OptionalHeader = fileOH32
88 mem.ntHeader.OptionalHeader = memOH32
89 }
90 return !reflect.DeepEqual(pe.ntHeader, mem.ntHeader)
91}
92
93func (pe *PE) isFileHdrModified(mem *PE, archMismatch bool) bool {
94 fileHeader, memHeader := pe.ntHeader.FileHeader, mem.ntHeader.FileHeader

Callers 1

IsHeaderModifiedMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected