20 if (!
entry->DataIsDirectory) {
22 std::cout <<
"Entry is NOT a directory\n";
26 std::cout <<
"Offset: " <<
offset << std::endl;
33 std::cout <<
"Data Offset: " <<
data_entry->OffsetToData <<
" : " <<
data_entry->Size << std::endl;
43 std::cout <<
"Entry is a directory\n";
48 std::cout <<
"Offset: " <<
offset << std::endl;
68 std::cout <<
"Entry:" << std::hex <<
i <<
" ; " <<
"Id: " <<
entry->Id <<
" ; dataOffset:" <<
entry->OffsetToData <<
"\n";
82 if (!
dir ||
dir->VirtualAddress == 0 ||
dir->Size == 0) {
bool parse_delayed_desc(BYTE *modulePtr, const size_t moduleSize, const ULONGLONG img_base, LPSTR lib_name, const T_FIELD ordinal_flag, IMAGE_DELAYLOAD_DESCRIPTOR *desc, peconv::t_function_resolver *func_resolver)
bool parse_resources(BYTE *modulePtr, t_on_res_entry_found on_entry)
bool(* t_on_res_entry_found)(BYTE *modulePtr, IMAGE_RESOURCE_DIRECTORY_ENTRY *root_dir, IMAGE_RESOURCE_DATA_ENTRY *curr_entry)
bool validate_ptr(IN const void *buffer_bgn, IN size_t buffer_size, IN const void *field_bgn, IN size_t field_size)
DWORD get_image_size(IN const BYTE *payload)
IMAGE_DATA_DIRECTORY * get_directory_entry(IN const BYTE *pe_buffer, IN DWORD dir_id, IN bool allow_empty=false)
Wrappers over various fields in the PE header. Read, write, parse PE headers.
bool parse_resource_entry(BYTE *modulePtr, const size_t moduleSize, IMAGE_RESOURCE_DIRECTORY_ENTRY *root_dir, const IMAGE_RESOURCE_DIRECTORY *upper_dir, IMAGE_RESOURCE_DIRECTORY_ENTRY *entry, peconv::t_on_res_entry_found on_entry)
bool parse_resource_dir(BYTE *modulePtr, const size_t moduleSize, IMAGE_RESOURCE_DIRECTORY_ENTRY *root_dir, const IMAGE_RESOURCE_DIRECTORY *upper_dir, IMAGE_RESOURCE_DIRECTORY *curr_dir, peconv::t_on_res_entry_found on_entry)
Parsing PE's resource directory.