70 RZ_LOG_WARN(
"No PT_DYNAMIC segment in the ELF binary.\n")
74 if (!segment->is_valid) {
75 RZ_LOG_WARN(
"The PT_DYNAMIC segment is invalid.\n");
81 RZ_LOG_INFO(
"Failed to convert PT_DYNAMIC segment p_vaddr to a physical offset.\n")
95 return &
bin->dt_dynamic->dt_needed;
104 result->
info = ht_uu_new0();
132 return bin->dt_dynamic;
140 ht_uu_free(ptr->info);
RzBinInfo * info(RzBinFile *bf)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len key
ut64 Elf_() rz_bin_elf_v2p(RZ_NONNULL ELFOBJ *bin, ut64 vaddr)
Convert a virtual address to the physical address.
bool Elf_() rz_bin_elf_read_addr(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Addr) *result)
bool Elf_() rz_bin_elf_read_sword_sxword(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Sword) *result)
RZ_BORROW RzBinElfSegment *Elf_() rz_bin_elf_get_segment_with_type(RZ_NONNULL ELFOBJ *bin, Elf_(Word) type)
static bool get_dt_info(RzBinElfDtDynamic *ptr, ut64 key, ut64 *info)
static bool init_dt_dynamic(ELFOBJ *bin, RzBinElfDtDynamic *ptr)
bool Elf_() rz_bin_elf_has_dt_dynamic(RZ_NONNULL ELFOBJ *bin)
static bool get_dynamic_entry(ELFOBJ *bin, ut64 offset, Elf_(Dyn) *entry)
void Elf_() rz_bin_elf_dt_dynamic_free(RzBinElfDtDynamic *ptr)
RZ_OWN RzBinElfDtDynamic *Elf_() rz_bin_elf_dt_dynamic_new(RZ_NONNULL ELFOBJ *bin)
bool Elf_() rz_bin_elf_get_dt_info(RZ_NONNULL ELFOBJ *bin, ut64 key, RZ_OUT ut64 *info)
static bool fill_dt_dynamic(ELFOBJ *bin, RzBinElfDtDynamic *ptr, ut64 offset, ut64 size)
RZ_BORROW RzVector *Elf_() rz_bin_elf_get_dt_needed(RZ_NONNULL ELFOBJ *bin)
static bool add_dt_dynamic_entry(RzBinElfDtDynamic *ptr, ut64 key, ut64 info)
static bool get_dynamic_entry_aux(ELFOBJ *bin, ut64 offset, Elf_(Dyn) *entry)
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API const KEY_TYPE bool * found
#define rz_return_val_if_fail(expr, val)
#define RZ_LOG_INFO(fmtstr,...)
#define RZ_LOG_WARN(fmtstr,...)
RZ_API void * rz_vector_push(RzVector *vec, void *x)
RZ_API void rz_vector_fini(RzVector *vec)
RZ_API void rz_vector_init(RzVector *vec, size_t elem_size, RzVectorFree free, void *free_user)
ut64(WINAPI *w32_GetEnabledXStateFeatures)()