Rizin
unix-like reverse engineering framework and cli tools
bin_dex.c File Reference
#include <rz_bin.h>
#include "dex/dex.h"

Go to the source code of this file.

Macros

#define rz_bin_file_get_dex(bf)   ((RzBinDex *)bf->o->bin_obj)
 

Functions

static RzBinInfoinfo (RzBinFile *bf)
 
static bool load_buffer (RzBinFile *bf, RzBinObject *obj, RzBuffer *buf, Sdb *sdb)
 
static void destroy (RzBinFile *bf)
 
static bool check_buffer (RzBuffer *b)
 
static ut64 baddr (RzBinFile *bf)
 
static Sdbget_sdb (RzBinFile *bf)
 
static RzListclasses (RzBinFile *bf)
 
static RzListimports (RzBinFile *bf)
 
static RzListsections (RzBinFile *bf)
 
static RzListsymbols (RzBinFile *bf)
 
static RzListfields (RzBinFile *bf)
 
static RzListlibraries (RzBinFile *bf)
 
static RzBinAddrbinsym (RzBinFile *bf, RzBinSpecialSymbol sym)
 
static RzListentrypoints (RzBinFile *bf)
 
static RzListstrings (RzBinFile *bf)
 
static RzListvirtual_files (RzBinFile *bf)
 
static int demangle_type (const char *str)
 
static char * get_name (RzBinFile *bf, int type, int index)
 
static ut64 get_offset (RzBinFile *bf, int type, int index)
 
static RzListmaps (RzBinFile *bf)
 

Variables

RzBinPlugin rz_bin_plugin_dex
 
RZ_API RzLibStruct rizin_plugin
 

Macro Definition Documentation

◆ rz_bin_file_get_dex

#define rz_bin_file_get_dex (   bf)    ((RzBinDex *)bf->o->bin_obj)

Definition at line 8 of file bin_dex.c.

Function Documentation

◆ baddr()

static ut64 baddr ( RzBinFile bf)
static

Definition at line 63 of file bin_dex.c.

63  {
64  return 0;
65 }

◆ binsym()

static RzBinAddr* binsym ( RzBinFile bf,
RzBinSpecialSymbol  sym 
)
static

Definition at line 125 of file bin_dex.c.

125  {
126  RzBinDex *dex = rz_bin_file_get_dex(bf);
127  if (!dex) {
128  return NULL;
129  }
130 
131  return rz_bin_dex_resolve_symbol(dex, sym);
132 }
#define rz_bin_file_get_dex(bf)
Definition: bin_dex.c:8
#define NULL
Definition: cris-opc.c:27
RZ_API RZ_OWN RzBinAddr * rz_bin_dex_resolve_symbol(RZ_NONNULL RzBinDex *dex, RzBinSpecialSymbol resolve)
Returns a RzBinAddr pointer containing the resolved RzBinSpecialSymbol.
Definition: dex.c:1670
Definition: dex.h:160

References NULL, rz_bin_dex_resolve_symbol(), and rz_bin_file_get_dex.

◆ check_buffer()

static bool check_buffer ( RzBuffer b)
static

Definition at line 54 of file bin_dex.c.

54  {
55  if (rz_buf_size(b) > 32) {
56  ut8 buf[4] = { 0 };
57  rz_buf_read_at(b, 0, buf, sizeof(buf));
58  return !memcmp(buf, "dex\n", 4);
59  }
60  return false;
61 }
voidpf void * buf
Definition: ioapi.h:138
uint8_t ut8
Definition: lh5801.h:11
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.
Definition: buf.c:1136
RZ_API ut64 rz_buf_size(RZ_NONNULL RzBuffer *b)
Return the size of the buffer.
Definition: buf.c:1225
#define b(i)
Definition: sha256.c:42

References b, rz_buf_read_at(), and rz_buf_size().

◆ classes()

static RzList* classes ( RzBinFile bf)
static

Definition at line 71 of file bin_dex.c.

