/***************************************************************/ /* perk: PE Resource Kit */ /* Copyright (C) 2015--2016 Z. Gilboa */ /* Released under GPLv2 and GPLv3; see COPYING.PERK. */ /***************************************************************/ #include #include #include 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; }