24 if (!memcmp(
buf,
"MZ", 2)) {
28 if (!memcmp(
buf,
"PE", 2)) {
30 return !memcmp(
buf,
"\x0b\x02", 2);
43 #define ROWL(nam, siz, val, fmt) \
44 rz_list_append(ret, rz_bin_field_new(addr, addr, siz, nam, sdb_fmt("0x%08" PFMT64x, (ut64)val), fmt, false));
47 ut64 addr =
bin->rich_header_offset ?
bin->rich_header_offset : 128;
51 rz_list_foreach (
bin->rich_entries, it, rich) {
61 ROWL(
"Signature", 4,
bin->nt_headers->Signature,
"x");
63 ROWL(
"Machine", 2,
bin->nt_headers->file_header.Machine,
"x");
65 ROWL(
"NumberOfSections", 2,
bin->nt_headers->file_header.NumberOfSections,
"x");
67 ROWL(
"TimeDateStamp", 4,
bin->nt_headers->file_header.TimeDateStamp,
"x");
69 ROWL(
"PointerToSymbolTable", 4,
bin->nt_headers->file_header.PointerToSymbolTable,
"x");
71 ROWL(
"NumberOfSymbols ", 4,
bin->nt_headers->file_header.NumberOfSymbols,
"x");
73 ROWL(
"SizeOfOptionalHeader", 2,
bin->nt_headers->file_header.SizeOfOptionalHeader,
"x");
75 ROWL(
"Characteristics", 2,
bin->nt_headers->file_header.Characteristics,
"x");
77 ROWL(
"Magic", 2,
bin->nt_headers->optional_header.Magic,
"x");
79 ROWL(
"MajorLinkerVersion", 1,
bin->nt_headers->optional_header.MajorLinkerVersion,
"x");
81 ROWL(
"MinorLinkerVersion", 1,
bin->nt_headers->optional_header.MinorLinkerVersion,
"x");
83 ROWL(
"SizeOfCode", 4,
bin->nt_headers->optional_header.SizeOfCode,
"x");
85 ROWL(
"SizeOfInitializedData", 4,
bin->nt_headers->optional_header.SizeOfInitializedData,
"x");
87 ROWL(
"SizeOfUninitializedData", 4,
bin->nt_headers->optional_header.SizeOfUninitializedData,
"x");
89 ROWL(
"AddressOfEntryPoint", 4,
bin->nt_headers->optional_header.AddressOfEntryPoint,
"x");
91 ROWL(
"BaseOfCode", 4,
bin->nt_headers->optional_header.BaseOfCode,
"x");
93 ROWL(
"ImageBase", 4,
bin->nt_headers->optional_header.ImageBase,
"x");
95 ROWL(
"SectionAlignment", 4,
bin->nt_headers->optional_header.SectionAlignment,
"x");
97 ROWL(
"FileAlignment", 4,
bin->nt_headers->optional_header.FileAlignment,
"x");
99 ROWL(
"MajorOperatingSystemVersion", 2,
bin->nt_headers->optional_header.MajorOperatingSystemVersion,
"x");
101 ROWL(
"MinorOperatingSystemVersion", 2,
bin->nt_headers->optional_header.MinorOperatingSystemVersion,
"x");
103 ROWL(
"MajorImageVersion", 2,
bin->nt_headers->optional_header.MajorImageVersion,
"x");
105 ROWL(
"MinorImageVersion", 2,
bin->nt_headers->optional_header.MinorImageVersion,
"x");
107 ROWL(
"MajorSubsystemVersion", 2,
bin->nt_headers->optional_header.MajorSubsystemVersion,
"x");
109 ROWL(
"MinorSubsystemVersion", 2,
bin->nt_headers->optional_header.MinorSubsystemVersion,
"x");
111 ROWL(
"Win32VersionValue", 4,
bin->nt_headers->optional_header.Win32VersionValue,
"x");
113 ROWL(
"SizeOfImage", 4,
bin->nt_headers->optional_header.SizeOfImage,
"x");
115 ROWL(
"SizeOfHeaders", 4,
bin->nt_headers->optional_header.SizeOfHeaders,
"x");
117 ROWL(
"CheckSum", 4,
bin->nt_headers->optional_header.CheckSum,
"x");
119 ROWL(
"Subsystem", 24,
bin->nt_headers->optional_header.Subsystem,
"x");
121 ROWL(
"DllCharacteristics", 2,
bin->nt_headers->optional_header.DllCharacteristics,
"x");
123 ROWL(
"SizeOfStackReserve", 4,
bin->nt_headers->optional_header.SizeOfStackReserve,
"x");
125 ROWL(
"SizeOfStackCommit", 4,
bin->nt_headers->optional_header.SizeOfStackCommit,
"x");
127 ROWL(
"SizeOfHeapReserve", 4,
bin->nt_headers->optional_header.SizeOfHeapReserve,
"x");
129 ROWL(
"SizeOfHeapCommit", 4,
bin->nt_headers->optional_header.SizeOfHeapCommit,
"x");
131 ROWL(
"LoaderFlags", 4,
bin->nt_headers->optional_header.LoaderFlags,
"x");
133 ROWL(
"NumberOfRvaAndSizes", 4,
bin->nt_headers->optional_header.NumberOfRvaAndSizes,
"x");
139 if (
bin->nt_headers->optional_header.DataDirectory[
i].Size > 0) {
143 ROWL(
"IMAGE_DIRECTORY_ENTRY_EXPORT", 4,
144 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
146 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_EXPORT", 4,
147 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
150 ROWL(
"IMAGE_DIRECTORY_ENTRY_IMPORT", 4,
151 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
153 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_IMPORT", 4,
154 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
157 ROWL(
"IMAGE_DIRECTORY_ENTRY_RESOURCE", 4,
158 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
160 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_RESOURCE", 4,
161 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
164 ROWL(
"IMAGE_DIRECTORY_ENTRY_EXCEPTION", 4,
165 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
167 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_EXCEPTION", 4,
168 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
171 ROWL(
"IMAGE_DIRECTORY_ENTRY_SECURITY", 4,
172 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
174 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_SECURITY", 4,
175 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
178 ROWL(
"IMAGE_DIRECTORY_ENTRY_BASERELOC", 4,
179 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
181 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_BASERELOC", 4,
182 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
185 ROWL(
"IMAGE_DIRECTORY_ENTRY_DEBUG", 4,
186 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
188 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_DEBUG", 4,
189 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
192 ROWL(
"IMAGE_DIRECTORY_ENTRY_COPYRIGHT", 4,
193 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
195 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_COPYRIGHT", 4,
196 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
199 ROWL(
"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", 4,
200 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
202 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_GLOBALPTR", 4,
203 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
206 ROWL(
"IMAGE_DIRECTORY_ENTRY_TLS", 4,
207 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
209 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_TLS", 4,
210 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
213 ROWL(
"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", 4,
214 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
216 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", 4,
217 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
220 ROWL(
"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", 4,
221 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
223 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", 4,
224 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
227 ROWL(
"IMAGE_DIRECTORY_ENTRY_IAT", 4,
228 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
230 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_IAT", 4,
231 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
234 ROWL(
"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", 4,
235 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
237 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", 4,
238 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
241 ROWL(
"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", 4,
242 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
244 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", 4,
245 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
259 rbin->
cb_printf(
" Signature : 0x%x\n",
bin->nt_headers->Signature);
261 rbin->
cb_printf(
" Machine : 0x%x\n",
bin->nt_headers->file_header.Machine);
262 rbin->
cb_printf(
" NumberOfSections : 0x%x\n",
bin->nt_headers->file_header.NumberOfSections);
263 rbin->
cb_printf(
" TimeDateStamp : 0x%x\n",
bin->nt_headers->file_header.TimeDateStamp);
264 rbin->
cb_printf(
" PointerToSymbolTable : 0x%x\n",
bin->nt_headers->file_header.PointerToSymbolTable);
265 rbin->
cb_printf(
" NumberOfSymbols : 0x%x\n",
bin->nt_headers->file_header.NumberOfSymbols);
266 rbin->
cb_printf(
" SizeOfOptionalHeader : 0x%x\n",
bin->nt_headers->file_header.SizeOfOptionalHeader);
267 rbin->
cb_printf(
" Characteristics : 0x%x\n",
bin->nt_headers->file_header.Characteristics);
268 rbin->
cb_printf(
"IMAGE_OPTIONAL_HEADERS\n");
269 rbin->
cb_printf(
" Magic : 0x%x\n",
bin->nt_headers->optional_header.Magic);
270 rbin->
cb_printf(
" MajorLinkerVersion : 0x%x\n",
bin->nt_headers->optional_header.MajorLinkerVersion);
271 rbin->
cb_printf(
" MinorLinkerVersion : 0x%x\n",
bin->nt_headers->optional_header.MinorLinkerVersion);
272 rbin->
cb_printf(
" SizeOfCode : 0x%x\n",
bin->nt_headers->optional_header.SizeOfCode);
273 rbin->
cb_printf(
" SizeOfInitializedData : 0x%x\n",
bin->nt_headers->optional_header.SizeOfInitializedData);
274 rbin->
cb_printf(
" SizeOfUninitializedData : 0x%x\n",
bin->nt_headers->optional_header.SizeOfUninitializedData);
275 rbin->
cb_printf(
" AddressOfEntryPoint : 0x%x\n",
bin->nt_headers->optional_header.AddressOfEntryPoint);
276 rbin->
cb_printf(
" BaseOfCode : 0x%x\n",
bin->nt_headers->optional_header.BaseOfCode);
277 rbin->
cb_printf(
" ImageBase : 0x%" PFMT64x "\n",
bin->nt_headers->optional_header.ImageBase);
278 rbin->
cb_printf(
" SectionAlignment : 0x%x\n",
bin->nt_headers->optional_header.SectionAlignment);
279 rbin->
cb_printf(
" FileAlignment : 0x%x\n",
bin->nt_headers->optional_header.FileAlignment);
280 rbin->
cb_printf(
" MajorOperatingSystemVersion : 0x%x\n",
bin->nt_headers->optional_header.MajorOperatingSystemVersion);
281 rbin->
cb_printf(
" MinorOperatingSystemVersion : 0x%x\n",
bin->nt_headers->optional_header.MinorOperatingSystemVersion);
282 rbin->
cb_printf(
" MajorImageVersion : 0x%x\n",
bin->nt_headers->optional_header.MajorImageVersion);
283 rbin->
cb_printf(
" MinorImageVersion : 0x%x\n",
bin->nt_headers->optional_header.MinorImageVersion);
284 rbin->
cb_printf(
" MajorSubsystemVersion : 0x%x\n",
bin->nt_headers->optional_header.MajorSubsystemVersion);
285 rbin->
cb_printf(
" MinorSubsystemVersion : 0x%x\n",
bin->nt_headers->optional_header.MinorSubsystemVersion);
286 rbin->
cb_printf(
" Win32VersionValue : 0x%x\n",
bin->nt_headers->optional_header.Win32VersionValue);
287 rbin->
cb_printf(
" SizeOfImage : 0x%x\n",
bin->nt_headers->optional_header.SizeOfImage);
288 rbin->
cb_printf(
" SizeOfHeaders : 0x%x\n",
bin->nt_headers->optional_header.SizeOfHeaders);
289 rbin->
cb_printf(
" CheckSum : 0x%x\n",
bin->nt_headers->optional_header.CheckSum);
290 rbin->
cb_printf(
" Subsystem : 0x%x\n",
bin->nt_headers->optional_header.Subsystem);
291 rbin->
cb_printf(
" DllCharacteristics : 0x%x\n",
bin->nt_headers->optional_header.DllCharacteristics);
292 rbin->
cb_printf(
" SizeOfStackReserve : 0x%" PFMT64x "\n",
bin->nt_headers->optional_header.SizeOfStackReserve);
293 rbin->
cb_printf(
" SizeOfStackCommit : 0x%" PFMT64x "\n",
bin->nt_headers->optional_header.SizeOfStackCommit);
294 rbin->
cb_printf(
" SizeOfHeapReserve : 0x%" PFMT64x "\n",
bin->nt_headers->optional_header.SizeOfHeapReserve);
295 rbin->
cb_printf(
" SizeOfHeapCommit : 0x%" PFMT64x "\n",
bin->nt_headers->optional_header.SizeOfHeapCommit);
296 rbin->
cb_printf(
" LoaderFlags : 0x%x\n",
bin->nt_headers->optional_header.LoaderFlags);
297 rbin->
cb_printf(
" NumberOfRvaAndSizes : 0x%x\n",
bin->nt_headers->optional_header.NumberOfRvaAndSizes);
301 rz_list_foreach (
bin->rich_entries, it,
entry) {
306 if (
bin->nt_headers->optional_header.DataDirectory[
i].Size > 0) {
309 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_EXPORT\n");
312 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_IMPORT\n");
315 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_RESOURCE\n");
318 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_EXCEPTION\n");
321 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_SECURITY\n");
324 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_BASERELOC\n");
327 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_DEBUG\n");
330 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_COPYRIGHT\n");
331 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE\n");
334 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_GLOBALPTR\n");
337 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_TLS\n");
340 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG\n");
343 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT\n");
346 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_IAT\n");
349 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT\n");
352 rbin->
cb_printf(
"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR\n");
355 rbin->
cb_printf(
" VirtualAddress : 0x%x\n",
bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress);
356 rbin->
cb_printf(
" Size : 0x%x\n",
bin->nt_headers->optional_header.DataDirectory[
i].Size);
361 #define RzBinPEObj struct PE_(rz_bin_pe_obj_t)
365 for (
i = 0;
i <
bin->num_sections;
i++) {
366 section_base =
bin->sections[
i].vaddr;
367 section_size =
bin->sections[
i].vsize;
368 if (
rva >= section_base &&
rva < section_base + section_size) {
380 if (!unwind_data_section || (rva < unwind_data_section->
vaddr ||
rva > unwind_data_section->
vaddr + unwind_data_section->
vsize)) {
382 if (section_idx == -1) {
388 return &
bin->sections[section_idx];
390 return unwind_data_section;
446 if (!unwind_data_section) {
450 if (unwind_data_paddr > unwind_data_section->
paddr + unwind_data_section->
size) {
459 ut32 sizeOfCodeEntries =
info.CountOfCodes % 2 ?
info.CountOfCodes + 1 :
info.CountOfCodes;
473 unwind_data_section =
get_section(
bin, unwind_data_section, rfcn.UnwindData);
474 if (!unwind_data_section) {
477 unwind_data_paddr =
rva_to_paddr(unwind_data_section, rfcn.UnwindData);
479 if (!suc ||
info.Version != 1) {
482 while (suc && (unwind_data_paddr & 1)) {
485 unwind_data_paddr =
rva_to_paddr(unwind_data_section, rfcn.UnwindData);
487 if (!suc ||
info.Version != 1) {
490 sizeOfCodeEntries =
info.CountOfCodes % 2 ?
info.CountOfCodes + 1 :
info.CountOfCodes;
505 exceptionDataOff +=
sizeof(
ut32);
514 ut64 scopeRecOff = exceptionDataOff +
sizeof(tbl);
550 .desc =
"PE64 (PE32+) bin plugin",
572 .hashes = &compute_hashes,
573 .resources = &resources,
577 #ifndef RZ_PLUGIN_INCORE
RZ_API void rz_bin_field_free(RzBinField *field)
RZ_API RzBinTrycatch * rz_bin_trycatch_new(ut64 source, ut64 from, ut64 to, ut64 handler, ut64 filter)
RZ_API RzBinField * rz_bin_field_new(ut64 paddr, ut64 vaddr, int size, const char *name, const char *comment, const char *format, bool format_named)
RZ_API void rz_bin_trycatch_free(RzBinTrycatch *tc)
static bool load_buffer(RzBinFile *bf, RzBinObject *obj, RzBuffer *buf, Sdb *sdb)
static void destroy(RzBinFile *bf)
static ut64 baddr(RzBinFile *bf)
static Sdb * get_sdb(RzBinFile *bf)
static RzList * maps(RzBinFile *bf)
static RzBinAddr * binsym(RzBinFile *bf, RzBinSpecialSymbol sym)
static RzList * libs(RzBinFile *bf)
static ut64 get_offset(RzBinFile *bf, int type, int index)
RzList * entries(RzBinFile *bf)
RzBinInfo * info(RzBinFile *bf)
RzList * symbols(RzBinFile *bf)
RzList * imports(RzBinFile *bf)
RzList * sections(RzBinFile *bf)
RzList * relocs(RzBinFile *bf)
static ut64 get_vaddr(RzBinFile *bf, ut64 baddr, ut64 paddr, ut64 vaddr)
static void header(RzBinFile *bf)
static ut64 rva_to_paddr(const struct rz_bin_pe_section_t *section, ut64 rva)
static RzList * fields(RzBinFile *bf)
RZ_API RzLibStruct rizin_plugin
static bool check_buffer(RzBuffer *b)
static const struct rz_bin_pe_section_t * get_section(RzBinPEObj *bin, const struct rz_bin_pe_section_t *unwind_data_section, PE_DWord rva)
static int find_section(RzBinPEObj *bin, PE_DWord rva)
RzBinPlugin rz_bin_plugin_pe64
#define ROWL(nam, siz, val, fmt)
static RzList * trycatch(RzBinFile *bf)
static ut64 rva(RzBinObject *o, ut64 paddr, ut64 vaddr, int va)
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 static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
checking print the parsed form of the magic use in n conjunction with m to debug a new magic file n before installing it n output MIME type strings(--mime-type and\n"
" --mime-encoding)\n") OPT('s'
#define offsetof(type, member)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
RZ_API RZ_BORROW RzListIter * rz_list_append(RZ_NONNULL RzList *list, void *data)
Appends at the end of the list a new element.
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
RzList *MACH0_() section_flag_to_rzlist(ut64 flag)
#define PE_IMAGE_DIRECTORY_ENTRY_EXCEPTION
#define PE_IMAGE_DIRECTORY_ENTRY_COPYRIGHT
#define PE_IMAGE_DIRECTORY_ENTRY_IMPORT
#define PE_IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
#define PE_IMAGE_DIRECTORY_ENTRY_RESOURCE
#define PE_IMAGE_DIRECTORY_ENTRY_BASERELOC
#define PE64_UNW_FLAG_EHANDLER
#define PE_IMAGE_DIRECTORY_ENTRY_DEBUG
#define PE_IMAGE_DIRECTORY_ENTRY_SECURITY
#define PE_IMAGE_DIRECTORY_ENTRY_IAT
#define PE64_UNW_FLAG_CHAININFO
#define PE_IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
#define PE_IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
#define PE_IMAGE_DIRECTORY_ENTRY_GLOBALPTR
#define PE_IMAGE_DIRECTORY_ENTRIES
#define PE_IMAGE_DIRECTORY_ENTRY_EXPORT
#define PE_IMAGE_DIRECTORY_ENTRY_TLS
#define PE_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG
#define rz_buf_read_le16_at(b, addr, result)
RZ_API st64 rz_buf_read_at(RZ_NONNULL RzBuffer *b, ut64 addr, RZ_NONNULL RZ_OUT ut8 *buf, ut64 len)
Read len bytes of the buffer at the specified address.
RZ_API ut64 rz_buf_size(RZ_NONNULL RzBuffer *b)
Return the size of the buffer.
static ut32 rz_read_ble32(const void *src, bool big_endian)
void(* RzListFree)(void *ptr)
ut64 baseaddr
where the linker maps the binary in memory
XX curplugin == o->plugin.
RzBinObjectLoadOptions opts
ut64(WINAPI *w32_GetEnabledXStateFeatures)()