71  {
72  RzBinDex *dex = rz_bin_file_get_dex(bf);
73  if (!dex) {
74  return NULL;
75  }
76 
77  return rz_bin_dex_classes(dex);
78 }
RZ_API RZ_OWN RzList * rz_bin_dex_classes(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinClass*> containing the dex classes.
Definition: dex.c:1131

References NULL, rz_bin_dex_classes(), and rz_bin_file_get_dex.

Referenced by adjust_class(), compute_pos(), place_nodes(), rz_analysis_class_get_inheritance_graph(), rz_analysis_class_list_handler(), rz_analysis_class_recover_from_rzbin(), rz_analysis_class_vtable_lookup_handler(), rz_bin_dex_classes(), rz_bin_object_set_items(), rz_core_visual_hudclasses(), and rz_diff_classes_new().

◆ demangle_type()

static int demangle_type ( const char *  str)
static

Definition at line 181 of file bin_dex.c.

181  {
182  return RZ_BIN_LANGUAGE_JAVA;
183 }
@ RZ_BIN_LANGUAGE_JAVA
Definition: rz_bin.h:147

References RZ_BIN_LANGUAGE_JAVA.

◆ destroy()

static void destroy ( RzBinFile bf)
static

Definition at line 50 of file bin_dex.c.

50  {
52 }
RZ_API void rz_bin_dex_free(RZ_NULLABLE RzBinDex *dex)
Frees a RzBinDex struct.
Definition: dex.c:649

References rz_bin_dex_free(), and rz_bin_file_get_dex.

◆ entrypoints()

static RzList* entrypoints ( RzBinFile bf)
static

Definition at line 134 of file bin_dex.c.

134  {
135  RzBinDex *dex = rz_bin_file_get_dex(bf);
136  if (!dex) {
137  return NULL;
138  }
139 
140  return rz_bin_dex_entrypoints(dex);
141 }
RZ_API RZ_OWN RzList * rz_bin_dex_entrypoints(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinAddr*> containing the dex entripoints.
Definition: dex.c:1792

References NULL, rz_bin_dex_entrypoints(), and rz_bin_file_get_dex.

Referenced by dex_resolve_entrypoints_in_class(), and rz_bin_dex_entrypoints().

◆ fields()

static RzList* fields ( RzBinFile bf)
static

Definition at line 107 of file bin_dex.c.

107  {
108  RzBinDex *dex = rz_bin_file_get_dex(bf);
109  if (!dex) {
110  return NULL;
111  }
112 
113  return rz_bin_dex_fields(dex);
114 }
RZ_API RZ_OWN RzList * rz_bin_dex_fields(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinField*> containing the dex fields.
Definition: dex.c:1232

References NULL, rz_bin_dex_fields(), and rz_bin_file_get_dex.

◆ get_name()

static char* get_name ( RzBinFile bf,
int  type,
int  index 
)
static

Definition at line 185 of file bin_dex.c.

185  {
186  RzBinDex *dex = rz_bin_file_get_dex(bf);
187  if (!dex) {
188  return NULL;
189  }
190  switch (type) {
191  case 'm': // method
192  return rz_bin_dex_resolve_method_by_idx(dex, index);
193  case 'f': // field
194  return rz_bin_dex_resolve_field_by_idx(dex, index);
195  case 's': // string
196  return rz_bin_dex_resolve_string_by_idx(dex, index);
197  case 'c': // class
198  return rz_bin_dex_resolve_class_by_idx(dex, index);
199  case 'p': // proto
200  return rz_bin_dex_resolve_proto_by_idx(dex, index);
201  default:
202  return NULL;
203  }
204 }
RZ_API RZ_OWN char * rz_bin_dex_resolve_class_by_idx(RZ_NONNULL RzBinDex *dex, ut32 class_idx)
Returns the resolved string linked to the given class id.
Definition: dex.c:1972
RZ_API RZ_OWN char * rz_bin_dex_resolve_string_by_idx(RZ_NONNULL RzBinDex *dex, ut32 string_idx)
Returns the resolved string linked to the given string id.
Definition: dex.c:1963
RZ_API RZ_OWN char * rz_bin_dex_resolve_method_by_idx(RZ_NONNULL RzBinDex *dex, ut32 method_idx)
Returns the resolved string linked to the given method id.
Definition: dex.c:1829
RZ_API RZ_OWN char * rz_bin_dex_resolve_field_by_idx(RZ_NONNULL RzBinDex *dex, ut32 field_idx)
Returns the resolved string linked to the given field id.
Definition: dex.c:1863
RZ_API RZ_OWN char * rz_bin_dex_resolve_proto_by_idx(RZ_NONNULL RzBinDex *dex, ut32 proto_idx)
Returns the resolved string linked to the given prototype id.
Definition: dex.c:1981
int type
Definition: mipsasm.c:17

References NULL, rz_bin_dex_resolve_class_by_idx(), rz_bin_dex_resolve_field_by_idx(), rz_bin_dex_resolve_method_by_idx(), rz_bin_dex_resolve_proto_by_idx(), rz_bin_dex_resolve_string_by_idx(), rz_bin_file_get_dex, and type.

◆ get_offset()

static ut64 get_offset ( RzBinFile bf,
int  type,
int  index 
)
static

Definition at line 206 of file bin_dex.c.

206  {
207  RzBinDex *dex = rz_bin_file_get_dex(bf);
208  if (!dex) {
209  return -1;
210  }
211  switch (type) {
212  case 'm': // method
213  return rz_bin_dex_resolve_method_offset_by_idx(dex, index);
214  case 's': // strings
215  return rz_bin_dex_resolve_string_offset_by_idx(dex, index);
216  case 't': // type
217  return rz_bin_dex_resolve_type_id_offset_by_idx(dex, index);
218  case 'c': // class
219  return rz_bin_dex_resolve_type_id_offset_by_idx(dex, index);
220  case 'o': // objects
221  default:
222  return -1;
223  }
224 }
RZ_API ut64 rz_bin_dex_resolve_method_offset_by_idx(RZ_NONNULL RzBinDex *dex, ut32 method_idx)
Returns the resolved offset linked to the given method id.
Definition: dex.c:1928
RZ_API ut64 rz_bin_dex_resolve_string_offset_by_idx(RZ_NONNULL RzBinDex *dex, ut32 string_idx)
Returns the resolved offset linked to the given string id.
Definition: dex.c:1900
RZ_API ut64 rz_bin_dex_resolve_type_id_offset_by_idx(RZ_NONNULL RzBinDex *dex, ut32 type_idx)
Returns the resolved offset linked to the given type id.
Definition: dex.c:1914

References rz_bin_dex_resolve_method_offset_by_idx(), rz_bin_dex_resolve_string_offset_by_idx(), rz_bin_dex_resolve_type_id_offset_by_idx(), rz_bin_file_get_dex, and type.

Referenced by analyze_InlineMethod(), and rz_main_rz_gg().

◆ get_sdb()

static Sdb* get_sdb ( RzBinFile bf)
static

Definition at line 67 of file bin_dex.c.

67  {
68  return bf->sdb;
69 }
RZ_DEPRECATE Sdb * sdb
deprecated, put info in C structures instead of this
Definition: rz_bin.h:315

References rz_bin_file_t::sdb.

◆ imports()

static RzList* imports ( RzBinFile bf)
static

Definition at line 80 of file bin_dex.c.

80  {
81  RzBinDex *dex = rz_bin_file_get_dex(bf);
82  if (!dex) {
83  return NULL;
84  }
85 
86  return rz_bin_dex_imports(dex);
87 }
RZ_API RZ_OWN RzList * rz_bin_dex_imports(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinImport*> containing the dex imports.
Definition: dex.c:1379

References NULL, rz_bin_dex_imports(), and rz_bin_file_get_dex.

◆ info()

static RzBinInfo* info ( RzBinFile bf)
static

Definition at line 10 of file bin_dex.c.

10  {
11  RzBinDex *dex = rz_bin_file_get_dex(bf);
12  if (!dex) {
13  return NULL;
14  }
15 
16  RzBinInfo *binfo = RZ_NEW0(RzBinInfo);
17  if (!binfo) {
18  return NULL;
19  }
20 
21  binfo->lang = "java";
22  binfo->file = strdup(bf->file);
23  binfo->type = strdup("DEX CLASS");
24  binfo->bclass = rz_bin_dex_version(dex);
25  binfo->has_va = true;
26  binfo->rclass = strdup("class");
27  binfo->os = strdup("linux");
28  binfo->subsystem = strdup("any");
29  binfo->machine = strdup("Dalvik VM");
30  binfo->arch = strdup("dalvik");
31  binfo->bits = 32;
32  binfo->big_endian = false;
33  binfo->dbg_info = rz_bin_dex_debug_info(dex);
34 
35  rz_bin_dex_checksum(dex, &binfo->sum[0]);
36  rz_bin_dex_sha1(dex, &binfo->sum[1]);
37 
38  return binfo;
39 }
RZ_API void rz_bin_dex_checksum(RZ_NONNULL RzBinDex *dex, RZ_NONNULL RzBinHash *hash)
Sets the RzBinHash dex checksum (adler32)
Definition: dex.c:1990
RZ_API ut64 rz_bin_dex_debug_info(RZ_NONNULL RzBinDex *dex)
Returns the dex debug info RzBin values.
Definition: dex.c:2041
RZ_API RZ_OWN char * rz_bin_dex_version(RZ_NONNULL RzBinDex *dex)
Returns the dex version (string format)
Definition: dex.c:2016
RZ_API void rz_bin_dex_sha1(RZ_NONNULL RzBinDex *dex, RZ_NONNULL RzBinHash *hash)
Sets the RzBinHash dex digest (sha1)
Definition: dex.c:2003
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 RZ_NEW0(x)
Definition: rz_types.h:284
char * file
Definition: rz_bin.h:299
int has_va
Definition: rz_bin.h:228
char * type
Definition: rz_bin.h:211
char * os
Definition: rz_bin.h:219
char * subsystem
Definition: rz_bin.h:220
char * machine
Definition: rz_bin.h:216
const char * lang
Definition: rz_bin.h:224
char * bclass
Definition: rz_bin.h:212
char * file
Definition: rz_bin.h:210
ut64 dbg_info
Definition: rz_bin.h:240
RzBinHash sum[3]
Definition: rz_bin.h:241
char * rclass
Definition: rz_bin.h:213
char * arch
Definition: rz_bin.h:214
int big_endian
Definition: rz_bin.h:235

References rz_bin_info_t::arch, rz_bin_info_t::bclass, rz_bin_info_t::big_endian, rz_bin_info_t::bits, rz_bin_info_t::dbg_info, rz_bin_info_t::file, rz_bin_file_t::file, rz_bin_info_t::has_va, rz_bin_info_t::lang, rz_bin_info_t::machine, NULL, rz_bin_info_t::os, rz_bin_info_t::rclass, rz_bin_dex_checksum(), rz_bin_dex_debug_info(), rz_bin_dex_sha1(), rz_bin_dex_version(), rz_bin_file_get_dex, RZ_NEW0, strdup(), rz_bin_info_t::subsystem, rz_bin_info_t::sum, and rz_bin_info_t::type.

◆ libraries()

static RzList* libraries ( RzBinFile bf)
static

Definition at line 116 of file bin_dex.c.

116  {
117  RzBinDex *dex = rz_bin_file_get_dex(bf);
118  if (!dex) {
119  return NULL;
120  }
121 
122  return rz_bin_dex_libraries(dex);
123 }
RZ_API RZ_OWN RzList * rz_bin_dex_libraries(RZ_NONNULL RzBinDex *dex)
Returns a RzList<char*> containing the dex libraries.
Definition: dex.c:1520

References NULL, rz_bin_dex_libraries(), and rz_bin_file_get_dex.

Referenced by rz_bin_dex_libraries().

◆ load_buffer()

static bool load_buffer ( RzBinFile bf,
RzBinObject obj,
RzBuffer buf,
Sdb sdb 
)
static

Definition at line 41 of file bin_dex.c.

41  {
42  RzBinDex *dex = rz_bin_dex_new(buf, obj->opts.loadaddr, sdb);
43  if (!dex) {
44  return false;
45  }
46  obj->bin_obj = dex;
47  return true;
48 }
RZ_API RZ_OWN RzBinDex * rz_bin_dex_new(RZ_NONNULL RzBuffer *buf, ut64 base, RZ_NONNULL Sdb *kv)
Parses the dex file and returns a RzBinDex struct.
Definition: dex.c:669
ut64 loadaddr
starting physical address to read from the target file
Definition: rz_bin.h:249
RzBinObjectLoadOptions opts
Definition: rz_bin.h:260
void * bin_obj
Definition: rz_bin.h:293

References rz_bin_object_t::bin_obj, rz_bin_file_load_options_t::loadaddr, rz_bin_object_t::opts, and rz_bin_dex_new().

◆ maps()

static RzList* maps ( RzBinFile bf)
static

Definition at line 226 of file bin_dex.c.

226  {
228  RzListIter *iter;
229  RzBinMap *map;
230 
231  rz_list_foreach (maps, iter, map) {
232  if (strcmp(map->name, RZ_DEX_RELOC_TARGETS)) {
233  continue;
234  }
235  map->vfile_name = strdup(RZ_DEX_RELOC_TARGETS);
236  }
237  return maps;
238 }
RZ_API RZ_OWN RzList * rz_bin_maps_of_file_sections(RZ_NONNULL RzBinFile *binfile)
Create a list of RzBinMap from RzBinSections queried from the given file.
Definition: bin.c:1040
static RzList * maps(RzBinFile *bf)
Definition: bin_dex.c:226
size_t map(int syms, int left, int len)
Definition: enough.c:237
#define RZ_DEX_RELOC_TARGETS
Definition: dex.h:12
Description of a single memory mapping into virtual memory from a binary.
Definition: rz_bin.h:602

References map(), rz_bin_maps_of_file_sections(), RZ_DEX_RELOC_TARGETS, and strdup().

◆ sections()

static RzList* sections ( RzBinFile bf)
static

Definition at line 89 of file bin_dex.c.

89  {
90  RzBinDex *dex = rz_bin_file_get_dex(bf);
91  if (!dex) {
92  return NULL;
93  }
94 
95  return rz_bin_dex_sections(dex);
96 }
RZ_API RZ_OWN RzList * rz_bin_dex_sections(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinSection*> containing the dex sections.
Definition: dex.c:1200

References NULL, rz_bin_dex_sections(), and rz_bin_file_get_dex.

◆ strings()

static RzList* strings ( RzBinFile bf)
static

Definition at line 143 of file bin_dex.c.

143  {
144  RzBinDex *dex = rz_bin_file_get_dex(bf);
145  if (!dex) {
146  return NULL;
147  }
148 
149  return rz_bin_dex_strings(dex);
150 }
RZ_API RZ_OWN RzList * rz_bin_dex_strings(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinString*> containing the dex strings.
Definition: dex.c:735

References NULL, rz_bin_dex_strings(), and rz_bin_file_get_dex.

◆ symbols()

static RzList* symbols ( RzBinFile bf)
static

Definition at line 98 of file bin_dex.c.

98  {
99  RzBinDex *dex = rz_bin_file_get_dex(bf);
100  if (!dex) {
101  return NULL;
102  }
103 
104  return rz_bin_dex_symbols(dex);
105 }
RZ_API RZ_OWN RzList * rz_bin_dex_symbols(RZ_NONNULL RzBinDex *dex)
Returns a RzList<RzBinSymbol*> containing the dex symbols.
Definition: dex.c:1267

References NULL, rz_bin_dex_symbols(), and rz_bin_file_get_dex.

◆ virtual_files()

static RzList* virtual_files ( RzBinFile bf)
static

Definition at line 152 of file bin_dex.c.

152  {
153  RzBinDex *dex = rz_bin_file_get_dex(bf);
154  if (!dex) {
155  return NULL;
156  }
157 
159  if (!buffer) {
160  return NULL;
161  }
162 
164  if (!vfiles) {
165  return NULL;
166  }
167 
169  if (!vf) {
171  return vfiles;
172  }
173  vf->buf = buffer;
174  vf->buf_owned = false;
176 
177  rz_list_push(vfiles, vf);
178  return vfiles;
179 }
RZ_API void rz_bin_virtual_file_free(RzBinVirtualFile *vfile)
Definition: bin.c:1012
struct buffer buffer
RZ_API RZ_BORROW RzBuffer * rz_bin_dex_relocations(RZ_NONNULL RzBinDex *dex)
Definition: dex.c:1821
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
Definition: list.c:248
RZ_API RZ_BORROW RzListIter * rz_list_push(RZ_NONNULL RzList *list, void *item)
Alias for rz_list_append.
Definition: list.c:60
RZ_API void rz_buf_free(RzBuffer *b)
Free all internal data hold by the buffer and the buffer.
Definition: buf.c:1253
void(* RzListFree)(void *ptr)
Definition: rz_list.h:11
Definition: buffer.h:15
RZ_NONNULL RzBuffer * buf
Definition: rz_bin.h:597
bool buf_owned
whether buf is owned and freed by this RzBinVirtualFile
Definition: rz_bin.h:598
RZ_OWN RZ_NONNULL char * name
Definition: rz_bin.h:596

References rz_bin_virtual_file_t::buf, rz_bin_virtual_file_t::buf_owned, rz_bin_virtual_file_t::name, NULL, rz_bin_dex_relocations(), rz_bin_file_get_dex, rz_bin_virtual_file_free(), rz_buf_free(), RZ_DEX_RELOC_TARGETS, rz_list_newf(), rz_list_push(), RZ_NEW0, and strdup().

Variable Documentation

◆ rizin_plugin

RZ_API RzLibStruct rizin_plugin
Initial value:
= {
.type = RZ_LIB_TYPE_BIN,
}
RzBinPlugin rz_bin_plugin_dex
Definition: bin_dex.c:240
@ RZ_LIB_TYPE_BIN
Definition: rz_lib.h:75
#define RZ_VERSION
Definition: rz_version.h:8
char * version
Definition: rz_bin.h:512

Definition at line 268 of file bin_dex.c.

◆ rz_bin_plugin_dex

RzBinPlugin rz_bin_plugin_dex
Initial value:
= {
.name = "dex",
.desc = "dex bin plugin",
.license = "LGPL3",
.get_sdb = &get_sdb,
.load_buffer = &load_buffer,
.destroy = &destroy,
.check_buffer = &check_buffer,
.baddr = &baddr,
.binsym = &binsym,
.entries = &entrypoints,
.virtual_files = &virtual_files,
.maps = &maps,
.sections = sections,
.symbols = symbols,
.imports = &imports,
.strings = &strings,
.get_name = &get_name,
.get_offset = &get_offset,
.info = &info,
.fields = fields,
.libs = libraries,
.classes = classes,
.demangle_type = demangle_type,
.minstrlen = 0,
}
static RzBinAddr * binsym(RzBinFile *bf, RzBinSpecialSymbol sym)
Definition: bin_dex.c:125
static Sdb * get_sdb(RzBinFile *bf)
Definition: bin_dex.c:67
static RzList * classes(RzBinFile *bf)
Definition: bin_dex.c:71
static bool load_buffer(RzBinFile *bf, RzBinObject *obj, RzBuffer *buf, Sdb *sdb)
Definition: bin_dex.c:41
static RzList * symbols(RzBinFile *bf)
Definition: bin_dex.c:98
static RzList * strings(RzBinFile *bf)
Definition: bin_dex.c:143
static RzList * fields(RzBinFile *bf)
Definition: bin_dex.c:107
static void destroy(RzBinFile *bf)
Definition: bin_dex.c:50
static ut64 get_offset(RzBinFile *bf, int type, int index)
Definition: bin_dex.c:206
static bool check_buffer(RzBuffer *b)
Definition: bin_dex.c:54
static RzList * virtual_files(RzBinFile *bf)
Definition: bin_dex.c:152
static RzBinInfo * info(RzBinFile *bf)
Definition: bin_dex.c:10
static ut64 baddr(RzBinFile *bf)
Definition: bin_dex.c:63
static char * get_name(RzBinFile *bf, int type, int index)
Definition: bin_dex.c:185
static RzList * sections(RzBinFile *bf)
Definition: bin_dex.c:89
static RzList * imports(RzBinFile *bf)
Definition: bin_dex.c:80
static RzList * libraries(RzBinFile *bf)
Definition: bin_dex.c:116
static int demangle_type(const char *str)
Definition: bin_dex.c:181
static RzList * entrypoints(RzBinFile *bf)
Definition: bin_dex.c:134

Definition at line 240 of file bin_dex.c.