diff options
author | midipix <writeonce@midipix.org> | 2016-11-14 23:24:09 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-11-14 23:31:16 -0500 |
commit | b64d661dc38805d6ad5798be568fa8c41720df5c (patch) | |
tree | 30ca45e2dd3c6f596e8457b6384c82be7212b948 /src/logic | |
parent | 50a83023049b526a0c89165ee81cf7d9ed7eb5a2 (diff) | |
download | perk-b64d661dc38805d6ad5798be568fa8c41720df5c.tar.bz2 perk-b64d661dc38805d6ad5798be568fa8c41720df5c.tar.xz |
project: source tree layout: moved info source files under src/info.
Diffstat (limited to 'src/logic')
-rw-r--r-- | src/logic/pe_get_image_abi.c | 40 | ||||
-rw-r--r-- | src/logic/pe_get_image_framework.c | 104 | ||||
-rw-r--r-- | src/logic/pe_get_image_subsystem.c | 47 | ||||
-rw-r--r-- | src/logic/pe_get_image_subtype.c | 35 |
4 files changed, 0 insertions, 226 deletions
diff --git a/src/logic/pe_get_image_abi.c b/src/logic/pe_get_image_abi.c deleted file mode 100644 index 7219ba3..0000000 --- a/src/logic/pe_get_image_abi.c +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************/ -/* perk: PE Resource Kit */ -/* Copyright (C) 2015--2016 Z. Gilboa */ -/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ -/***************************************************************/ - -#include <string.h> - -#include <perk/perk.h> -#include <perk/perk_meta.h> - -static const char const * pe_abi_str[PE_ABI_CAP] = { - [PE_ABI_UNSUPPORTED] = "UNSUPPORTED", - [PE_ABI_PE32] = "PE32", - [PE_ABI_PE64] = "PE64", -}; - -int pe_get_image_abi(const struct pe_image_meta * m, struct pe_info_string * infostr) -{ - int abi; - - switch (m->opt.std.magic) { - case PE_MAGIC_PE32: - abi = PE_ABI_PE32; - break; - - case PE_MAGIC_PE32_PLUS: - abi = PE_ABI_PE64; - break; - - default: - abi = PE_ABI_UNSUPPORTED; - break; - } - - if (infostr) - strcpy(infostr->buffer,pe_abi_str[abi]); - - return abi; -} diff --git a/src/logic/pe_get_image_framework.c b/src/logic/pe_get_image_framework.c deleted file mode 100644 index ba44d2f..0000000 --- a/src/logic/pe_get_image_framework.c +++ /dev/null @@ -1,104 +0,0 @@ -/***************************************************************/ -/* perk: PE Resource Kit */ -/* Copyright (C) 2015--2016 Z. Gilboa */ -/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ -/***************************************************************/ - -#include <string.h> -#include <stdbool.h> - -#include <perk/perk.h> -#include <perk/perk_meta.h> - -static const char const * pe_framework_str[PE_FRAMEWORK_CAP] = { - [PE_FRAMEWORK_UNKNOWN] = "unknown", - [PE_FRAMEWORK_FREESTD] = "freestd", - [PE_FRAMEWORK_PSXSCL] = "psxscl", - [PE_FRAMEWORK_MIDIPIX] = "midipix", - [PE_FRAMEWORK_CYGONE] = "cygone", - [PE_FRAMEWORK_CYGWIN] = "cygwin", - [PE_FRAMEWORK_MINGW] = "mingw", - [PE_FRAMEWORK_MSYS] = "msys", - [PE_FRAMEWORK_SUACON] = "suacon", - [PE_FRAMEWORK_WINCON] = "wincon", - [PE_FRAMEWORK_WINCLI] = "wincli", - [PE_FRAMEWORK_WIN32] = "win32", -}; - -static bool pe_image_is_psxscl(const struct pe_image_meta * m) -{ - return (!m->summary.nimplibs - && !pe_get_expsym_by_name(m,"__psx_init",0)); -} - -static bool pe_image_is_cygwin(const struct pe_image_meta * m) -{ - int i; - - for (i=0; i<m->summary.nimplibs; i++) - if (!(strcmp(m->idata[i].name,"cygwin1.dll"))) - return true; - - return false; -} - -static bool pe_image_is_msys(const struct pe_image_meta * m) -{ - int i; - - for (i=0; i<m->summary.nimplibs; i++) - if (!(strcmp(m->idata[i].name,"msys-2.0.dll"))) - return true; - - return false; -} - -static bool pe_image_is_mingw(const struct pe_image_meta * m) -{ - return ((pe_get_named_section_index(m,".CRT") >= 0) - && (pe_get_named_section_index(m,".bss") >= 0) - && (pe_get_named_section_index(m,".tls") >= 0)); -} - -int pe_get_image_framework(const struct pe_image_meta * m, struct pe_info_string * infostr) -{ - int framework; - - if (pe_get_named_section_index(m,".midipix") >= 0) - framework = PE_FRAMEWORK_MIDIPIX; - - else if (pe_get_named_section_index(m,".freestd") >= 0) - framework = PE_FRAMEWORK_FREESTD; - - else if (pe_get_named_section_index(m,".cygheap") >= 0) - framework = PE_FRAMEWORK_CYGONE; - - else if (pe_image_is_psxscl(m)) - framework = PE_FRAMEWORK_PSXSCL; - - else if (pe_image_is_cygwin(m)) - framework = PE_FRAMEWORK_CYGWIN; - - else if (pe_image_is_msys(m)) - framework = PE_FRAMEWORK_MSYS; - - else if (pe_image_is_mingw(m)) - framework = PE_FRAMEWORK_MINGW; - - else if (m->opt.img.subsystem == PE_IMAGE_SUBSYSTEM_POSIX_CUI) - framework = PE_FRAMEWORK_SUACON; - - else if (m->opt.img.subsystem == PE_IMAGE_SUBSYSTEM_WINDOWS_CUI) - framework = PE_FRAMEWORK_WINCON; - - else if (m->opt.img.subsystem == PE_IMAGE_SUBSYSTEM_WINDOWS_GUI) - framework = PE_FRAMEWORK_WIN32; - - else - framework = PE_FRAMEWORK_UNKNOWN; - - if (infostr) - strcpy(infostr->buffer,pe_framework_str[framework]); - - return framework; -} diff --git a/src/logic/pe_get_image_subsystem.c b/src/logic/pe_get_image_subsystem.c deleted file mode 100644 index 3ccf0e6..0000000 --- a/src/logic/pe_get_image_subsystem.c +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************/ -/* perk: PE Resource Kit */ -/* Copyright (C) 2015--2016 Z. Gilboa */ -/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ -/***************************************************************/ - -#include <string.h> - -#include <perk/perk.h> -#include <perk/perk_meta.h> - -static const char const * pe_subsystem_str[0x10] = { - [PE_IMAGE_SUBSYSTEM_UNKNOWN] = "unknown", - [PE_IMAGE_SUBSYSTEM_NATIVE] = "native", - [PE_IMAGE_SUBSYSTEM_WINDOWS_GUI] = "windows", - [PE_IMAGE_SUBSYSTEM_WINDOWS_CUI] = "console", - [PE_IMAGE_SUBSYSTEM_POSIX_CUI] = "posix", - [PE_IMAGE_SUBSYSTEM_WINDOWS_CE_GUI] = "wince", - [PE_IMAGE_SUBSYSTEM_EFI_APPLICATION] = "efi_app", - [PE_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER] = "efi_driver", - [PE_IMAGE_SUBSYSTEM_EFI_ROM] = "efi_rom", - [PE_IMAGE_SUBSYSTEM_XBOX] = "xbox" -}; - -int pe_get_image_subsystem(const struct pe_image_meta * m, struct pe_info_string * infostr) -{ - int subsystem; - - if (m->opt.img.subsystem >= 0x10) - subsystem = -1; - - else if (!pe_subsystem_str[m->opt.img.subsystem]) - subsystem = -1; - - else - subsystem = m->opt.img.subsystem; - - if ((subsystem < 0) && infostr) { - strcpy(infostr->buffer,"INVALID"); - return subsystem; - } - - if (infostr) - strcpy(infostr->buffer,pe_subsystem_str[subsystem]); - - return subsystem; -} diff --git a/src/logic/pe_get_image_subtype.c b/src/logic/pe_get_image_subtype.c deleted file mode 100644 index 7e19ef1..0000000 --- a/src/logic/pe_get_image_subtype.c +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************/ -/* perk: PE Resource Kit */ -/* Copyright (C) 2015--2016 Z. Gilboa */ -/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ -/***************************************************************/ - -#include <string.h> - -#include <perk/perk.h> -#include <perk/perk_meta.h> - -/* todo: object, unrecognized */ - -static const char const * pe_subtype_str[PE_SUBTYPE_CAP] = { - [PE_SUBTYPE_UNRECOGNIZED] = "UNRECOGNIZED", - [PE_SUBTYPE_DLL] = "dll", - [PE_SUBTYPE_EXE] = "exe", - [PE_SUBTYPE_OBJ] = "obj", -}; - -int pe_get_image_subtype(const struct pe_image_meta * m, struct pe_info_string * infostr) -{ - int subtype; - - if (m->coff.characteristics & PE_IMAGE_FILE_DLL) - subtype = PE_SUBTYPE_DLL; - - else - subtype = PE_SUBTYPE_EXE; - - if (infostr) - strcpy(infostr->buffer,pe_subtype_str[subtype]); - - return subtype; -} |