Open cryptax opened 4 weeks ago
cid_x0
represents value from register x0
as class id. GDT is used for polymorphic call which can be dumped from dart::DispatchTable object. For more information, read https://mrale.ph/dartvm/#global-dispatch-table-gdt
In your case, it requires finding fields type in the class (similar to recovering C/C++ struct from assembly). Then, using cid to lookup the GDT. This feature is not easy to implement. I have to implement many features for reversing basic information before.
In my sample, Blutter outputs a
main.dart
which has the following:Actually
cid_x0
is not defined before, but from reading the assembly, it looks this isx0
. How can I normally know what class field this is accessing? Which class doescid_x0
represent?It would be helpful if the assembly output could be more detailed on GDT. From sample analysis, I know this is SMS body taken from the Telephony package, but it's difficult to work out from assembly...
Full
main.dart
: