9 template <
typename FIELD_T>
25 if (
value == 0)
break;
58 if (moduleSize == 0) {
67 std::cout <<
"TLS Callbacks Table: " << std::hex <<
callbacks_addr << std::endl;
72 std::cout <<
"TLS Callbacks RVA: " << std::hex <<
callbacks_rva << std::endl;
87 if (moduleSize == 0) {
94 std::vector<ULONGLONG>::iterator
itr;
105 std::cout << std::hex <<
"TLS RVA:" <<
rva << std::endl;
114 std::cout <<
"Calling TLS callback[" <<
i <<
"]:" << std::endl;
#define MASK_TO_DWORD(val)
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)
size_t run_tls_callbacks(IN PVOID modulePtr, IN size_t moduleSize=0, IN DWORD dwReason=DLL_PROCESS_ATTACH)
bool validate_ptr(IN const void *buffer_bgn, IN size_t buffer_size, IN const void *field_bgn, IN size_t field_size)
bool virtual_addr_to_rva(IN const ULONGLONG imgBase, IN const DWORD imgSize, IN ULONGLONG virtualAddr, OUT DWORD &outRVA)
DWORD get_image_size(IN const BYTE *payload)
size_t fetch_callbacks_list(IN PVOID modulePtr, IN size_t moduleSize, IN DWORD callbacks_rva, OUT std::vector< ULONGLONG > &tls_callbacks)
bool is64bit(IN const BYTE *pe_buffer)
size_t list_tls_callbacks(IN PVOID modulePtr, IN size_t moduleSize, OUT std::vector< ULONGLONG > &tls_callbacks)
Wrappers over various fields in the PE header. Read, write, parse PE headers.
Functions related to TLS Callbacks.