diff --git a/xzre_8h_source.html b/xzre_8h_source.html
index 78bee19..75a21b4 100644
--- a/xzre_8h_source.html
+++ b/xzre_8h_source.html
@@ -299,502 +299,500 @@
321 assert_offset(
elf_info_t, gnu_hash_buckets, 0xf0);
322 assert_offset(
elf_info_t, gnu_hash_chain, 0xf8);
-
+ 324 typedef struct __attribute__((packed)) {
325 u32 resolved_imports_count;
-
- 327 ssize_t (*read)(
int fd,
void *buf,
size_t count);
- 328 int *(*__errno_location)(void);
-
-
- 331 typedef struct __attribute__((packed)) {
- 332 u32 resolved_imports_count;
-
- 334 size_t (*malloc_usable_size)(
void *ptr);
- 335 uid_t (*getuid)(void);
- 336 void (*exit)(
int status);
- 337 int (*setresgid)(gid_t rgid, gid_t egid, gid_t sgid);
- 338 int (*setresuid)(uid_t ruid, uid_t euid, uid_t suid);
- 339 int (*system)(
const char *command);
- 340 ssize_t (*write)(
int fd,
const void *buf,
size_t count);
-
- 342 int nfds, fd_set *readfds, fd_set *writefds,
- 343 fd_set *exceptfds,
const struct timespec *timeout,
- 344 const sigset_t *sigmask);
-
- 346 int (*setlogmask)(
int mask);
- 347 int (*shutdown)(
int sockfd,
int how);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 362 typedef int (*pfn_RSA_public_decrypt_t)(
- 363 int flen,
unsigned char *from,
unsigned char *to,
- 364 RSA *rsa,
int padding);
- 365 typedef int (*pfn_EVP_PKEY_set1_RSA_t)(EVP_PKEY *pkey,
struct rsa_st *key);
- 366 typedef void (*pfn_RSA_get0_key_t)(
-
- 368 const BIGNUM **n,
const BIGNUM **e,
const BIGNUM **d);
-
- 370 typedef struct __attribute__((packed)) {
- 371 pfn_RSA_public_decrypt_t RSA_public_decrypt;
- 372 pfn_EVP_PKEY_set1_RSA_t EVP_PKEY_set1_RSA;
-
- 374 void (*RSA_get0_key_null)(
- 375 const RSA *r,
const BIGNUM **n,
- 376 const BIGNUM **e,
const BIGNUM **d);
- 377 void *RSA_public_decrypt_hook_ptr;
- 378 void *EVP_PKEY_set1_RSA_hook_ptr;
- 379 void *RSA_get0_key_hook_ptr;
- 380 void (*DSA_get0_pqg)(
- 381 const DSA *d,
const BIGNUM **p,
- 382 const BIGNUM **q,
const BIGNUM **g);
- 383 const BIGNUM *(*DSA_get0_pub_key)(
const DSA *d);
- 384 size_t (*EC_POINT_point2oct)(
- 385 const EC_GROUP *group,
const EC_POINT *p,
- 386 point_conversion_form_t form,
unsigned char *buf,
- 387 size_t len, BN_CTX *ctx);
- 388 EC_POINT *(*EC_KEY_get0_public_key)(
const EC_KEY *key);
- 389 const EC_GROUP *(*EC_KEY_get0_group)(
const EC_KEY *key);
- 390 EVP_MD *(*EVP_sha256)(void);
- 391 pfn_RSA_get0_key_t RSA_get0_key;
- 392 int (*BN_num_bits)(
const BIGNUM *a);
- 393 EVP_PKEY *(*EVP_PKEY_new_raw_public_key)(
-
- 395 const unsigned char *key,
size_t keylen);
- 396 EVP_MD_CTX *(*EVP_MD_CTX_new)(void);
- 397 int (*EVP_DigestVerifyInit)(
- 398 EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
- 399 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
- 400 int (*EVP_DigestVerify)(
- 401 EVP_MD_CTX *ctx,
const unsigned char *sig,
- 402 size_t siglen,
const unsigned char *tbs,
size_t tbslen);
- 403 void (*EVP_MD_CTX_free)(EVP_MD_CTX *ctx);
- 404 void (*EVP_PKEY_free)(EVP_PKEY *key);
- 405 EVP_CIPHER_CTX *(*EVP_CIPHER_CTX_new)(void);
- 406 int (*EVP_DecryptInit_ex)(
- 407 EVP_CIPHER_CTX *ctx,
const EVP_CIPHER *type,
- 408 ENGINE *impl,
const unsigned char *key,
const unsigned char *iv);
- 409 int (*EVP_DecryptUpdate)(
- 410 EVP_CIPHER_CTX *ctx,
unsigned char *out,
- 411 int *outl,
const unsigned char *in,
int inl);
- 412 int (*EVP_DecryptFinal_ex)(EVP_CIPHER_CTX *ctx,
unsigned char *outm,
int *outl);
- 413 void (*EVP_CIPHER_CTX_free)(EVP_CIPHER_CTX *ctx);
- 414 EVP_CIPHER *(*EVP_chacha20)(void);
- 415 RSA *(*RSA_new)(void);
- 416 BIGNUM *(*BN_dup)(
const BIGNUM *from);
- 417 BIGNUM (*BN_bin2bn)(
const unsigned char *s,
int len, BIGNUM *ret);
- 418 int (*RSA_set0_key)(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
-
- 420 const void *data,
size_t count,
unsigned char *md,
- 421 unsigned int *size,
const EVP_MD *type, ENGINE *impl);
-
-
- 424 const unsigned char *m,
unsigned int m_len,
- 425 unsigned char *sigret,
unsigned int *siglen, RSA *rsa);
- 426 int (*BN_bn2bin)(
const BIGNUM *a,
unsigned char *to);
- 427 void (*RSA_free)(RSA *rsa);
- 428 void (*BN_free)(BIGNUM *a);
-
- 430 u32 resolved_imports_count;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 471 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
-
- 502 u8 shift_operations[31];
-
-
-
-
-
-
-
-
-
-
-
-
- 520 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
- 527 typedef struct __attribute__((packed)) {
-
-
-
-
-
+
+ 327 size_t (*malloc_usable_size)(
void *ptr);
+ 328 uid_t (*getuid)(void);
+ 329 void (*exit)(
int status);
+ 330 int (*setresgid)(gid_t rgid, gid_t egid, gid_t sgid);
+ 331 int (*setresuid)(uid_t ruid, uid_t euid, uid_t suid);
+ 332 int (*system)(
const char *command);
+ 333 ssize_t (*write)(
int fd,
const void *buf,
size_t count);
+
+ 335 int nfds, fd_set *readfds, fd_set *writefds,
+ 336 fd_set *exceptfds,
const struct timespec *timeout,
+ 337 const sigset_t *sigmask);
+ 338 ssize_t (*read)(
int fd,
void *buf,
size_t count);
+ 339 int *(*__errno_location)(void);
+ 340 int (*setlogmask)(
int mask);
+ 341 int (*shutdown)(
int sockfd,
int how);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 358 typedef int (*pfn_RSA_public_decrypt_t)(
+ 359 int flen,
unsigned char *from,
unsigned char *to,
+ 360 RSA *rsa,
int padding);
+ 361 typedef int (*pfn_EVP_PKEY_set1_RSA_t)(EVP_PKEY *pkey,
struct rsa_st *key);
+ 362 typedef void (*pfn_RSA_get0_key_t)(
+
+ 364 const BIGNUM **n,
const BIGNUM **e,
const BIGNUM **d);
+
+ 366 typedef struct __attribute__((packed)) {
+ 367 pfn_RSA_public_decrypt_t RSA_public_decrypt;
+ 368 pfn_EVP_PKEY_set1_RSA_t EVP_PKEY_set1_RSA;
+
+ 370 void (*RSA_get0_key_null)(
+ 371 const RSA *r,
const BIGNUM **n,
+ 372 const BIGNUM **e,
const BIGNUM **d);
+ 373 void *RSA_public_decrypt_hook_ptr;
+ 374 void *EVP_PKEY_set1_RSA_hook_ptr;
+ 375 void *RSA_get0_key_hook_ptr;
+ 376 void (*DSA_get0_pqg)(
+ 377 const DSA *d,
const BIGNUM **p,
+ 378 const BIGNUM **q,
const BIGNUM **g);
+ 379 const BIGNUM *(*DSA_get0_pub_key)(
const DSA *d);
+ 380 size_t (*EC_POINT_point2oct)(
+ 381 const EC_GROUP *group,
const EC_POINT *p,
+ 382 point_conversion_form_t form,
unsigned char *buf,
+ 383 size_t len, BN_CTX *ctx);
+ 384 EC_POINT *(*EC_KEY_get0_public_key)(
const EC_KEY *key);
+ 385 const EC_GROUP *(*EC_KEY_get0_group)(
const EC_KEY *key);
+ 386 EVP_MD *(*EVP_sha256)(void);
+ 387 pfn_RSA_get0_key_t RSA_get0_key;
+ 388 int (*BN_num_bits)(
const BIGNUM *a);
+ 389 EVP_PKEY *(*EVP_PKEY_new_raw_public_key)(
+
+ 391 const unsigned char *key,
size_t keylen);
+ 392 EVP_MD_CTX *(*EVP_MD_CTX_new)(void);
+ 393 int (*EVP_DigestVerifyInit)(
+ 394 EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
+ 395 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
+ 396 int (*EVP_DigestVerify)(
+ 397 EVP_MD_CTX *ctx,
const unsigned char *sig,
+ 398 size_t siglen,
const unsigned char *tbs,
size_t tbslen);
+ 399 void (*EVP_MD_CTX_free)(EVP_MD_CTX *ctx);
+ 400 void (*EVP_PKEY_free)(EVP_PKEY *key);
+ 401 EVP_CIPHER_CTX *(*EVP_CIPHER_CTX_new)(void);
+ 402 int (*EVP_DecryptInit_ex)(
+ 403 EVP_CIPHER_CTX *ctx,
const EVP_CIPHER *type,
+ 404 ENGINE *impl,
const unsigned char *key,
const unsigned char *iv);
+ 405 int (*EVP_DecryptUpdate)(
+ 406 EVP_CIPHER_CTX *ctx,
unsigned char *out,
+ 407 int *outl,
const unsigned char *in,
int inl);
+ 408 int (*EVP_DecryptFinal_ex)(EVP_CIPHER_CTX *ctx,
unsigned char *outm,
int *outl);
+ 409 void (*EVP_CIPHER_CTX_free)(EVP_CIPHER_CTX *ctx);
+ 410 EVP_CIPHER *(*EVP_chacha20)(void);
+ 411 RSA *(*RSA_new)(void);
+ 412 BIGNUM *(*BN_dup)(
const BIGNUM *from);
+ 413 BIGNUM (*BN_bin2bn)(
const unsigned char *s,
int len, BIGNUM *ret);
+ 414 int (*RSA_set0_key)(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
+
+ 416 const void *data,
size_t count,
unsigned char *md,
+ 417 unsigned int *size,
const EVP_MD *type, ENGINE *impl);
+
+
+ 420 const unsigned char *m,
unsigned int m_len,
+ 421 unsigned char *sigret,
unsigned int *siglen, RSA *rsa);
+ 422 int (*BN_bn2bin)(
const BIGNUM *a,
unsigned char *to);
+ 423 void (*RSA_free)(RSA *rsa);
+ 424 void (*BN_free)(BIGNUM *a);
+
+ 426 u32 resolved_imports_count;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 467 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
+ 498 u8 shift_operations[31];
+
+
+
+
+
+
+
+
+
+
+
+
+ 516 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+ 523 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
+
+
-
-
-
-
- 542 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
-
-
-
-
-
-
-
- 559 typedef struct __attribute__((packed)) {
-
-
- 562 void *__libc_stack_end;
-
+ 538 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 555 typedef struct __attribute__((packed)) {
+
+
+ 558 void *__libc_stack_end;
+
+
+
+
+ 563 assert_offset(
main_elf_t, __libc_stack_end, 0x10);
-
-
- 567 assert_offset(
main_elf_t, __libc_stack_end, 0x10);
-
-
-
-
- 575 typedef struct __attribute__((packed)) {
-
-
-
+
+
+
+ 571 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
-
-
-
-
-
- 589 struct link_map *main_map;
- 590 struct link_map *dynamic_linker_map;
- 591 struct link_map *liblzma_map;
- 592 struct link_map *libcrypto_map;
- 593 struct link_map *libsystemd_map;
- 594 struct link_map *libc_map;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 642 typedef struct __attribute__((packed)) {
-
-
- 645 pfn_RSA_public_decrypt_t RSA_public_decrypt;
- 646 pfn_EVP_PKEY_set1_RSA_t EVP_PKEY_set1_RSA;
- 647 pfn_RSA_get0_key_t RSA_get0_key;
- 648 PADDING(
sizeof(
void *));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 681 typedef struct __attribute__((packed)) {
-
-
-
-
+
+ 585 struct link_map *main_map;
+ 586 struct link_map *dynamic_linker_map;
+ 587 struct link_map *liblzma_map;
+ 588 struct link_map *libcrypto_map;
+ 589 struct link_map *libsystemd_map;
+ 590 struct link_map *libc_map;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 638 typedef struct __attribute__((packed)) {
+
+
+ 641 pfn_RSA_public_decrypt_t RSA_public_decrypt;
+ 642 pfn_EVP_PKEY_set1_RSA_t EVP_PKEY_set1_RSA;
+ 643 pfn_RSA_get0_key_t RSA_get0_key;
+ 644 PADDING(
sizeof(
void *));
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 677 typedef struct __attribute__((packed)) {
+
+
+
+
+
+ 683 typedef struct __attribute__((packed)) {
+
+
- 687 typedef struct __attribute__((packed)) {
-
-
-
- 696 typedef struct __attribute__((packed)) {
-
-
-
-
- 701 typedef union __attribute__((packed)) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 730 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
-
-
-
-
-
-
- 743 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
- 753 u8 decrypted_secret_data[57];
-
-
-
-
-
-
-
- 761 static_assert(
sizeof(
key_ctx_t) == 0x2B8);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 869 u32 encoded_string_id,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 925 FuncFindType find_mode);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1025 unsigned num_relocs,
- 1026 unsigned reloc_type,
- 1027 u32 encoded_string_id);
-
-
-
-
-
-
-
- 1061 u32 *stringId_inOut,
- 1062 void *rodata_start_ptr);
-
-
-
-
-
-
-
-
-
- 1090 unsigned shift_count, BOOL start_from_call);
-
-
-
- 1104 unsigned operation_index,
- 1105 unsigned shift_count,
- 1106 int flags, u8 *code);
-
-
- 1151 u8 *call_site, u8 *code,
-
- 1153 unsigned shift_count,
unsigned operation_index);
-
-
-
- 1168 unsigned shift_count,
unsigned operation_index,
-
-
-
-
-
-
-
-
-
- 1192 struct link_map *libc,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-data passed to functions that access the backdoor data
Definition: xzre.h:575
-this structure is used to hold most of the backdoor information. it's used as a local variable in fun...
Definition: xzre.h:588
-libc_imports_t libc_imports
functions imported from libc
Definition: xzre.h:620
+ 692 typedef struct __attribute__((packed)) {
+
+
+
+
+ 697 typedef union __attribute__((packed)) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 726 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
+
+
+
+
+
+ 739 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+ 749 u8 decrypted_secret_data[57];
+
+
+
+
+
+
+
+ 757 static_assert(
sizeof(
key_ctx_t) == 0x2B8);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 865 u32 encoded_string_id,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 921 FuncFindType find_mode);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1021 unsigned num_relocs,
+ 1022 unsigned reloc_type,
+ 1023 u32 encoded_string_id);
+
+
+
+
+
+
+
+ 1057 u32 *stringId_inOut,
+ 1058 void *rodata_start_ptr);
+
+
+
+
+
+
+
+
+
+ 1086 unsigned shift_count, BOOL start_from_call);
+
+
+
+ 1100 unsigned operation_index,
+ 1101 unsigned shift_count,
+ 1102 int flags, u8 *code);
+
+
+ 1147 u8 *call_site, u8 *code,
+
+ 1149 unsigned shift_count,
unsigned operation_index);
+
+
+
+ 1164 unsigned shift_count,
unsigned operation_index,
+
+
+
+
+
+
+
+
+
+ 1188 struct link_map *libc,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+data passed to functions that access the backdoor data
Definition: xzre.h:571
+this structure is used to hold most of the backdoor information. it's used as a local variable in fun...
Definition: xzre.h:584
+libc_imports_t libc_imports
functions imported from libc
Definition: xzre.h:616
PADDING(sizeof(elf_info_t))
-elf_info_t libc_info
ELF context for libc.so.
Definition: xzre.h:610
-elf_info_t libcrypto_info
ELF context for libcrypto.so.
Definition: xzre.h:615
-lzma_allocator * import_resolver
ELF import resolver (fake LZMA allocator)
Definition: xzre.h:626
-struct backdoor_data * backdoor_data
points to the beginning of this struct
Definition: xzre.h:601
-
-
-
-
+elf_info_t libc_info
ELF context for libc.so.
Definition: xzre.h:606
+elf_info_t libcrypto_info
ELF context for libcrypto.so.
Definition: xzre.h:611
+lzma_allocator * import_resolver
ELF import resolver (fake LZMA allocator)
Definition: xzre.h:622
+struct backdoor_data * backdoor_data
points to the beginning of this struct
Definition: xzre.h:597
+
+
+
+
void * return_address
the return address value of the caller obtained from *(u64 *)(caller_locals+24) since the entrypoint ...
Definition: xzre.h:122
@@ -803,8 +801,8 @@
void * got_ptr
points to the Global Offset Table
Definition: xzre.h:115
void * symbol_ptr
points to a symbol in memory will be used to find the GOT value
Definition: xzre.h:111
u64 * caller_locals
stores the value of __builtin_frame_address(0)-16
Definition: xzre.h:135
-array of ELF handles
Definition: xzre.h:542
-elf_info_t * tmp
used for multiple ELFs
Definition: xzre.h:547
+array of ELF handles
Definition: xzre.h:538
+elf_info_t * tmp
used for multiple ELFs
Definition: xzre.h:543
u64 code_segment_size
page-aligned virtual size of the first executable ELF segment
Definition: xzre.h:269
u64 first_vaddr
virtual address of the first program header
Definition: xzre.h:198
@@ -825,24 +823,23 @@
Elf64_Sym * symtab
pointer to the ELF symbol table
Definition: xzre.h:222
u64 dyn_num_entries
number of entries in the ELF dynamic segment
Definition: xzre.h:214
u32 plt_relocs_num
number of entries in the PLT relocation table
Definition: xzre.h:230
-
-u64 code_range_start
the shifter will use this address as the minimum search address any instruction below this address wi...
Definition: xzre.h:484
-imported_funcs_t * imported_funcs
pointer to the structure containing resolved OpenSSL and system functions
Definition: xzre.h:477
-u32 reg2reg_instructions_count
cumulative number of reg2reg instructions successfully validated by the data shifter
Definition: xzre.h:508
-u64 code_range_end
the shifter will use this address as the maximum search address any instruction beyond this address w...
Definition: xzre.h:490
-
-
-
-the payload header. also used as Chacha IV
Definition: xzre.h:681
-the contents of the RSA 'n' field
Definition: xzre.h:696
-
-
-
-represents a shift register, which will shift a '1' into the secret data array. the low 3 bits repres...
Definition: xzre.h:665
-u32 index
Definition: xzre.h:667
-u32 bit_index
Definition: xzre.h:670
-u32 byte_index
Definition: xzre.h:672
-
+
+u64 code_range_start
the shifter will use this address as the minimum search address any instruction below this address wi...
Definition: xzre.h:480
+imported_funcs_t * imported_funcs
pointer to the structure containing resolved OpenSSL and system functions
Definition: xzre.h:473
+u32 reg2reg_instructions_count
cumulative number of reg2reg instructions successfully validated by the data shifter
Definition: xzre.h:504
+u64 code_range_end
the shifter will use this address as the maximum search address any instruction beyond this address w...
Definition: xzre.h:486
+
+
+
+the payload header. also used as Chacha IV
Definition: xzre.h:677
+the contents of the RSA 'n' field
Definition: xzre.h:692
+
+
+represents a shift register, which will shift a '1' into the secret data array. the low 3 bits repres...
Definition: xzre.h:661
+u32 index
Definition: xzre.h:663
+u32 bit_index
Definition: xzre.h:666
+u32 byte_index
Definition: xzre.h:668
+
BOOL elf_parse(Elf64_Ehdr *ehdr, elf_info_t *elf_info)
Parses the given in-memory ELF file into elf_info.
char * elf_find_string(elf_info_t *elf_info, u32 *stringId_inOut, void *rodata_start_ptr)
Locates a string in the ELF .rodata section.
BOOL resolve_libc_imports(struct link_map *libc, elf_info_t *libc_info, libc_imports_t *imports)
parses the libc ELF from the supplied link map, and resolves its imports
@@ -853,18 +850,19 @@
void * elf_symbol_get_addr(elf_info_t *elf_info, u32 encoded_string_id)
Looks up an ELF symbol from a parsed ELF, and returns its memory address.
BOOL backdoor_setup(backdoor_setup_params_t *params)
the backdoor main method
BOOL elf_contains_vaddr(elf_info_t *elf_info, u64 vaddr, u64 size, u32 p_flags)
checks if given ELF file contains the range [vaddr, vaddr+size) in a segment with the specified memor...
+BOOL is_range_mapped(u8 *addr, u8 length, global_context_t *ctx)
verify if a memory range is mapped
void * elf_get_got_symbol(elf_info_t *elf_info, u32 encoded_string_id)
Gets the GOT symbol with name encoded_string_id from the parsed ELF file.
-CommandFlags2
Definition: xzre.h:717
-@ CMDF_PSELECT
executes pselect, then exit not compatible with command 2
Definition: xzre.h:727
-@ CMDF_CONTINUATION
more data available in the following packet not compatible with command 3
Definition: xzre.h:722
+CommandFlags2
Definition: xzre.h:713
+@ CMDF_PSELECT
executes pselect, then exit not compatible with command 2
Definition: xzre.h:723
+@ CMDF_CONTINUATION
more data available in the following packet not compatible with command 3
Definition: xzre.h:718
BOOL find_call_instruction(u8 *code_start, u8 *code_end, u8 *call_target, dasm_ctx_t *dctx)
finds a call instruction
void * elf_get_data_segment(elf_info_t *elf_info, u64 *pSize, BOOL get_alignment)
Obtains the address and size of the last read-write segment in the given ELF file this is typically t...
int x86_dasm(dasm_ctx_t *ctx, u8 *code_start, u8 *code_end)
disassembles the given x64 code
void * elf_get_rodata_segment(elf_info_t *elf_info, u64 *pSize)
Obtains the address and size of the last readonly segment in the given ELF file this corresponds to t...
BOOL find_function_prologue_ex(u8 *code_start, u8 *func_start_0, u8 *func_start_1, u8 *search_base, u8 *code_end, FuncFindType find_mode)
locates the function prologue. it will try to backtrack and synchronize the code stream,...
-CommandFlags1
Definition: xzre.h:706
-@ CMDF_SETLOGMASK
disable all logging by setting mask 0x80000000
Definition: xzre.h:714
-@ CMDF_8BYTES
the data block contains 8 additional bytes
Definition: xzre.h:710
+CommandFlags1
Definition: xzre.h:702
+@ CMDF_SETLOGMASK
disable all logging by setting mask 0x80000000
Definition: xzre.h:710
+@ CMDF_8BYTES
the data block contains 8 additional bytes
Definition: xzre.h:706
BOOL find_instruction_with_mem_operand(u8 *code_start, u8 *code_end, dasm_ctx_t *dctx, void *mem_address)
finds a LEA or MOV instruction with an immediate memory operand
BOOL main_elf_parse(main_elf_t *main_elf)
parses the main executable from the provided structure. as part of the process, argv0 will be retriev...
BOOL find_lea_instruction_with_mem_operand(u8 *code_start, u8 *code_end, dasm_ctx_t *dctx, void *mem_address)
finds a LEA instruction with an immediate memory operand