138 #define ROWL(nam, siz, val, fmt) \
139 rz_list_append(ret, rz_bin_field_new(addr, addr, siz, nam, sdb_fmt("0x%08x", val), fmt, false));
142 ut64 addr =
bin->rich_header_offset ?
bin->rich_header_offset : 128;
146 rz_list_foreach (
bin->rich_entries, it, rich) {
156 ROWL(
"Signature", 4,
bin->nt_headers->Signature,
"x");
158 ROWL(
"Machine", 2,
bin->nt_headers->file_header.Machine,
"x");
160 ROWL(
"NumberOfSections", 2,
bin->nt_headers->file_header.NumberOfSections,
"x");
162 ROWL(
"TimeDateStamp", 4,
bin->nt_headers->file_header.TimeDateStamp,
"x");
164 ROWL(
"PointerToSymbolTable", 4,
bin->nt_headers->file_header.PointerToSymbolTable,
"x");
166 ROWL(
"NumberOfSymbols ", 4,
bin->nt_headers->file_header.NumberOfSymbols,
"x");
168 ROWL(
"SizeOfOptionalHeader", 2,
bin->nt_headers->file_header.SizeOfOptionalHeader,
"x");
170 ROWL(
"Characteristics", 2,
bin->nt_headers->file_header.Characteristics,
"x");
172 ROWL(
"Magic", 2,
bin->nt_headers->optional_header.Magic,
"x");
174 ROWL(
"MajorLinkerVersion", 1,
bin->nt_headers->optional_header.MajorLinkerVersion,
"x");
176 ROWL(
"MinorLinkerVersion", 1,
bin->nt_headers->optional_header.MinorLinkerVersion,
"x");
178 ROWL(
"SizeOfCode", 4,
bin->nt_headers->optional_header.SizeOfCode,
"x");
180 ROWL(
"SizeOfInitializedData", 4,
bin->nt_headers->optional_header.SizeOfInitializedData,
"x");
182 ROWL(
"SizeOfUninitializedData", 4,
bin->nt_headers->optional_header.SizeOfUninitializedData,
"x");
184 ROWL(
"AddressOfEntryPoint", 4,
bin->nt_headers->optional_header.AddressOfEntryPoint,
"x");
186 ROWL(
"BaseOfCode", 4,
bin->nt_headers->optional_header.BaseOfCode,
"x");
188 ROWL(
"BaseOfData", 4,
bin->nt_headers->optional_header.BaseOfData,
"x");
190 ROWL(
"ImageBase", 4,
bin->nt_headers->optional_header.ImageBase,
"x");
192 ROWL(
"SectionAlignment", 4,
bin->nt_headers->optional_header.SectionAlignment,
"x");
194 ROWL(
"FileAlignment", 4,
bin->nt_headers->optional_header.FileAlignment,
"x");
196 ROWL(
"MajorOperatingSystemVersion", 2,
bin->nt_headers->optional_header.MajorOperatingSystemVersion,
"x");
198 ROWL(
"MinorOperatingSystemVersion", 2,
bin->nt_headers->optional_header.MinorOperatingSystemVersion,
"x");
200 ROWL(
"MajorImageVersion", 2,
bin->nt_headers->optional_header.MajorImageVersion,
"x");
202 ROWL(
"MinorImageVersion", 2,
bin->nt_headers->optional_header.MinorImageVersion,
"x");
204 ROWL(
"MajorSubsystemVersion", 2,
bin->nt_headers->optional_header.MajorSubsystemVersion,
"x");
206 ROWL(
"MinorSubsystemVersion", 2,
bin->nt_headers->optional_header.MinorSubsystemVersion,
"x");
208 ROWL(
"Win32VersionValue", 4,
bin->nt_headers->optional_header.Win32VersionValue,
"x");
210 ROWL(
"SizeOfImage", 4,
bin->nt_headers->optional_header.SizeOfImage,
"x");
212 ROWL(
"SizeOfHeaders", 4,
bin->nt_headers->optional_header.SizeOfHeaders,
"x");
214 ROWL(
"CheckSum", 4,
bin->nt_headers->optional_header.CheckSum,
"x");
216 ROWL(
"Subsystem", 24,
bin->nt_headers->optional_header.Subsystem,
"x");
218 ROWL(
"DllCharacteristics", 2,
bin->nt_headers->optional_header.DllCharacteristics,
"x");
220 ROWL(
"SizeOfStackReserve", 4,
bin->nt_headers->optional_header.SizeOfStackReserve,
"x");
222 ROWL(
"SizeOfStackCommit", 4,
bin->nt_headers->optional_header.SizeOfStackCommit,
"x");
224 ROWL(
"SizeOfHeapReserve", 4,
bin->nt_headers->optional_header.SizeOfHeapReserve,
"x");
226 ROWL(
"SizeOfHeapCommit", 4,
bin->nt_headers->optional_header.SizeOfHeapCommit,
"x");
228 ROWL(
"LoaderFlags", 4,
bin->nt_headers->optional_header.LoaderFlags,
"x");
230 ROWL(
"NumberOfRvaAndSizes", 4,
bin->nt_headers->optional_header.NumberOfRvaAndSizes,
"x");
236 if (
bin->nt_headers->optional_header.DataDirectory[
i].Size > 0) {
240 ROWL(
"IMAGE_DIRECTORY_ENTRY_EXPORT", 4,
241 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
243 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_EXPORT", 4,
244 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
247 ROWL(
"IMAGE_DIRECTORY_ENTRY_IMPORT", 4,
248 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
250 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_IMPORT", 4,
251 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
254 ROWL(
"IMAGE_DIRECTORY_ENTRY_RESOURCE", 4,
255 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
257 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_RESOURCE", 4,
258 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
261 ROWL(
"IMAGE_DIRECTORY_ENTRY_EXCEPTION", 4,
262 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
264 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_EXCEPTION", 4,
265 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
268 ROWL(
"IMAGE_DIRECTORY_ENTRY_SECURITY", 4,
269 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
271 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_SECURITY", 4,
272 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
275 ROWL(
"IMAGE_DIRECTORY_ENTRY_BASERELOC", 4,
276 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
278 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_BASERELOC", 4,
279 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
282 ROWL(
"IMAGE_DIRECTORY_ENTRY_DEBUG", 4,
283 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
285 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_DEBUG", 4,
286 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
289 ROWL(
"IMAGE_DIRECTORY_ENTRY_COPYRIGHT", 4,
290 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
292 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_COPYRIGHT", 4,
293 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
296 ROWL(
"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", 4,
297 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
299 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_GLOBALPTR", 4,
300 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
303 ROWL(
"IMAGE_DIRECTORY_ENTRY_TLS", 4,
304 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
306 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_TLS", 4,
307 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
310 ROWL(
"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", 4,
311 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
313 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", 4,
314 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
317 ROWL(
"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", 4,
318 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
320 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", 4,
321 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
324 ROWL(
"IMAGE_DIRECTORY_ENTRY_IAT", 4,
325 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
327 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_IAT", 4,
328 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
331 ROWL(
"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", 4,
332 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
334 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", 4,
335 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
338 ROWL(
"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", 4,
339 bin->nt_headers->optional_header.DataDirectory[
i].VirtualAddress,
"x");
341 ROWL(
"SIZE_IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", 4,
342 bin->nt_headers->optional_header.DataDirectory[
i].Size,
"x");
RZ_API void rz_bin_field_free(RzBinField *field)
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)
#define ROWL(nam, siz, val, fmt)
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")
#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 PE_IMAGE_DIRECTORY_ENTRY_DEBUG
#define PE_IMAGE_DIRECTORY_ENTRY_SECURITY
#define PE_IMAGE_DIRECTORY_ENTRY_IAT
#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
void(* RzListFree)(void *ptr)