mirror of
https://github.com/mandiant/capa-rules
synced 2026-06-08 15:41:20 +00:00
59 lines
2.3 KiB
YAML
59 lines
2.3 KiB
YAML
rule:
|
|
meta:
|
|
name: parse PE header
|
|
namespace: load-code/pe
|
|
authors:
|
|
- moritz.raabe@mandiant.com
|
|
scopes:
|
|
static: function
|
|
dynamic: unspecified # rule hasn't been migrated yet
|
|
att&ck:
|
|
- Execution::Shared Modules [T1129]
|
|
examples:
|
|
- 9324D1A8AE37A36AE560C37448C9705A:0x403DD0
|
|
features:
|
|
- and:
|
|
- os: windows
|
|
- and:
|
|
- mnemonic: cmp
|
|
- or:
|
|
- number: 0x4550 = IMAGE_NT_SIGNATURE (PE)
|
|
- and:
|
|
- number: 0x50
|
|
- number: 0x45
|
|
- or:
|
|
- number: 0x5A4D = IMAGE_DOS_SIGNATURE (MZ)
|
|
- and:
|
|
- number: 0x4D
|
|
- number: 0x5A
|
|
- optional:
|
|
- and:
|
|
- operand[1].offset: 0x3C = IMAGE_DOS_HEADER.e_lfanew
|
|
- or:
|
|
- and:
|
|
- arch: i386
|
|
- operand[1].offset: 0x50 = IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage
|
|
- operand[1].offset: 0x34 = IMAGE_NT_HEADERS.OptionalHeader.ImageBase
|
|
- and:
|
|
- arch: amd64
|
|
- operand[1].offset: 0x50 = IMAGE_NT_HEADERS64.OptionalHeader.SizeOfImage
|
|
- operand[1].offset: 0x30 = IMAGE_NT_HEADERS64.OptionalHeader.ImageBase
|
|
- basic block:
|
|
- and:
|
|
- operand[1].offset: 0x3C = IMAGE_DOS_HEADER.e_lfanew
|
|
- 3 or more:
|
|
- operand[1].offset: 0x4 = IMAGE_NT_HEADERS.FileHeader.Machine
|
|
- operand[1].offset: 0x6 = IMAGE_NT_HEADERS.FileHeader.NumberOfSections
|
|
- operand[1].offset: 0x14 = IMAGE_NT_HEADERS.FileHeader.SizeOfOptionalHeader
|
|
- operand[1].offset: 0x16 = IMAGE_NT_HEADERS.FileHeader.Characteristics
|
|
- operand[1].offset: 0x28 = IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint # for 32 and 64 bit
|
|
- or:
|
|
- and:
|
|
- arch: i386
|
|
- operand[1].offset: 0x34 = IMAGE_NT_HEADERS.OptionalHeader.ImageBase
|
|
- operand[1].offset: 0x50 = IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage
|
|
- and:
|
|
- arch: amd64
|
|
- operand[1].offset: 0x30 = IMAGE_NT_HEADERS.OptionalHeader.ImageBase
|
|
- operand[1].offset: 0x50 = IMAGE_NT_HEADERS64.OptionalHeader.SizeOfImage
|