binfmt-detector-cli: rewrite to support PE32+ binaries (#38)

Rewrite with hard-coded offsets into the PE file format to discern
if a binary is PE32 or PE32+, and then to determine if it contains
a "CLR Data Directory" entry that looks valid.

Tested with PE32 and PE32+ compiled Mono binaries, PE32 and PE32+ native
binaries, and a random assortment of garbage files.

Former-commit-id: 9e7ac86ec84f653a2f79b87183efd5b0ebda001b
This commit is contained in:
Pat Tullmann
2023-10-16 11:16:47 -07:00
committed by GitHub
parent bb231c5b06
commit 0cb742dafb
4772 changed files with 11391249 additions and 2669 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
503d73065590595e5d71ea576187d317e0a74368

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
503d73065590595e5d71ea576187d317e0a74368

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
503d73065590595e5d71ea576187d317e0a74368

14864
external/bdwgc/libatomic_ops/configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
ea1205ac335e34027c7b42f3f4ea27f43588c6fd

11156
external/bdwgc/libatomic_ops/ltmain.sh vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
147d758abcb48cacb99f268d6b9fecb29205d793

8388
external/bdwgc/libatomic_ops/m4/libtool.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
10ab2844c4edd299059ffcf84b9a61328d9ab6ff

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
e925b10f01c9a0375674d9dd01387fd376777f32