Skip to content

Commit 3f0f5aa

Browse files
committed
[BUGFIX] Less strict identification of LoadConfig version
1 parent 8d16228 commit 3f0f5aa

1 file changed

Lines changed: 14 additions & 16 deletions

File tree

libpeconv/src/load_config_util.cpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,25 @@ peconv::t_load_config_ver peconv::get_load_config_version(BYTE* buffer, size_t b
3232
const size_t curr_size = smallest->Size;
3333

3434
if (is64b) {
35-
switch (curr_size) {
36-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W7) :
37-
return peconv::LOAD_CONFIG_W7_VER;
38-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W8) :
39-
return peconv::LOAD_CONFIG_W8_VER;
40-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W10) :
35+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W10)) {
4136
return peconv::LOAD_CONFIG_W10_VER;
42-
default:
43-
return LOAD_CONFIG_UNK_VER;
37+
}
38+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W8)) {
39+
return peconv::LOAD_CONFIG_W8_VER;
40+
}
41+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR64_W7)) {
42+
return peconv::LOAD_CONFIG_W7_VER;
4443
}
4544
}
4645
else {
47-
switch (curr_size) {
48-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W7) :
49-
return peconv::LOAD_CONFIG_W7_VER;
50-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W8) :
51-
return peconv::LOAD_CONFIG_W8_VER;
52-
case sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W10) :
46+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W10)) {
5347
return peconv::LOAD_CONFIG_W10_VER;
54-
default:
55-
return LOAD_CONFIG_UNK_VER;
48+
}
49+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W8)) {
50+
return peconv::LOAD_CONFIG_W8_VER;
51+
}
52+
if (curr_size >= sizeof(peconv::IMAGE_LOAD_CONFIG_DIR32_W7)) {
53+
return peconv::LOAD_CONFIG_W7_VER;
5654
}
5755
}
5856
return LOAD_CONFIG_UNK_VER;

0 commit comments

Comments
 (0)