18 if (sz >= 0x300 && !memcmp(
buf,
"\xca\xfe\xba\xbe", 4)) {
26 if (
off > 0 &&
off + 4 < sz) {
29 if (!memcmp(
buf,
"\xce\xfa\xed\xfe", 4) ||
30 !memcmp(
buf,
"\xfe\xed\xfa\xce", 4) ||
31 !memcmp(
buf,
"\xfe\xed\xfa\xcf", 4) ||
32 !memcmp(
buf,
"\xcf\xfa\xed\xfe", 4)) {
85 struct MACH0_(mach_header) *hdr =
MACH0_(get_hdr)(
arch->b);
103 if (!
bin->cur->xtr_obj) {
112 struct MACH0_(mach_header) *hdr =
MACH0_(get_hdr)(
arch->b);
140 for (
i = 1; data &&
i < narch;
i++) {
152 .
name =
"xtr.fatmach0",
153 .desc =
"fat mach0 bin extractor plugin",
165 #ifndef RZ_PLUGIN_INCORE
168 .data = &rz_bin_xtr_plugin_fatmach0,
RZ_API void rz_bin_xtrdata_free(void *data_)
RZ_API RzBinXtrData * rz_bin_xtrdata_new(RzBuffer *buf, ut64 offset, ut64 size, ut32 file_count, RzBinXtrMetadata *metadata)
static bool check_buffer(RzBuffer *buf)
RzBinXtrPlugin rz_bin_xtr_plugin_xtr_fatmach0
static RzBinXtrData * extract(RzBin *bin, int idx)
static RzList * oneshotall_buffer(RzBin *bin, RzBuffer *b)
static void free_xtr(void *xtr_obj)
static void destroy(RzBin *bin)
static int size(RzBin *bin)
RZ_API RzLibStruct rizin_plugin
static bool load(RzBin *bin)
static void fill_metadata_info_from_hdr(RzBinXtrMetadata *meta, struct MACH0_(mach_header) *hdr)
static bool checkHeader(RzBuffer *b)
static RzBinXtrData * oneshot_buffer(RzBin *bin, RzBuffer *b, int idx)
struct rz_bin_fatmach0_arch_t * rz_bin_fatmach0_extract(struct rz_bin_fatmach0_obj_t *bin, int idx, int *narch)
struct rz_bin_fatmach0_obj_t * rz_bin_fatmach0_from_buffer_new(RzBuffer *b)
struct rz_bin_fatmach0_obj_t * rz_bin_fatmach0_new(const char *file)
void * rz_bin_fatmach0_free(struct rz_bin_fatmach0_obj_t *bin)
RZ_API void Ht_() free(HtName_(Ht) *ht)
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")
char *MACH0_() get_filetype_from_hdr(struct MACH0_(mach_header) *hdr)
int MACH0_() get_bits_from_hdr(struct MACH0_(mach_header) *hdr)
const char *MACH0_() get_cputype_from_hdr(struct MACH0_(mach_header) *hdr)
char *MACH0_() get_cpusubtype_from_hdr(struct MACH0_(mach_header) *hdr)
#define rz_return_val_if_fail(expr, val)
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.
#define rz_buf_read_be32_at(b, addr, result)
RZ_API void rz_buf_free(RzBuffer *b)
Free all internal data hold by the buffer and the buffer.
RZ_API ut64 rz_buf_size(RZ_NONNULL RzBuffer *b)
Return the size of the buffer.
ut64(WINAPI *w32_GetEnabledXStateFeatures)()