diff --git a/xzre_8h.html b/xzre_8h.html
index 895700c..15a773a 100644
--- a/xzre_8h.html
+++ b/xzre_8h.html
@@ -108,6 +108,15 @@
|
diff --git a/xzre_8h_source.html b/xzre_8h_source.html
index 76faf80..21aeeaa 100644
--- a/xzre_8h_source.html
+++ b/xzre_8h_source.html
@@ -133,166 +133,170 @@
72 #define assert_offset(t, f, o) static_assert(offsetof(t, f) == o)
- 74 typedef struct __attribute__((packed)) {
- 75 u8* first_instruction;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 102 assert_offset(dasm_ctx_t, first_instruction, 0);
- 103 assert_offset(dasm_ctx_t, instruction_size, 8);
- 104 assert_offset(dasm_ctx_t, flags, 0x10);
- 105 assert_offset(dasm_ctx_t, flags2, 0x11);
- 106 assert_offset(dasm_ctx_t, lock_byte, 0x14);
- 107 assert_offset(dasm_ctx_t, last_prefix, 0x16);
- 108 assert_offset(dasm_ctx_t, rex_byte, 0x1B);
- 109 assert_offset(dasm_ctx_t, modrm, 0x1C);
- 110 assert_offset(dasm_ctx_t, modrm_mod, 0x1D);
- 111 assert_offset(dasm_ctx_t, modrm_reg, 0x1E);
- 112 assert_offset(dasm_ctx_t, modrm_rm, 0x1F);
- 113 assert_offset(dasm_ctx_t, opcode, 0x28);
- 114 assert_offset(dasm_ctx_t, mem_disp, 0x30);
- 115 assert_offset(dasm_ctx_t, operand, 0x38);
- 116 assert_offset(dasm_ctx_t, insn_offset, 0x50);
- 117 static_assert(
sizeof(dasm_ctx_t) == 128);
-
- 119 typedef struct __attribute__((packed)) {
-
-
-
-
-
-
-
-
- 128 Elf64_Rela *plt_relocs;
-
-
-
- 132 u64 gnurelro_memsize;
- 133 Elf64_Verdef *verdef;
-
- 135 Elf64_Versym *versym;
- 136 Elf64_Rela *rela_relocs;
-
-
- 139 Elf64_Relr *relr_relocs;
-
-
-
-
- 144 u32 gnu_hash_nbuckets;
- 145 u32 gnu_hash_last_bloom;
- 146 u32 gnu_hash_bloom_shift;
-
-
- 149 u32 *gnu_hash_buckets;
-
-
-
- 153 assert_offset(elf_info_t, elfbase, 0x0);
- 154 assert_offset(elf_info_t, first_vaddr, 0x8);
- 155 assert_offset(elf_info_t, phdrs, 0x10);
- 156 assert_offset(elf_info_t, e_phnum, 0x18);
- 157 assert_offset(elf_info_t, dyn, 0x20);
- 158 assert_offset(elf_info_t, dyn_num_entries, 0x28);
- 159 assert_offset(elf_info_t, strtab, 0x30);
- 160 assert_offset(elf_info_t, symtab, 0x38);
- 161 assert_offset(elf_info_t, plt_relocs, 0x40);
- 162 assert_offset(elf_info_t, plt_relocs_num, 0x48);
- 163 assert_offset(elf_info_t, gnurelro_found, 0x4C);
- 164 assert_offset(elf_info_t, gnurelro_vaddr, 0x50);
- 165 assert_offset(elf_info_t, gnurelro_memsize, 0x58);
- 166 assert_offset(elf_info_t, verdef, 0x60);
- 167 assert_offset(elf_info_t, verdef_num, 0x68);
- 168 assert_offset(elf_info_t, versym, 0x70);
- 169 assert_offset(elf_info_t, rela_relocs, 0x78);
- 170 assert_offset(elf_info_t, rela_relocs_num, 0x80);
- 171 assert_offset(elf_info_t, relr_relocs, 0x88);
- 172 assert_offset(elf_info_t, relr_relocs_num, 0x90);
- 173 assert_offset(elf_info_t, flags, 0xD0);
- 174 assert_offset(elf_info_t, gnu_hash_nbuckets, 0xd8);
- 175 assert_offset(elf_info_t, gnu_hash_last_bloom, 0xdc);
- 176 assert_offset(elf_info_t, gnu_hash_bloom_shift, 0xe0);
- 177 assert_offset(elf_info_t, gnu_hash_bloom, 0xe8);
- 178 assert_offset(elf_info_t, gnu_hash_buckets, 0xf0);
- 179 assert_offset(elf_info_t, gnu_hash_chain, 0xf8);
-
-
-
-
-
-
-
-
-
- 206 extern int x86_dasm(dasm_ctx_t *ctx, u8 *code_start, u8 *code_end);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 280 FuncFindType find_mode);
-
-
-
- 300 extern BOOL
elf_parse(Elf64_Ehdr *ehdr, elf_info_t *elf_info);
-
- 310 extern Elf64_Sym *
elf_symbol_get(elf_info_t *elf_info, u32 encoded_string_id,
const char *sym_version);
-
-
-
-
-
-
-
- 340 unsigned operation_index,
- 341 unsigned reg2reg_instruction_count,
- 342 int flags, u8 *code);
-
-
- 383 u8 *call_site, u8 *code,
-
- 385 unsigned reg2reg_instruction_count,
unsigned operation_index);
-
-
-
-represents a shift register, which will shift a '1' into the secret data array. the low 3 bits repres...
Definition: xzre.h:187
-u32 index
Definition: xzre.h:195
-u32 bit_index
Definition: xzre.h:190
-u32 byte_index
Definition: xzre.h:192
+ 74 #define CONCAT(x, y) x ## y
+ 75 #define EXPAND(x, y) CONCAT(x, y)
+ 76 #define PADDING(size) u8 EXPAND(_unknown, __LINE__)[size]
+
+ 78 typedef struct __attribute__((packed)) {
+ 79 u8* first_instruction;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 106 assert_offset(dasm_ctx_t, first_instruction, 0);
+ 107 assert_offset(dasm_ctx_t, instruction_size, 8);
+ 108 assert_offset(dasm_ctx_t, flags, 0x10);
+ 109 assert_offset(dasm_ctx_t, flags2, 0x11);
+ 110 assert_offset(dasm_ctx_t, lock_byte, 0x14);
+ 111 assert_offset(dasm_ctx_t, last_prefix, 0x16);
+ 112 assert_offset(dasm_ctx_t, rex_byte, 0x1B);
+ 113 assert_offset(dasm_ctx_t, modrm, 0x1C);
+ 114 assert_offset(dasm_ctx_t, modrm_mod, 0x1D);
+ 115 assert_offset(dasm_ctx_t, modrm_reg, 0x1E);
+ 116 assert_offset(dasm_ctx_t, modrm_rm, 0x1F);
+ 117 assert_offset(dasm_ctx_t, opcode, 0x28);
+ 118 assert_offset(dasm_ctx_t, mem_disp, 0x30);
+ 119 assert_offset(dasm_ctx_t, operand, 0x38);
+ 120 assert_offset(dasm_ctx_t, insn_offset, 0x50);
+ 121 static_assert(
sizeof(dasm_ctx_t) == 128);
+
+ 123 typedef struct __attribute__((packed)) {
+
+
+
+
+
+
+
+
+ 132 Elf64_Rela *plt_relocs;
+
+
+
+ 136 u64 gnurelro_memsize;
+ 137 Elf64_Verdef *verdef;
+
+ 139 Elf64_Versym *versym;
+ 140 Elf64_Rela *rela_relocs;
+
+
+ 143 Elf64_Relr *relr_relocs;
+
+
+
+
+ 148 u32 gnu_hash_nbuckets;
+ 149 u32 gnu_hash_last_bloom;
+ 150 u32 gnu_hash_bloom_shift;
+
+
+ 153 u32 *gnu_hash_buckets;
+
+
+
+ 157 assert_offset(elf_info_t, elfbase, 0x0);
+ 158 assert_offset(elf_info_t, first_vaddr, 0x8);
+ 159 assert_offset(elf_info_t, phdrs, 0x10);
+ 160 assert_offset(elf_info_t, e_phnum, 0x18);
+ 161 assert_offset(elf_info_t, dyn, 0x20);
+ 162 assert_offset(elf_info_t, dyn_num_entries, 0x28);
+ 163 assert_offset(elf_info_t, strtab, 0x30);
+ 164 assert_offset(elf_info_t, symtab, 0x38);
+ 165 assert_offset(elf_info_t, plt_relocs, 0x40);
+ 166 assert_offset(elf_info_t, plt_relocs_num, 0x48);
+ 167 assert_offset(elf_info_t, gnurelro_found, 0x4C);
+ 168 assert_offset(elf_info_t, gnurelro_vaddr, 0x50);
+ 169 assert_offset(elf_info_t, gnurelro_memsize, 0x58);
+ 170 assert_offset(elf_info_t, verdef, 0x60);
+ 171 assert_offset(elf_info_t, verdef_num, 0x68);
+ 172 assert_offset(elf_info_t, versym, 0x70);
+ 173 assert_offset(elf_info_t, rela_relocs, 0x78);
+ 174 assert_offset(elf_info_t, rela_relocs_num, 0x80);
+ 175 assert_offset(elf_info_t, relr_relocs, 0x88);
+ 176 assert_offset(elf_info_t, relr_relocs_num, 0x90);
+ 177 assert_offset(elf_info_t, flags, 0xD0);
+ 178 assert_offset(elf_info_t, gnu_hash_nbuckets, 0xd8);
+ 179 assert_offset(elf_info_t, gnu_hash_last_bloom, 0xdc);
+ 180 assert_offset(elf_info_t, gnu_hash_bloom_shift, 0xe0);
+ 181 assert_offset(elf_info_t, gnu_hash_bloom, 0xe8);
+ 182 assert_offset(elf_info_t, gnu_hash_buckets, 0xf0);
+ 183 assert_offset(elf_info_t, gnu_hash_chain, 0xf8);
+
+
+
+
+
+
+
+
+
+ 210 extern int x86_dasm(dasm_ctx_t *ctx, u8 *code_start, u8 *code_end);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 284 FuncFindType find_mode);
+
+
+
+ 304 extern BOOL
elf_parse(Elf64_Ehdr *ehdr, elf_info_t *elf_info);
+
+ 314 extern Elf64_Sym *
elf_symbol_get(elf_info_t *elf_info, u32 encoded_string_id,
const char *sym_version);
+
+
+
+
+
+
+
+ 344 unsigned operation_index,
+ 345 unsigned reg2reg_instruction_count,
+ 346 int flags, u8 *code);
+
+
+ 387 u8 *call_site, u8 *code,
+
+ 389 unsigned reg2reg_instruction_count,
unsigned operation_index);
+
+
+
+represents a shift register, which will shift a '1' into the secret data array. the low 3 bits repres...
Definition: xzre.h:191
+u32 index
Definition: xzre.h:199
+u32 bit_index
Definition: xzre.h:194
+u32 byte_index
Definition: xzre.h:196
BOOL elf_parse(Elf64_Ehdr *ehdr, elf_info_t *elf_info)
Parses the given in-memory ELF file into elf_info.
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 secret_data_append_singleton(u8 *call_site, u8 *code, secret_data_shift_cursor shift_cursor, unsigned reg2reg_instruction_count, unsigned operation_index)
Shifts data in the secret data store, after validation of code. this function is intended to be invok...