From 7162a683b66b02c16b42a177600468a1ff56149d Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Mon, 1 Feb 2016 01:53:14 +0100 Subject: Defined all Dalvik instructions to get generated by d2c. --- .gitignore | 1 + ChangeLog | 307 +++++++++++++++ configure.ac | 1 + plugins/ropgadgets/finder.c | 2 +- src/analysis/disass/area.c | 4 +- src/arch/arm/v7/processor.c | 5 +- src/arch/dalvik/Makefile.am | 2 +- src/arch/dalvik/instruction.c | 31 +- src/arch/dalvik/instruction.h | 3 - src/arch/dalvik/opcodes/Makefile.am | 49 +-- src/arch/dalvik/opcodes/add.c | 419 -------------------- src/arch/dalvik/opcodes/aget.c | 302 -------------- src/arch/dalvik/opcodes/and.c | 263 ------------- src/arch/dalvik/opcodes/aput.c | 288 -------------- src/arch/dalvik/opcodes/array.c | 179 --------- src/arch/dalvik/opcodes/check.c | 66 ---- src/arch/dalvik/opcodes/cmp.c | 224 ----------- src/arch/dalvik/opcodes/const.c | 458 ---------------------- src/arch/dalvik/opcodes/div.c | 419 -------------------- src/arch/dalvik/opcodes/goto.c | 140 ------- src/arch/dalvik/opcodes/if.c | 473 ---------------------- src/arch/dalvik/opcodes/iget.c | 302 -------------- src/arch/dalvik/opcodes/instanceof.c | 68 ---- src/arch/dalvik/opcodes/invoke.c | 399 ------------------- src/arch/dalvik/opcodes/iput.c | 288 -------------- src/arch/dalvik/opcodes/monitor.c | 103 ----- src/arch/dalvik/opcodes/move.c | 536 ------------------------- src/arch/dalvik/opcodes/mul.c | 419 -------------------- src/arch/dalvik/opcodes/neg.c | 185 --------- src/arch/dalvik/opcodes/new.c | 107 ----- src/arch/dalvik/opcodes/nop.c | 66 ---- src/arch/dalvik/opcodes/not.c | 107 ----- src/arch/dalvik/opcodes/opcodes.h | 693 --------------------------------- src/arch/dalvik/opcodes/or.c | 263 ------------- src/arch/dalvik/opcodes/rem.c | 419 -------------------- src/arch/dalvik/opcodes/ret.c | 177 --------- src/arch/dalvik/opcodes/rsub.c | 107 ----- src/arch/dalvik/opcodes/sget.c | 302 -------------- src/arch/dalvik/opcodes/shl.c | 224 ----------- src/arch/dalvik/opcodes/shr.c | 224 ----------- src/arch/dalvik/opcodes/sput.c | 288 -------------- src/arch/dalvik/opcodes/sub.c | 341 ---------------- src/arch/dalvik/opcodes/switch.c | 103 ----- src/arch/dalvik/opcodes/throw.c | 66 ---- src/arch/dalvik/opcodes/to.c | 614 ----------------------------- src/arch/dalvik/opcodes/ushr.c | 224 ----------- src/arch/dalvik/opcodes/xor.c | 263 ------------- src/arch/dalvik/opdefs/Makefile.am | 268 +++++++++++++ src/arch/dalvik/opdefs/add_90.d | 30 ++ src/arch/dalvik/opdefs/add_9b.d | 30 ++ src/arch/dalvik/opdefs/add_a6.d | 30 ++ src/arch/dalvik/opdefs/add_ab.d | 30 ++ src/arch/dalvik/opdefs/add_b0.d | 30 ++ src/arch/dalvik/opdefs/add_bb.d | 30 ++ src/arch/dalvik/opdefs/add_c6.d | 30 ++ src/arch/dalvik/opdefs/add_cb.d | 30 ++ src/arch/dalvik/opdefs/add_d0.d | 30 ++ src/arch/dalvik/opdefs/add_d8.d | 30 ++ src/arch/dalvik/opdefs/aget_44.d | 30 ++ src/arch/dalvik/opdefs/aget_45.d | 30 ++ src/arch/dalvik/opdefs/aget_46.d | 30 ++ src/arch/dalvik/opdefs/aget_47.d | 30 ++ src/arch/dalvik/opdefs/aget_48.d | 30 ++ src/arch/dalvik/opdefs/aget_49.d | 30 ++ src/arch/dalvik/opdefs/aget_4a.d | 30 ++ src/arch/dalvik/opdefs/and_95.d | 30 ++ src/arch/dalvik/opdefs/and_a0.d | 30 ++ src/arch/dalvik/opdefs/and_b5.d | 30 ++ src/arch/dalvik/opdefs/and_c0.d | 30 ++ src/arch/dalvik/opdefs/and_d5.d | 30 ++ src/arch/dalvik/opdefs/and_dd.d | 30 ++ src/arch/dalvik/opdefs/aput_4b.d | 30 ++ src/arch/dalvik/opdefs/aput_4c.d | 30 ++ src/arch/dalvik/opdefs/aput_4d.d | 30 ++ src/arch/dalvik/opdefs/aput_4e.d | 30 ++ src/arch/dalvik/opdefs/aput_4f.d | 30 ++ src/arch/dalvik/opdefs/aput_50.d | 30 ++ src/arch/dalvik/opdefs/aput_51.d | 30 ++ src/arch/dalvik/opdefs/array_21.d | 30 ++ src/arch/dalvik/opdefs/array_24.d | 30 ++ src/arch/dalvik/opdefs/array_26.d | 30 ++ src/arch/dalvik/opdefs/check_1f.d | 30 ++ src/arch/dalvik/opdefs/cmp_31.d | 30 ++ src/arch/dalvik/opdefs/cmpg_2e.d | 30 ++ src/arch/dalvik/opdefs/cmpg_30.d | 30 ++ src/arch/dalvik/opdefs/cmpl_2d.d | 30 ++ src/arch/dalvik/opdefs/cmpl_2f.d | 30 ++ src/arch/dalvik/opdefs/const_12.d | 30 ++ src/arch/dalvik/opdefs/const_13.d | 30 ++ src/arch/dalvik/opdefs/const_14.d | 30 ++ src/arch/dalvik/opdefs/const_15.d | 30 ++ src/arch/dalvik/opdefs/const_16.d | 30 ++ src/arch/dalvik/opdefs/const_17.d | 30 ++ src/arch/dalvik/opdefs/const_18.d | 30 ++ src/arch/dalvik/opdefs/const_19.d | 30 ++ src/arch/dalvik/opdefs/const_1a.d | 30 ++ src/arch/dalvik/opdefs/const_1b.d | 30 ++ src/arch/dalvik/opdefs/const_1c.d | 30 ++ src/arch/dalvik/opdefs/div_93.d | 30 ++ src/arch/dalvik/opdefs/div_9e.d | 30 ++ src/arch/dalvik/opdefs/div_a9.d | 30 ++ src/arch/dalvik/opdefs/div_ae.d | 30 ++ src/arch/dalvik/opdefs/div_b3.d | 30 ++ src/arch/dalvik/opdefs/div_be.d | 30 ++ src/arch/dalvik/opdefs/div_c9.d | 30 ++ src/arch/dalvik/opdefs/div_ce.d | 30 ++ src/arch/dalvik/opdefs/div_d3.d | 30 ++ src/arch/dalvik/opdefs/div_db.d | 30 ++ src/arch/dalvik/opdefs/filled_25.d | 30 ++ src/arch/dalvik/opdefs/goto_28.d | 30 ++ src/arch/dalvik/opdefs/goto_29.d | 30 ++ src/arch/dalvik/opdefs/goto_2a.d | 30 ++ src/arch/dalvik/opdefs/if_32.d | 30 ++ src/arch/dalvik/opdefs/if_33.d | 30 ++ src/arch/dalvik/opdefs/if_34.d | 30 ++ src/arch/dalvik/opdefs/if_35.d | 30 ++ src/arch/dalvik/opdefs/if_36.d | 30 ++ src/arch/dalvik/opdefs/if_37.d | 30 ++ src/arch/dalvik/opdefs/if_38.d | 30 ++ src/arch/dalvik/opdefs/if_39.d | 30 ++ src/arch/dalvik/opdefs/if_3a.d | 30 ++ src/arch/dalvik/opdefs/if_3b.d | 30 ++ src/arch/dalvik/opdefs/if_3c.d | 30 ++ src/arch/dalvik/opdefs/if_3d.d | 30 ++ src/arch/dalvik/opdefs/iget_52.d | 30 ++ src/arch/dalvik/opdefs/iget_53.d | 30 ++ src/arch/dalvik/opdefs/iget_54.d | 30 ++ src/arch/dalvik/opdefs/iget_55.d | 30 ++ src/arch/dalvik/opdefs/iget_56.d | 30 ++ src/arch/dalvik/opdefs/iget_57.d | 30 ++ src/arch/dalvik/opdefs/iget_58.d | 30 ++ src/arch/dalvik/opdefs/instanceof_20.d | 30 ++ src/arch/dalvik/opdefs/invoke_6e.d | 30 ++ src/arch/dalvik/opdefs/invoke_6f.d | 30 ++ src/arch/dalvik/opdefs/invoke_70.d | 30 ++ src/arch/dalvik/opdefs/invoke_71.d | 30 ++ src/arch/dalvik/opdefs/invoke_72.d | 30 ++ src/arch/dalvik/opdefs/invoke_74.d | 30 ++ src/arch/dalvik/opdefs/invoke_75.d | 30 ++ src/arch/dalvik/opdefs/invoke_76.d | 30 ++ src/arch/dalvik/opdefs/invoke_77.d | 30 ++ src/arch/dalvik/opdefs/invoke_78.d | 30 ++ src/arch/dalvik/opdefs/iput_59.d | 30 ++ src/arch/dalvik/opdefs/iput_5a.d | 30 ++ src/arch/dalvik/opdefs/iput_5b.d | 30 ++ src/arch/dalvik/opdefs/iput_5c.d | 30 ++ src/arch/dalvik/opdefs/iput_5d.d | 30 ++ src/arch/dalvik/opdefs/iput_5e.d | 30 ++ src/arch/dalvik/opdefs/iput_5f.d | 30 ++ src/arch/dalvik/opdefs/monitor_1d.d | 30 ++ src/arch/dalvik/opdefs/monitor_1e.d | 30 ++ src/arch/dalvik/opdefs/move_01.d | 30 ++ src/arch/dalvik/opdefs/move_02.d | 30 ++ src/arch/dalvik/opdefs/move_03.d | 30 ++ src/arch/dalvik/opdefs/move_04.d | 30 ++ src/arch/dalvik/opdefs/move_05.d | 30 ++ src/arch/dalvik/opdefs/move_06.d | 30 ++ src/arch/dalvik/opdefs/move_07.d | 30 ++ src/arch/dalvik/opdefs/move_08.d | 30 ++ src/arch/dalvik/opdefs/move_09.d | 30 ++ src/arch/dalvik/opdefs/move_0a.d | 30 ++ src/arch/dalvik/opdefs/move_0b.d | 30 ++ src/arch/dalvik/opdefs/move_0c.d | 30 ++ src/arch/dalvik/opdefs/move_0d.d | 30 ++ src/arch/dalvik/opdefs/mul_92.d | 30 ++ src/arch/dalvik/opdefs/mul_9d.d | 30 ++ src/arch/dalvik/opdefs/mul_a8.d | 30 ++ src/arch/dalvik/opdefs/mul_ad.d | 30 ++ src/arch/dalvik/opdefs/mul_b2.d | 30 ++ src/arch/dalvik/opdefs/mul_bd.d | 30 ++ src/arch/dalvik/opdefs/mul_c8.d | 30 ++ src/arch/dalvik/opdefs/mul_cd.d | 30 ++ src/arch/dalvik/opdefs/mul_d2.d | 30 ++ src/arch/dalvik/opdefs/mul_da.d | 30 ++ src/arch/dalvik/opdefs/neg_7b.d | 30 ++ src/arch/dalvik/opdefs/neg_7d.d | 30 ++ src/arch/dalvik/opdefs/neg_7f.d | 30 ++ src/arch/dalvik/opdefs/neg_80.d | 30 ++ src/arch/dalvik/opdefs/new_22.d | 30 ++ src/arch/dalvik/opdefs/new_23.d | 30 ++ src/arch/dalvik/opdefs/nop_00.d | 30 ++ src/arch/dalvik/opdefs/not_7c.d | 30 ++ src/arch/dalvik/opdefs/not_7e.d | 30 ++ src/arch/dalvik/opdefs/or_96.d | 30 ++ src/arch/dalvik/opdefs/or_a1.d | 30 ++ src/arch/dalvik/opdefs/or_b6.d | 30 ++ src/arch/dalvik/opdefs/or_c1.d | 30 ++ src/arch/dalvik/opdefs/or_d6.d | 30 ++ src/arch/dalvik/opdefs/or_de.d | 30 ++ src/arch/dalvik/opdefs/rem_94.d | 30 ++ src/arch/dalvik/opdefs/rem_9f.d | 30 ++ src/arch/dalvik/opdefs/rem_aa.d | 30 ++ src/arch/dalvik/opdefs/rem_af.d | 30 ++ src/arch/dalvik/opdefs/rem_b4.d | 30 ++ src/arch/dalvik/opdefs/rem_bf.d | 30 ++ src/arch/dalvik/opdefs/rem_ca.d | 30 ++ src/arch/dalvik/opdefs/rem_cf.d | 30 ++ src/arch/dalvik/opdefs/rem_d4.d | 30 ++ src/arch/dalvik/opdefs/rem_dc.d | 30 ++ src/arch/dalvik/opdefs/return_0e.d | 30 ++ src/arch/dalvik/opdefs/return_0f.d | 30 ++ src/arch/dalvik/opdefs/return_10.d | 30 ++ src/arch/dalvik/opdefs/return_11.d | 30 ++ src/arch/dalvik/opdefs/rsub_d1.d | 30 ++ src/arch/dalvik/opdefs/rsub_d9.d | 30 ++ src/arch/dalvik/opdefs/sget_60.d | 30 ++ src/arch/dalvik/opdefs/sget_61.d | 30 ++ src/arch/dalvik/opdefs/sget_62.d | 30 ++ src/arch/dalvik/opdefs/sget_63.d | 30 ++ src/arch/dalvik/opdefs/sget_64.d | 30 ++ src/arch/dalvik/opdefs/sget_65.d | 30 ++ src/arch/dalvik/opdefs/sget_66.d | 30 ++ src/arch/dalvik/opdefs/shl_98.d | 30 ++ src/arch/dalvik/opdefs/shl_a3.d | 30 ++ src/arch/dalvik/opdefs/shl_b8.d | 30 ++ src/arch/dalvik/opdefs/shl_c3.d | 30 ++ src/arch/dalvik/opdefs/shl_e0.d | 30 ++ src/arch/dalvik/opdefs/shr_99.d | 30 ++ src/arch/dalvik/opdefs/shr_a4.d | 30 ++ src/arch/dalvik/opdefs/shr_b9.d | 30 ++ src/arch/dalvik/opdefs/shr_c4.d | 30 ++ src/arch/dalvik/opdefs/shr_e1.d | 30 ++ src/arch/dalvik/opdefs/sput_67.d | 30 ++ src/arch/dalvik/opdefs/sput_68.d | 30 ++ src/arch/dalvik/opdefs/sput_69.d | 30 ++ src/arch/dalvik/opdefs/sput_6a.d | 30 ++ src/arch/dalvik/opdefs/sput_6b.d | 30 ++ src/arch/dalvik/opdefs/sput_6c.d | 30 ++ src/arch/dalvik/opdefs/sput_6d.d | 30 ++ src/arch/dalvik/opdefs/sub_91.d | 30 ++ src/arch/dalvik/opdefs/sub_9c.d | 30 ++ src/arch/dalvik/opdefs/sub_a7.d | 30 ++ src/arch/dalvik/opdefs/sub_ac.d | 30 ++ src/arch/dalvik/opdefs/sub_b1.d | 30 ++ src/arch/dalvik/opdefs/sub_bc.d | 30 ++ src/arch/dalvik/opdefs/sub_c7.d | 30 ++ src/arch/dalvik/opdefs/sub_cc.d | 30 ++ src/arch/dalvik/opdefs/switch_2b.d | 30 ++ src/arch/dalvik/opdefs/switch_2c.d | 30 ++ src/arch/dalvik/opdefs/throw_27.d | 30 ++ src/arch/dalvik/opdefs/to_81.d | 30 ++ src/arch/dalvik/opdefs/to_82.d | 30 ++ src/arch/dalvik/opdefs/to_83.d | 30 ++ src/arch/dalvik/opdefs/to_84.d | 30 ++ src/arch/dalvik/opdefs/to_85.d | 30 ++ src/arch/dalvik/opdefs/to_86.d | 30 ++ src/arch/dalvik/opdefs/to_87.d | 30 ++ src/arch/dalvik/opdefs/to_88.d | 30 ++ src/arch/dalvik/opdefs/to_89.d | 30 ++ src/arch/dalvik/opdefs/to_8a.d | 30 ++ src/arch/dalvik/opdefs/to_8b.d | 30 ++ src/arch/dalvik/opdefs/to_8c.d | 30 ++ src/arch/dalvik/opdefs/to_8d.d | 30 ++ src/arch/dalvik/opdefs/to_8e.d | 30 ++ src/arch/dalvik/opdefs/to_8f.d | 30 ++ src/arch/dalvik/opdefs/ushr_9a.d | 30 ++ src/arch/dalvik/opdefs/ushr_a5.d | 30 ++ src/arch/dalvik/opdefs/ushr_ba.d | 30 ++ src/arch/dalvik/opdefs/ushr_c5.d | 30 ++ src/arch/dalvik/opdefs/ushr_e2.d | 30 ++ src/arch/dalvik/opdefs/xor_97.d | 30 ++ src/arch/dalvik/opdefs/xor_a2.d | 30 ++ src/arch/dalvik/opdefs/xor_b7.d | 30 ++ src/arch/dalvik/opdefs/xor_c2.d | 30 ++ src/arch/dalvik/opdefs/xor_d7.d | 30 ++ src/arch/dalvik/opdefs/xor_df.d | 30 ++ src/arch/dalvik/processor.c | 198 +++++----- src/arch/dalvik/pseudo/fill.c | 32 +- src/arch/dalvik/pseudo/fill.h | 2 +- src/arch/dalvik/pseudo/switch.c | 35 +- src/arch/dalvik/pseudo/switch.h | 2 +- src/arch/processor-int.h | 2 +- src/arch/processor.c | 5 +- src/arch/processor.h | 2 +- src/format/dex/method.c | 2 +- src/glibext/gbufferline.c | 16 +- tools/d2c/d2c.mk | 2 +- 277 files changed, 7297 insertions(+), 10333 deletions(-) delete mode 100644 src/arch/dalvik/opcodes/add.c delete mode 100644 src/arch/dalvik/opcodes/aget.c delete mode 100644 src/arch/dalvik/opcodes/and.c delete mode 100644 src/arch/dalvik/opcodes/aput.c delete mode 100644 src/arch/dalvik/opcodes/array.c delete mode 100644 src/arch/dalvik/opcodes/check.c delete mode 100644 src/arch/dalvik/opcodes/cmp.c delete mode 100644 src/arch/dalvik/opcodes/const.c delete mode 100644 src/arch/dalvik/opcodes/div.c delete mode 100644 src/arch/dalvik/opcodes/goto.c delete mode 100644 src/arch/dalvik/opcodes/if.c delete mode 100644 src/arch/dalvik/opcodes/iget.c delete mode 100644 src/arch/dalvik/opcodes/instanceof.c delete mode 100644 src/arch/dalvik/opcodes/invoke.c delete mode 100644 src/arch/dalvik/opcodes/iput.c delete mode 100644 src/arch/dalvik/opcodes/monitor.c delete mode 100644 src/arch/dalvik/opcodes/move.c delete mode 100644 src/arch/dalvik/opcodes/mul.c delete mode 100644 src/arch/dalvik/opcodes/neg.c delete mode 100644 src/arch/dalvik/opcodes/new.c delete mode 100644 src/arch/dalvik/opcodes/nop.c delete mode 100644 src/arch/dalvik/opcodes/not.c delete mode 100644 src/arch/dalvik/opcodes/opcodes.h delete mode 100644 src/arch/dalvik/opcodes/or.c delete mode 100644 src/arch/dalvik/opcodes/rem.c delete mode 100644 src/arch/dalvik/opcodes/ret.c delete mode 100644 src/arch/dalvik/opcodes/rsub.c delete mode 100644 src/arch/dalvik/opcodes/sget.c delete mode 100644 src/arch/dalvik/opcodes/shl.c delete mode 100644 src/arch/dalvik/opcodes/shr.c delete mode 100644 src/arch/dalvik/opcodes/sput.c delete mode 100644 src/arch/dalvik/opcodes/sub.c delete mode 100644 src/arch/dalvik/opcodes/switch.c delete mode 100644 src/arch/dalvik/opcodes/throw.c delete mode 100644 src/arch/dalvik/opcodes/to.c delete mode 100644 src/arch/dalvik/opcodes/ushr.c delete mode 100644 src/arch/dalvik/opcodes/xor.c create mode 100644 src/arch/dalvik/opdefs/Makefile.am create mode 100644 src/arch/dalvik/opdefs/add_90.d create mode 100644 src/arch/dalvik/opdefs/add_9b.d create mode 100644 src/arch/dalvik/opdefs/add_a6.d create mode 100644 src/arch/dalvik/opdefs/add_ab.d create mode 100644 src/arch/dalvik/opdefs/add_b0.d create mode 100644 src/arch/dalvik/opdefs/add_bb.d create mode 100644 src/arch/dalvik/opdefs/add_c6.d create mode 100644 src/arch/dalvik/opdefs/add_cb.d create mode 100644 src/arch/dalvik/opdefs/add_d0.d create mode 100644 src/arch/dalvik/opdefs/add_d8.d create mode 100644 src/arch/dalvik/opdefs/aget_44.d create mode 100644 src/arch/dalvik/opdefs/aget_45.d create mode 100644 src/arch/dalvik/opdefs/aget_46.d create mode 100644 src/arch/dalvik/opdefs/aget_47.d create mode 100644 src/arch/dalvik/opdefs/aget_48.d create mode 100644 src/arch/dalvik/opdefs/aget_49.d create mode 100644 src/arch/dalvik/opdefs/aget_4a.d create mode 100644 src/arch/dalvik/opdefs/and_95.d create mode 100644 src/arch/dalvik/opdefs/and_a0.d create mode 100644 src/arch/dalvik/opdefs/and_b5.d create mode 100644 src/arch/dalvik/opdefs/and_c0.d create mode 100644 src/arch/dalvik/opdefs/and_d5.d create mode 100644 src/arch/dalvik/opdefs/and_dd.d create mode 100644 src/arch/dalvik/opdefs/aput_4b.d create mode 100644 src/arch/dalvik/opdefs/aput_4c.d create mode 100644 src/arch/dalvik/opdefs/aput_4d.d create mode 100644 src/arch/dalvik/opdefs/aput_4e.d create mode 100644 src/arch/dalvik/opdefs/aput_4f.d create mode 100644 src/arch/dalvik/opdefs/aput_50.d create mode 100644 src/arch/dalvik/opdefs/aput_51.d create mode 100644 src/arch/dalvik/opdefs/array_21.d create mode 100644 src/arch/dalvik/opdefs/array_24.d create mode 100644 src/arch/dalvik/opdefs/array_26.d create mode 100644 src/arch/dalvik/opdefs/check_1f.d create mode 100644 src/arch/dalvik/opdefs/cmp_31.d create mode 100644 src/arch/dalvik/opdefs/cmpg_2e.d create mode 100644 src/arch/dalvik/opdefs/cmpg_30.d create mode 100644 src/arch/dalvik/opdefs/cmpl_2d.d create mode 100644 src/arch/dalvik/opdefs/cmpl_2f.d create mode 100644 src/arch/dalvik/opdefs/const_12.d create mode 100644 src/arch/dalvik/opdefs/const_13.d create mode 100644 src/arch/dalvik/opdefs/const_14.d create mode 100644 src/arch/dalvik/opdefs/const_15.d create mode 100644 src/arch/dalvik/opdefs/const_16.d create mode 100644 src/arch/dalvik/opdefs/const_17.d create mode 100644 src/arch/dalvik/opdefs/const_18.d create mode 100644 src/arch/dalvik/opdefs/const_19.d create mode 100644 src/arch/dalvik/opdefs/const_1a.d create mode 100644 src/arch/dalvik/opdefs/const_1b.d create mode 100644 src/arch/dalvik/opdefs/const_1c.d create mode 100644 src/arch/dalvik/opdefs/div_93.d create mode 100644 src/arch/dalvik/opdefs/div_9e.d create mode 100644 src/arch/dalvik/opdefs/div_a9.d create mode 100644 src/arch/dalvik/opdefs/div_ae.d create mode 100644 src/arch/dalvik/opdefs/div_b3.d create mode 100644 src/arch/dalvik/opdefs/div_be.d create mode 100644 src/arch/dalvik/opdefs/div_c9.d create mode 100644 src/arch/dalvik/opdefs/div_ce.d create mode 100644 src/arch/dalvik/opdefs/div_d3.d create mode 100644 src/arch/dalvik/opdefs/div_db.d create mode 100644 src/arch/dalvik/opdefs/filled_25.d create mode 100644 src/arch/dalvik/opdefs/goto_28.d create mode 100644 src/arch/dalvik/opdefs/goto_29.d create mode 100644 src/arch/dalvik/opdefs/goto_2a.d create mode 100644 src/arch/dalvik/opdefs/if_32.d create mode 100644 src/arch/dalvik/opdefs/if_33.d create mode 100644 src/arch/dalvik/opdefs/if_34.d create mode 100644 src/arch/dalvik/opdefs/if_35.d create mode 100644 src/arch/dalvik/opdefs/if_36.d create mode 100644 src/arch/dalvik/opdefs/if_37.d create mode 100644 src/arch/dalvik/opdefs/if_38.d create mode 100644 src/arch/dalvik/opdefs/if_39.d create mode 100644 src/arch/dalvik/opdefs/if_3a.d create mode 100644 src/arch/dalvik/opdefs/if_3b.d create mode 100644 src/arch/dalvik/opdefs/if_3c.d create mode 100644 src/arch/dalvik/opdefs/if_3d.d create mode 100644 src/arch/dalvik/opdefs/iget_52.d create mode 100644 src/arch/dalvik/opdefs/iget_53.d create mode 100644 src/arch/dalvik/opdefs/iget_54.d create mode 100644 src/arch/dalvik/opdefs/iget_55.d create mode 100644 src/arch/dalvik/opdefs/iget_56.d create mode 100644 src/arch/dalvik/opdefs/iget_57.d create mode 100644 src/arch/dalvik/opdefs/iget_58.d create mode 100644 src/arch/dalvik/opdefs/instanceof_20.d create mode 100644 src/arch/dalvik/opdefs/invoke_6e.d create mode 100644 src/arch/dalvik/opdefs/invoke_6f.d create mode 100644 src/arch/dalvik/opdefs/invoke_70.d create mode 100644 src/arch/dalvik/opdefs/invoke_71.d create mode 100644 src/arch/dalvik/opdefs/invoke_72.d create mode 100644 src/arch/dalvik/opdefs/invoke_74.d create mode 100644 src/arch/dalvik/opdefs/invoke_75.d create mode 100644 src/arch/dalvik/opdefs/invoke_76.d create mode 100644 src/arch/dalvik/opdefs/invoke_77.d create mode 100644 src/arch/dalvik/opdefs/invoke_78.d create mode 100644 src/arch/dalvik/opdefs/iput_59.d create mode 100644 src/arch/dalvik/opdefs/iput_5a.d create mode 100644 src/arch/dalvik/opdefs/iput_5b.d create mode 100644 src/arch/dalvik/opdefs/iput_5c.d create mode 100644 src/arch/dalvik/opdefs/iput_5d.d create mode 100644 src/arch/dalvik/opdefs/iput_5e.d create mode 100644 src/arch/dalvik/opdefs/iput_5f.d create mode 100644 src/arch/dalvik/opdefs/monitor_1d.d create mode 100644 src/arch/dalvik/opdefs/monitor_1e.d create mode 100644 src/arch/dalvik/opdefs/move_01.d create mode 100644 src/arch/dalvik/opdefs/move_02.d create mode 100644 src/arch/dalvik/opdefs/move_03.d create mode 100644 src/arch/dalvik/opdefs/move_04.d create mode 100644 src/arch/dalvik/opdefs/move_05.d create mode 100644 src/arch/dalvik/opdefs/move_06.d create mode 100644 src/arch/dalvik/opdefs/move_07.d create mode 100644 src/arch/dalvik/opdefs/move_08.d create mode 100644 src/arch/dalvik/opdefs/move_09.d create mode 100644 src/arch/dalvik/opdefs/move_0a.d create mode 100644 src/arch/dalvik/opdefs/move_0b.d create mode 100644 src/arch/dalvik/opdefs/move_0c.d create mode 100644 src/arch/dalvik/opdefs/move_0d.d create mode 100644 src/arch/dalvik/opdefs/mul_92.d create mode 100644 src/arch/dalvik/opdefs/mul_9d.d create mode 100644 src/arch/dalvik/opdefs/mul_a8.d create mode 100644 src/arch/dalvik/opdefs/mul_ad.d create mode 100644 src/arch/dalvik/opdefs/mul_b2.d create mode 100644 src/arch/dalvik/opdefs/mul_bd.d create mode 100644 src/arch/dalvik/opdefs/mul_c8.d create mode 100644 src/arch/dalvik/opdefs/mul_cd.d create mode 100644 src/arch/dalvik/opdefs/mul_d2.d create mode 100644 src/arch/dalvik/opdefs/mul_da.d create mode 100644 src/arch/dalvik/opdefs/neg_7b.d create mode 100644 src/arch/dalvik/opdefs/neg_7d.d create mode 100644 src/arch/dalvik/opdefs/neg_7f.d create mode 100644 src/arch/dalvik/opdefs/neg_80.d create mode 100644 src/arch/dalvik/opdefs/new_22.d create mode 100644 src/arch/dalvik/opdefs/new_23.d create mode 100644 src/arch/dalvik/opdefs/nop_00.d create mode 100644 src/arch/dalvik/opdefs/not_7c.d create mode 100644 src/arch/dalvik/opdefs/not_7e.d create mode 100644 src/arch/dalvik/opdefs/or_96.d create mode 100644 src/arch/dalvik/opdefs/or_a1.d create mode 100644 src/arch/dalvik/opdefs/or_b6.d create mode 100644 src/arch/dalvik/opdefs/or_c1.d create mode 100644 src/arch/dalvik/opdefs/or_d6.d create mode 100644 src/arch/dalvik/opdefs/or_de.d create mode 100644 src/arch/dalvik/opdefs/rem_94.d create mode 100644 src/arch/dalvik/opdefs/rem_9f.d create mode 100644 src/arch/dalvik/opdefs/rem_aa.d create mode 100644 src/arch/dalvik/opdefs/rem_af.d create mode 100644 src/arch/dalvik/opdefs/rem_b4.d create mode 100644 src/arch/dalvik/opdefs/rem_bf.d create mode 100644 src/arch/dalvik/opdefs/rem_ca.d create mode 100644 src/arch/dalvik/opdefs/rem_cf.d create mode 100644 src/arch/dalvik/opdefs/rem_d4.d create mode 100644 src/arch/dalvik/opdefs/rem_dc.d create mode 100644 src/arch/dalvik/opdefs/return_0e.d create mode 100644 src/arch/dalvik/opdefs/return_0f.d create mode 100644 src/arch/dalvik/opdefs/return_10.d create mode 100644 src/arch/dalvik/opdefs/return_11.d create mode 100644 src/arch/dalvik/opdefs/rsub_d1.d create mode 100644 src/arch/dalvik/opdefs/rsub_d9.d create mode 100644 src/arch/dalvik/opdefs/sget_60.d create mode 100644 src/arch/dalvik/opdefs/sget_61.d create mode 100644 src/arch/dalvik/opdefs/sget_62.d create mode 100644 src/arch/dalvik/opdefs/sget_63.d create mode 100644 src/arch/dalvik/opdefs/sget_64.d create mode 100644 src/arch/dalvik/opdefs/sget_65.d create mode 100644 src/arch/dalvik/opdefs/sget_66.d create mode 100644 src/arch/dalvik/opdefs/shl_98.d create mode 100644 src/arch/dalvik/opdefs/shl_a3.d create mode 100644 src/arch/dalvik/opdefs/shl_b8.d create mode 100644 src/arch/dalvik/opdefs/shl_c3.d create mode 100644 src/arch/dalvik/opdefs/shl_e0.d create mode 100644 src/arch/dalvik/opdefs/shr_99.d create mode 100644 src/arch/dalvik/opdefs/shr_a4.d create mode 100644 src/arch/dalvik/opdefs/shr_b9.d create mode 100644 src/arch/dalvik/opdefs/shr_c4.d create mode 100644 src/arch/dalvik/opdefs/shr_e1.d create mode 100644 src/arch/dalvik/opdefs/sput_67.d create mode 100644 src/arch/dalvik/opdefs/sput_68.d create mode 100644 src/arch/dalvik/opdefs/sput_69.d create mode 100644 src/arch/dalvik/opdefs/sput_6a.d create mode 100644 src/arch/dalvik/opdefs/sput_6b.d create mode 100644 src/arch/dalvik/opdefs/sput_6c.d create mode 100644 src/arch/dalvik/opdefs/sput_6d.d create mode 100644 src/arch/dalvik/opdefs/sub_91.d create mode 100644 src/arch/dalvik/opdefs/sub_9c.d create mode 100644 src/arch/dalvik/opdefs/sub_a7.d create mode 100644 src/arch/dalvik/opdefs/sub_ac.d create mode 100644 src/arch/dalvik/opdefs/sub_b1.d create mode 100644 src/arch/dalvik/opdefs/sub_bc.d create mode 100644 src/arch/dalvik/opdefs/sub_c7.d create mode 100644 src/arch/dalvik/opdefs/sub_cc.d create mode 100644 src/arch/dalvik/opdefs/switch_2b.d create mode 100644 src/arch/dalvik/opdefs/switch_2c.d create mode 100644 src/arch/dalvik/opdefs/throw_27.d create mode 100644 src/arch/dalvik/opdefs/to_81.d create mode 100644 src/arch/dalvik/opdefs/to_82.d create mode 100644 src/arch/dalvik/opdefs/to_83.d create mode 100644 src/arch/dalvik/opdefs/to_84.d create mode 100644 src/arch/dalvik/opdefs/to_85.d create mode 100644 src/arch/dalvik/opdefs/to_86.d create mode 100644 src/arch/dalvik/opdefs/to_87.d create mode 100644 src/arch/dalvik/opdefs/to_88.d create mode 100644 src/arch/dalvik/opdefs/to_89.d create mode 100644 src/arch/dalvik/opdefs/to_8a.d create mode 100644 src/arch/dalvik/opdefs/to_8b.d create mode 100644 src/arch/dalvik/opdefs/to_8c.d create mode 100644 src/arch/dalvik/opdefs/to_8d.d create mode 100644 src/arch/dalvik/opdefs/to_8e.d create mode 100644 src/arch/dalvik/opdefs/to_8f.d create mode 100644 src/arch/dalvik/opdefs/ushr_9a.d create mode 100644 src/arch/dalvik/opdefs/ushr_a5.d create mode 100644 src/arch/dalvik/opdefs/ushr_ba.d create mode 100644 src/arch/dalvik/opdefs/ushr_c5.d create mode 100644 src/arch/dalvik/opdefs/ushr_e2.d create mode 100644 src/arch/dalvik/opdefs/xor_97.d create mode 100644 src/arch/dalvik/opdefs/xor_a2.d create mode 100644 src/arch/dalvik/opdefs/xor_b7.d create mode 100644 src/arch/dalvik/opdefs/xor_c2.d create mode 100644 src/arch/dalvik/opdefs/xor_d7.d create mode 100644 src/arch/dalvik/opdefs/xor_df.d diff --git a/.gitignore b/.gitignore index 8461547..7581b5f 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,7 @@ __pycache__ .gen/ fmk.done src/arch/arm/v7/opcodes/ +src/arch/dalvik/opcodes/ # GLib src/glibext/chrysamarshal.* diff --git a/ChangeLog b/ChangeLog index 8d049fc..d6d3e0b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,310 @@ +16-02-01 Cyrille Bagard + + * .gitignore: + Ignore all the opcodes generated by d2c for Dalvik. + + * configure.ac: + Add the new Makefile from the 'src/arch/dalvik/opdefs' directory. + + * plugins/ropgadgets/finder.c: + * src/analysis/disass/area.c: + * src/arch/arm/v7/processor.c: + Update code. + + * src/arch/dalvik/Makefile.am: + Add the new directory 'opdefs' into SUBDIRS. + + * src/arch/dalvik/instruction.c: + * src/arch/dalvik/instruction.h: + Remove useless functions and some internal accesses to the old table + called '_instructions'. + + * src/arch/dalvik/opcodes/Makefile.am: + Update code. + + * src/arch/dalvik/opcodes/add.c: + * src/arch/dalvik/opcodes/aget.c: + * src/arch/dalvik/opcodes/and.c: + * src/arch/dalvik/opcodes/aput.c: + * src/arch/dalvik/opcodes/array.c: + * src/arch/dalvik/opcodes/check.c: + * src/arch/dalvik/opcodes/cmp.c: + * src/arch/dalvik/opcodes/const.c: + * src/arch/dalvik/opcodes/div.c: + * src/arch/dalvik/opcodes/goto.c: + * src/arch/dalvik/opcodes/if.c: + * src/arch/dalvik/opcodes/iget.c: + * src/arch/dalvik/opcodes/instanceof.c: + * src/arch/dalvik/opcodes/invoke.c: + * src/arch/dalvik/opcodes/iput.c: + * src/arch/dalvik/opcodes/monitor.c: + * src/arch/dalvik/opcodes/move.c: + * src/arch/dalvik/opcodes/mul.c: + * src/arch/dalvik/opcodes/neg.c: + * src/arch/dalvik/opcodes/new.c: + * src/arch/dalvik/opcodes/nop.c: + * src/arch/dalvik/opcodes/not.c: + * src/arch/dalvik/opcodes/opcodes.h: + * src/arch/dalvik/opcodes/or.c: + * src/arch/dalvik/opcodes/rem.c: + * src/arch/dalvik/opcodes/ret.c: + * src/arch/dalvik/opcodes/rsub.c: + * src/arch/dalvik/opcodes/sget.c: + * src/arch/dalvik/opcodes/shl.c: + * src/arch/dalvik/opcodes/shr.c: + * src/arch/dalvik/opcodes/sput.c: + * src/arch/dalvik/opcodes/sub.c: + * src/arch/dalvik/opcodes/switch.c: + * src/arch/dalvik/opcodes/throw.c: + * src/arch/dalvik/opcodes/to.c: + * src/arch/dalvik/opcodes/ushr.c: + * src/arch/dalvik/opcodes/xor.c: + Deleted entries. + + * src/arch/dalvik/opdefs/Makefile.am: + * src/arch/dalvik/opdefs/add_90.d: + * src/arch/dalvik/opdefs/add_9b.d: + * src/arch/dalvik/opdefs/add_a6.d: + * src/arch/dalvik/opdefs/add_ab.d: + * src/arch/dalvik/opdefs/add_b0.d: + * src/arch/dalvik/opdefs/add_bb.d: + * src/arch/dalvik/opdefs/add_c6.d: + * src/arch/dalvik/opdefs/add_cb.d: + * src/arch/dalvik/opdefs/add_d0.d: + * src/arch/dalvik/opdefs/add_d8.d: + * src/arch/dalvik/opdefs/aget_44.d: + * src/arch/dalvik/opdefs/aget_45.d: + * src/arch/dalvik/opdefs/aget_46.d: + * src/arch/dalvik/opdefs/aget_47.d: + * src/arch/dalvik/opdefs/aget_48.d: + * src/arch/dalvik/opdefs/aget_49.d: + * src/arch/dalvik/opdefs/aget_4a.d: + * src/arch/dalvik/opdefs/and_95.d: + * src/arch/dalvik/opdefs/and_a0.d: + * src/arch/dalvik/opdefs/and_b5.d: + * src/arch/dalvik/opdefs/and_c0.d: + * src/arch/dalvik/opdefs/and_d5.d: + * src/arch/dalvik/opdefs/and_dd.d: + * src/arch/dalvik/opdefs/aput_4b.d: + * src/arch/dalvik/opdefs/aput_4c.d: + * src/arch/dalvik/opdefs/aput_4d.d: + * src/arch/dalvik/opdefs/aput_4e.d: + * src/arch/dalvik/opdefs/aput_4f.d: + * src/arch/dalvik/opdefs/aput_50.d: + * src/arch/dalvik/opdefs/aput_51.d: + * src/arch/dalvik/opdefs/array_21.d: + * src/arch/dalvik/opdefs/array_24.d: + * src/arch/dalvik/opdefs/array_26.d: + * src/arch/dalvik/opdefs/check_1f.d: + * src/arch/dalvik/opdefs/cmp_31.d: + * src/arch/dalvik/opdefs/cmpg_2e.d: + * src/arch/dalvik/opdefs/cmpg_30.d: + * src/arch/dalvik/opdefs/cmpl_2d.d: + * src/arch/dalvik/opdefs/cmpl_2f.d: + * src/arch/dalvik/opdefs/const_12.d: + * src/arch/dalvik/opdefs/const_13.d: + * src/arch/dalvik/opdefs/const_14.d: + * src/arch/dalvik/opdefs/const_15.d: + * src/arch/dalvik/opdefs/const_16.d: + * src/arch/dalvik/opdefs/const_17.d: + * src/arch/dalvik/opdefs/const_18.d: + * src/arch/dalvik/opdefs/const_19.d: + * src/arch/dalvik/opdefs/const_1a.d: + * src/arch/dalvik/opdefs/const_1b.d: + * src/arch/dalvik/opdefs/const_1c.d: + * src/arch/dalvik/opdefs/div_93.d: + * src/arch/dalvik/opdefs/div_9e.d: + * src/arch/dalvik/opdefs/div_a9.d: + * src/arch/dalvik/opdefs/div_ae.d: + * src/arch/dalvik/opdefs/div_b3.d: + * src/arch/dalvik/opdefs/div_be.d: + * src/arch/dalvik/opdefs/div_c9.d: + * src/arch/dalvik/opdefs/div_ce.d: + * src/arch/dalvik/opdefs/div_d3.d: + * src/arch/dalvik/opdefs/div_db.d: + * src/arch/dalvik/opdefs/filled_25.d: + * src/arch/dalvik/opdefs/goto_28.d: + * src/arch/dalvik/opdefs/goto_29.d: + * src/arch/dalvik/opdefs/goto_2a.d: + * src/arch/dalvik/opdefs/if_32.d: + * src/arch/dalvik/opdefs/if_33.d: + * src/arch/dalvik/opdefs/if_34.d: + * src/arch/dalvik/opdefs/if_35.d: + * src/arch/dalvik/opdefs/if_36.d: + * src/arch/dalvik/opdefs/if_37.d: + * src/arch/dalvik/opdefs/if_38.d: + * src/arch/dalvik/opdefs/if_39.d: + * src/arch/dalvik/opdefs/if_3a.d: + * src/arch/dalvik/opdefs/if_3b.d: + * src/arch/dalvik/opdefs/if_3c.d: + * src/arch/dalvik/opdefs/if_3d.d: + * src/arch/dalvik/opdefs/iget_52.d: + * src/arch/dalvik/opdefs/iget_53.d: + * src/arch/dalvik/opdefs/iget_54.d: + * src/arch/dalvik/opdefs/iget_55.d: + * src/arch/dalvik/opdefs/iget_56.d: + * src/arch/dalvik/opdefs/iget_57.d: + * src/arch/dalvik/opdefs/iget_58.d: + * src/arch/dalvik/opdefs/instanceof_20.d: + * src/arch/dalvik/opdefs/invoke_6e.d: + * src/arch/dalvik/opdefs/invoke_6f.d: + * src/arch/dalvik/opdefs/invoke_70.d: + * src/arch/dalvik/opdefs/invoke_71.d: + * src/arch/dalvik/opdefs/invoke_72.d: + * src/arch/dalvik/opdefs/invoke_74.d: + * src/arch/dalvik/opdefs/invoke_75.d: + * src/arch/dalvik/opdefs/invoke_76.d: + * src/arch/dalvik/opdefs/invoke_77.d: + * src/arch/dalvik/opdefs/invoke_78.d: + * src/arch/dalvik/opdefs/iput_59.d: + * src/arch/dalvik/opdefs/iput_5a.d: + * src/arch/dalvik/opdefs/iput_5b.d: + * src/arch/dalvik/opdefs/iput_5c.d: + * src/arch/dalvik/opdefs/iput_5d.d: + * src/arch/dalvik/opdefs/iput_5e.d: + * src/arch/dalvik/opdefs/iput_5f.d: + * src/arch/dalvik/opdefs/monitor_1d.d: + * src/arch/dalvik/opdefs/monitor_1e.d: + * src/arch/dalvik/opdefs/move_01.d: + * src/arch/dalvik/opdefs/move_02.d: + * src/arch/dalvik/opdefs/move_03.d: + * src/arch/dalvik/opdefs/move_04.d: + * src/arch/dalvik/opdefs/move_05.d: + * src/arch/dalvik/opdefs/move_06.d: + * src/arch/dalvik/opdefs/move_07.d: + * src/arch/dalvik/opdefs/move_08.d: + * src/arch/dalvik/opdefs/move_09.d: + * src/arch/dalvik/opdefs/move_0a.d: + * src/arch/dalvik/opdefs/move_0b.d: + * src/arch/dalvik/opdefs/move_0c.d: + * src/arch/dalvik/opdefs/move_0d.d: + * src/arch/dalvik/opdefs/mul_92.d: + * src/arch/dalvik/opdefs/mul_9d.d: + * src/arch/dalvik/opdefs/mul_a8.d: + * src/arch/dalvik/opdefs/mul_ad.d: + * src/arch/dalvik/opdefs/mul_b2.d: + * src/arch/dalvik/opdefs/mul_bd.d: + * src/arch/dalvik/opdefs/mul_c8.d: + * src/arch/dalvik/opdefs/mul_cd.d: + * src/arch/dalvik/opdefs/mul_d2.d: + * src/arch/dalvik/opdefs/mul_da.d: + * src/arch/dalvik/opdefs/neg_7b.d: + * src/arch/dalvik/opdefs/neg_7d.d: + * src/arch/dalvik/opdefs/neg_7f.d: + * src/arch/dalvik/opdefs/neg_80.d: + * src/arch/dalvik/opdefs/new_22.d: + * src/arch/dalvik/opdefs/new_23.d: + * src/arch/dalvik/opdefs/nop_00.d: + * src/arch/dalvik/opdefs/not_7c.d: + * src/arch/dalvik/opdefs/not_7e.d: + * src/arch/dalvik/opdefs/or_96.d: + * src/arch/dalvik/opdefs/or_a1.d: + * src/arch/dalvik/opdefs/or_b6.d: + * src/arch/dalvik/opdefs/or_c1.d: + * src/arch/dalvik/opdefs/or_d6.d: + * src/arch/dalvik/opdefs/or_de.d: + * src/arch/dalvik/opdefs/rem_94.d: + * src/arch/dalvik/opdefs/rem_9f.d: + * src/arch/dalvik/opdefs/rem_aa.d: + * src/arch/dalvik/opdefs/rem_af.d: + * src/arch/dalvik/opdefs/rem_b4.d: + * src/arch/dalvik/opdefs/rem_bf.d: + * src/arch/dalvik/opdefs/rem_ca.d: + * src/arch/dalvik/opdefs/rem_cf.d: + * src/arch/dalvik/opdefs/rem_d4.d: + * src/arch/dalvik/opdefs/rem_dc.d: + * src/arch/dalvik/opdefs/return_0e.d: + * src/arch/dalvik/opdefs/return_0f.d: + * src/arch/dalvik/opdefs/return_10.d: + * src/arch/dalvik/opdefs/return_11.d: + * src/arch/dalvik/opdefs/rsub_d1.d: + * src/arch/dalvik/opdefs/rsub_d9.d: + * src/arch/dalvik/opdefs/sget_60.d: + * src/arch/dalvik/opdefs/sget_61.d: + * src/arch/dalvik/opdefs/sget_62.d: + * src/arch/dalvik/opdefs/sget_63.d: + * src/arch/dalvik/opdefs/sget_64.d: + * src/arch/dalvik/opdefs/sget_65.d: + * src/arch/dalvik/opdefs/sget_66.d: + * src/arch/dalvik/opdefs/shl_98.d: + * src/arch/dalvik/opdefs/shl_a3.d: + * src/arch/dalvik/opdefs/shl_b8.d: + * src/arch/dalvik/opdefs/shl_c3.d: + * src/arch/dalvik/opdefs/shl_e0.d: + * src/arch/dalvik/opdefs/shr_99.d: + * src/arch/dalvik/opdefs/shr_a4.d: + * src/arch/dalvik/opdefs/shr_b9.d: + * src/arch/dalvik/opdefs/shr_c4.d: + * src/arch/dalvik/opdefs/shr_e1.d: + * src/arch/dalvik/opdefs/sput_67.d: + * src/arch/dalvik/opdefs/sput_68.d: + * src/arch/dalvik/opdefs/sput_69.d: + * src/arch/dalvik/opdefs/sput_6a.d: + * src/arch/dalvik/opdefs/sput_6b.d: + * src/arch/dalvik/opdefs/sput_6c.d: + * src/arch/dalvik/opdefs/sput_6d.d: + * src/arch/dalvik/opdefs/sub_91.d: + * src/arch/dalvik/opdefs/sub_9c.d: + * src/arch/dalvik/opdefs/sub_a7.d: + * src/arch/dalvik/opdefs/sub_ac.d: + * src/arch/dalvik/opdefs/sub_b1.d: + * src/arch/dalvik/opdefs/sub_bc.d: + * src/arch/dalvik/opdefs/sub_c7.d: + * src/arch/dalvik/opdefs/sub_cc.d: + * src/arch/dalvik/opdefs/switch_2b.d: + * src/arch/dalvik/opdefs/switch_2c.d: + * src/arch/dalvik/opdefs/throw_27.d: + * src/arch/dalvik/opdefs/to_81.d: + * src/arch/dalvik/opdefs/to_82.d: + * src/arch/dalvik/opdefs/to_83.d: + * src/arch/dalvik/opdefs/to_84.d: + * src/arch/dalvik/opdefs/to_85.d: + * src/arch/dalvik/opdefs/to_86.d: + * src/arch/dalvik/opdefs/to_87.d: + * src/arch/dalvik/opdefs/to_88.d: + * src/arch/dalvik/opdefs/to_89.d: + * src/arch/dalvik/opdefs/to_8a.d: + * src/arch/dalvik/opdefs/to_8b.d: + * src/arch/dalvik/opdefs/to_8c.d: + * src/arch/dalvik/opdefs/to_8d.d: + * src/arch/dalvik/opdefs/to_8e.d: + * src/arch/dalvik/opdefs/to_8f.d: + * src/arch/dalvik/opdefs/ushr_9a.d: + * src/arch/dalvik/opdefs/ushr_a5.d: + * src/arch/dalvik/opdefs/ushr_ba.d: + * src/arch/dalvik/opdefs/ushr_c5.d: + * src/arch/dalvik/opdefs/ushr_e2.d: + * src/arch/dalvik/opdefs/xor_97.d: + * src/arch/dalvik/opdefs/xor_a2.d: + * src/arch/dalvik/opdefs/xor_b7.d: + * src/arch/dalvik/opdefs/xor_c2.d: + * src/arch/dalvik/opdefs/xor_d7.d: + * src/arch/dalvik/opdefs/xor_df.d: + New entries: define all Dalvik instructions to get generated by d2c. + + * src/arch/dalvik/processor.c: + Update the decoding of Dalvik instructions. + + * src/arch/dalvik/pseudo/fill.c: + * src/arch/dalvik/pseudo/fill.h: + * src/arch/dalvik/pseudo/switch.c: + * src/arch/dalvik/pseudo/switch.h: + Update the code. Disable some functions to get the program working. + + * src/arch/processor-int.h: + * src/arch/processor.c: + * src/arch/processor.h: + Provide the relative binary format when disassembling instructions. + + * src/format/dex/method.c: + Typo. + + * src/glibext/gbufferline.c: + Avoid to define empty segment in some extreme cases. + + * tools/d2c/d2c.mk: + Typo. + 16-01-30 Cyrille Bagard * configure.ac: diff --git a/configure.ac b/configure.ac index 948d612..30ad629 100644 --- a/configure.ac +++ b/configure.ac @@ -313,6 +313,7 @@ AC_CONFIG_FILES([Makefile src/arch/arm/v7/operands/Makefile src/arch/dalvik/Makefile src/arch/dalvik/decomp/Makefile + src/arch/dalvik/opdefs/Makefile src/arch/dalvik/opcodes/Makefile src/arch/dalvik/operands/Makefile src/arch/dalvik/pseudo/Makefile diff --git a/plugins/ropgadgets/finder.c b/plugins/ropgadgets/finder.c index 3fbc0fd..35d1f7f 100644 --- a/plugins/ropgadgets/finder.c +++ b/plugins/ropgadgets/finder.c @@ -86,7 +86,7 @@ static GArchInstruction *disassemble_instruction_in_domain(const search_domain * ctx = domain->ctx; /* TODO : copie */ - result = g_arch_processor_disassemble(domain->proc, ctx, domain->content, pos); + result = g_arch_processor_disassemble(domain->proc, ctx, domain->content, pos, G_EXE_FORMAT(domain->format)); if (result != NULL) { diff --git a/src/analysis/disass/area.c b/src/analysis/disass/area.c index eddad5c..c2fee99 100644 --- a/src/analysis/disass/area.c +++ b/src/analysis/disass/area.c @@ -360,7 +360,7 @@ void load_code_from_mem_area_v2(mem_area_v2 *area, mem_area_v2 *list, size_t cou copy_vmpa(&prev, &pos); - instr = g_arch_processor_disassemble(proc, ctx, content, &pos); + instr = g_arch_processor_disassemble(proc, ctx, content, &pos, G_EXE_FORMAT(format)); if (instr == NULL) break; /* Enregistrement des positions et adresses */ @@ -1640,7 +1640,7 @@ bool load_code_from_mem_area(mem_area **list, size_t *count, size_t *index, cons copy_vmpa(&prev, &pos); - instr = g_arch_processor_disassemble(proc, ctx, content, &pos); + instr = g_arch_processor_disassemble(proc, ctx, content, &pos, G_EXE_FORMAT(format)); /* TODO : valider que la taille de l'instruction obtenue ne dépasse pas la zone */ diff --git a/src/arch/arm/v7/processor.c b/src/arch/arm/v7/processor.c index 195b87c..e9781f3 100644 --- a/src/arch/arm/v7/processor.c +++ b/src/arch/arm/v7/processor.c @@ -68,7 +68,7 @@ static void g_armv7_processor_finalize(GArmV7Processor *); static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *); /* Décode une instruction dans un flux de données. */ -static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *, GArmV7Context *, const GBinContent *, vmpa2t *); +static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *, GArmV7Context *, const GBinContent *, vmpa2t *, GExeFormat *); @@ -222,6 +222,7 @@ static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *proc) * ctx = contexte lié à l'exécution du processeur. * * content = flux de données à analyser. * * pos = position courante dans ce flux. [OUT] * +* format = format du fichier contenant le code. * * * * Description : Désassemble une instruction dans un flux de données. * * * @@ -231,7 +232,7 @@ static GArmV7Context *g_armv7_processor_get_context(const GArmV7Processor *proc) * * ******************************************************************************/ -static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *proc, GArmV7Context *ctx, const GBinContent *content, vmpa2t *pos) +static GArchInstruction *g_armv7_processor_disassemble(const GArmV7Processor *proc, GArmV7Context *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format) { GArchInstruction *result; /* Instruction à renvoyer */ SourceEndian endian; /* Boutisme des données lues */ diff --git a/src/arch/dalvik/Makefile.am b/src/arch/dalvik/Makefile.am index 508e26d..0f04dae 100644 --- a/src/arch/dalvik/Makefile.am +++ b/src/arch/dalvik/Makefile.am @@ -25,4 +25,4 @@ AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS) -SUBDIRS = decomp opcodes operands pseudo +SUBDIRS = decomp opdefs opcodes operands pseudo diff --git a/src/arch/dalvik/instruction.c b/src/arch/dalvik/instruction.c index a8e8676..31f02c8 100644 --- a/src/arch/dalvik/instruction.c +++ b/src/arch/dalvik/instruction.c @@ -544,35 +544,6 @@ static void g_dalvik_instruction_get_rw_registers(const GDalvikInstruction *inst /****************************************************************************** * * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. * -* end = limite des données à analyser. * -* * -* Description : Recherche l'identifiant de la prochaine instruction. * -* * -* Retour : Identifiant de la prochaine instruction à tenter de charger. * -* * -* Remarques : - * -* * -******************************************************************************/ - -DalvikOpcodes dalvik_guess_next_instruction(const bin_t *data, off_t pos, off_t end) -{ - DalvikOpcodes result; /* Identifiant à retourner */ - - result = (DalvikOpcodes)data[pos]; - - /* Si l'instruction est marquée comme non utilisée... */ - if (_instructions[result].keyword == NULL) - result = DOP_COUNT; - - return result; - -} - - -/****************************************************************************** -* * * Paramètres : instr = instruction à traiter. * * syntax = type de représentation demandée. * * * @@ -586,7 +557,7 @@ DalvikOpcodes dalvik_guess_next_instruction(const bin_t *data, off_t pos, off_t static void dalvik_build_instruction_keyword(const GDalvikInstruction *instr, AsmSyntax syntax) { - G_ARCH_INSTRUCTION(instr)->cached_keyword = strdup(_instructions[instr->type].keyword); + G_ARCH_INSTRUCTION(instr)->cached_keyword = strdup(instr->keyword); } diff --git a/src/arch/dalvik/instruction.h b/src/arch/dalvik/instruction.h index 185eabe..dacf957 100644 --- a/src/arch/dalvik/instruction.h +++ b/src/arch/dalvik/instruction.h @@ -57,9 +57,6 @@ DalvikOpcodes g_dalvik_instruction_get_opcode(const struct _GDalvikInstruction * /* --------------------- AIDE A LA MISE EN PLACE D'INSTRUCTIONS --------------------- */ -/* Recherche l'identifiant de la prochaine instruction. */ -DalvikOpcodes dalvik_guess_next_instruction(const bin_t *, off_t, off_t); - /* ------------------------ AIDE A LA PHASE DE DECOMPILATION ------------------------ */ diff --git a/src/arch/dalvik/opcodes/Makefile.am b/src/arch/dalvik/opcodes/Makefile.am index 8632c0e..e4f90da 100644 --- a/src/arch/dalvik/opcodes/Makefile.am +++ b/src/arch/dalvik/opcodes/Makefile.am @@ -1,44 +1,17 @@ +# Initialement, ce Makefile est conçu sans définition de am__depfiles_maybe. +# Est-ce parce que GENERATED_FILES est vide et qu'il n'y a donc pas de code +# source ? En tout cas, au premier écrasement de gencode.mk, tous les fichiers +# sont regénérés, et am__depfiles_maybe apparaît enfin. Mais trop tard : +# des fichiers .Plo sont attendus mais non créés par l'ancien Makefile. +# On force les choses ici. +am__depfiles_maybe = depfiles + +include gencode.mk + noinst_LTLIBRARIES = libarchdalvikopcodes.la -libarchdalvikopcodes_la_SOURCES = \ - add.c \ - aget.c \ - and.c \ - aput.c \ - array.c \ - check.c \ - cmp.c \ - const.c \ - div.c \ - goto.c \ - if.c \ - iget.c \ - instanceof.c \ - invoke.c \ - iput.c \ - monitor.c \ - move.c \ - mul.c \ - neg.c \ - new.c \ - nop.c \ - not.c \ - opcodes.h \ - or.c \ - rem.c \ - ret.c \ - rsub.c \ - sget.c \ - shl.c \ - shr.c \ - sput.c \ - sub.c \ - switch.c \ - throw.c \ - to.c \ - ushr.c \ - xor.c +libarchdalvikopcodes_la_SOURCES = $(GENERATED_FILES) libarchdalvikopcodes_la_LIBADD = diff --git a/src/arch/dalvik/opcodes/add.c b/src/arch/dalvik/opcodes/add.c deleted file mode 100644 index 4d93df9..0000000 --- a/src/arch/dalvik/opcodes/add.c +++ /dev/null @@ -1,419 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * add.c - décodage des opérations d'addition - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-double/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_DOUBLE_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-float/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_FLOAT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'add-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_add_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ADD_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/aget.c b/src/arch/dalvik/opcodes/aget.c deleted file mode 100644 index e5033aa..0000000 --- a/src/arch/dalvik/opcodes/aget.c +++ /dev/null @@ -1,302 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * aget.c - décodage des instructions manipulant des tableaux (chargement) - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aget-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AGET_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/and.c b/src/arch/dalvik/opcodes/and.c deleted file mode 100644 index d5162bf..0000000 --- a/src/arch/dalvik/opcodes/and.c +++ /dev/null @@ -1,263 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * and.c - décodage des opérations de ET logiques - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'and-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_and_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_AND_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/aput.c b/src/arch/dalvik/opcodes/aput.c deleted file mode 100644 index 6cdde65..0000000 --- a/src/arch/dalvik/opcodes/aput.c +++ /dev/null @@ -1,288 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * aput.c - décodage des instructions manipulant des tableaux (enregistrement) - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'aput-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_aput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_APUT_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/array.c b/src/arch/dalvik/opcodes/array.c deleted file mode 100644 index efa40b7..0000000 --- a/src/arch/dalvik/opcodes/array.c +++ /dev/null @@ -1,179 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * array.c - décodage de l'opération récupérant la longueur d'un tableau - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'array-length'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_array_length(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_ARRAY_LENGTH); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'fill-array-data'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_fill_array_data(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_FILL_ARRAY_DATA); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'filled-new-array'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_filled_new_array(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_FILLED_NEW_ARRAY); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'filled-new-array/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_filled_new_array_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_FILLED_NEW_ARRAY_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/check.c b/src/arch/dalvik/opcodes/check.c deleted file mode 100644 index 725f336..0000000 --- a/src/arch/dalvik/opcodes/check.c +++ /dev/null @@ -1,66 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * check.c - décodage des vérifications de types - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'check-cast'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_check_cast(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CHECK_CAST); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/cmp.c b/src/arch/dalvik/opcodes/cmp.c deleted file mode 100644 index e6de13c..0000000 --- a/src/arch/dalvik/opcodes/cmp.c +++ /dev/null @@ -1,224 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * cmp.c - décodage des instructions de comparaison - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'cmp-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_cmp_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CMP_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'cmpg-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_cmpg_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CMPG_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'cmpg-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_cmpg_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CMPG_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'cmpl-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_cmpl_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CMPL_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'cmpl-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_cmpl_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CMPL_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/const.c b/src/arch/dalvik/opcodes/const.c deleted file mode 100644 index 5097804..0000000 --- a/src/arch/dalvik/opcodes/const.c +++ /dev/null @@ -1,458 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * const.c - décodage des chargements de constantes - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31I)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const/4'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_4(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_4); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11N)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-class'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_class(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_CLASS); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const/high16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_high16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_HIGH16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21H)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-string'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_string(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_STRING); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_STRING))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-string/jumbo'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_string_jumbo(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_STRING_JUMBO); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31C | DALVIK_OP_POOL(DPT_STRING))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_51L)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-wide/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_wide_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_WIDE_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-wide/32'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_wide_32(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_WIDE_32); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31I)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'const-wide/high16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_const_wide_high16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_CONST_WIDE_HIGH16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21H)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/div.c b/src/arch/dalvik/opcodes/div.c deleted file mode 100644 index a20968b..0000000 --- a/src/arch/dalvik/opcodes/div.c +++ /dev/null @@ -1,419 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * div.c - décodage des opérations de divisions - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-double/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_DOUBLE_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-float/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_FLOAT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'div-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_div_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_DIV_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/goto.c b/src/arch/dalvik/opcodes/goto.c deleted file mode 100644 index f74774a..0000000 --- a/src/arch/dalvik/opcodes/goto.c +++ /dev/null @@ -1,140 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * goto.c - décodage des branchements inconditionnels - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'goto'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_goto(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_GOTO); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'goto/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_goto_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_GOTO_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_20T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'goto/32'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_goto_32(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_GOTO_32); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_30T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/if.c b/src/arch/dalvik/opcodes/if.c deleted file mode 100644 index ad8b49a..0000000 --- a/src/arch/dalvik/opcodes/if.c +++ /dev/null @@ -1,473 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * if.c - décodage des branchements conditionnels - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-eq'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_eq(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_EQ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-eqz'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_eqz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_EQZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-ge'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_ge(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_GE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-gez'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_gez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_GEZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-gt'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_gt(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_GT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-gtz'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_gtz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_GTZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-le'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_le(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_LE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-lez'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_lez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_LEZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-lt'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_lt(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_LT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-ltz'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_ltz(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_LTZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-ne'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_ne(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_NE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'if-nez'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_if_nez(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IF_NEZ); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21T, addr)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/iget.c b/src/arch/dalvik/opcodes/iget.c deleted file mode 100644 index f83bb96..0000000 --- a/src/arch/dalvik/opcodes/iget.c +++ /dev/null @@ -1,302 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * iget.c - décodage des chargements de champs d'instance - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iget-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IGET_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/instanceof.c b/src/arch/dalvik/opcodes/instanceof.c deleted file mode 100644 index d65c6bd..0000000 --- a/src/arch/dalvik/opcodes/instanceof.c +++ /dev/null @@ -1,68 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * instanceof.c - décodage des opérations d'interrogation sur une instance - * - * Copyright (C) 2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'instance-of'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_instance_of(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INSTANCE_OF); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/invoke.c b/src/arch/dalvik/opcodes/invoke.c deleted file mode 100644 index 9133e79..0000000 --- a/src/arch/dalvik/opcodes/invoke.c +++ /dev/null @@ -1,399 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * invoke.c - décodage des appels de méthode - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-direct'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_direct(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_DIRECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-direct/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_direct_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_DIRECT_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-interface'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_interface(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_INTERFACE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-interface/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_interface_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_INTERFACE_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-static'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_static(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_STATIC); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-static/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_static_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_STATIC_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-super'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_super(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_SUPER); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-super/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_super_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_SUPER_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-virtual'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_virtual(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_VIRTUAL); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_35C | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'invoke-virtual/range'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_invoke_virtual_range(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_INVOKE_VIRTUAL_RANGE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_3RC | DALVIK_OP_POOL(DPT_METHOD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/iput.c b/src/arch/dalvik/opcodes/iput.c deleted file mode 100644 index 434eec7..0000000 --- a/src/arch/dalvik/opcodes/iput.c +++ /dev/null @@ -1,288 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * iput.c - décodage des enregistrements de champs d'instance - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'iput-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_iput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_IPUT_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/monitor.c b/src/arch/dalvik/opcodes/monitor.c deleted file mode 100644 index 866e984..0000000 --- a/src/arch/dalvik/opcodes/monitor.c +++ /dev/null @@ -1,103 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * monitor.c - décodage des opérations de débogage - * - * Copyright (C) 2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'monitor-enter'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_monitor_enter(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MONITOR_ENTER); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'monitor-exit'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_monitor_exit(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MONITOR_EXIT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/move.c b/src/arch/dalvik/opcodes/move.c deleted file mode 100644 index ba2d89b..0000000 --- a/src/arch/dalvik/opcodes/move.c +++ /dev/null @@ -1,536 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * move.c - décodage des opérations de déplacement - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-exception'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_exception(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_EXCEPTION); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move/from16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_FROM_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-object/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_object_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_OBJECT_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-object/from16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_object_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_OBJECT_FROM_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-result'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_result(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_RESULT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-result-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_result_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_RESULT_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-result-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_result_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_RESULT_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-wide/16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_wide_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_WIDE_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_32X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'move-wide/from16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_move_wide_from_16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MOVE_WIDE_FROM_16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/mul.c b/src/arch/dalvik/opcodes/mul.c deleted file mode 100644 index 67a343b..0000000 --- a/src/arch/dalvik/opcodes/mul.c +++ /dev/null @@ -1,419 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * mul.c - décodage des opérations de multiplications - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-double/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_DOUBLE_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-float/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_FLOAT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'mul-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_mul_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_MUL_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/neg.c b/src/arch/dalvik/opcodes/neg.c deleted file mode 100644 index 5f9a985..0000000 --- a/src/arch/dalvik/opcodes/neg.c +++ /dev/null @@ -1,185 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * neg.c - décodage des instructions de négations - * - * Copyright (C) 2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'neg-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_neg_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEG_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'neg-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_neg_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEG_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'neg-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_neg_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEG_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'neg-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_neg_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEG_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/new.c b/src/arch/dalvik/opcodes/new.c deleted file mode 100644 index 3320540..0000000 --- a/src/arch/dalvik/opcodes/new.c +++ /dev/null @@ -1,107 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * new.c - décodage des créations de nouvelles instances - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'new-array'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_new_array(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEW_ARRAY); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'new-instance'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_new_instance(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NEW_INSTANCE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_TYPE))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/nop.c b/src/arch/dalvik/opcodes/nop.c deleted file mode 100644 index b90c350..0000000 --- a/src/arch/dalvik/opcodes/nop.c +++ /dev/null @@ -1,66 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * ret.c - décodage de l'instruction nulle - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'nop'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_nop(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NOP); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/not.c b/src/arch/dalvik/opcodes/not.c deleted file mode 100644 index 41ae2d4..0000000 --- a/src/arch/dalvik/opcodes/not.c +++ /dev/null @@ -1,107 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * not.c - décodage des instructions de négations booléennes - * - * Copyright (C) 2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'not-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_not_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NOT_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'not-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_not_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_NOT_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/opcodes.h b/src/arch/dalvik/opcodes/opcodes.h deleted file mode 100644 index 3f89970..0000000 --- a/src/arch/dalvik/opcodes/opcodes.h +++ /dev/null @@ -1,693 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * opcodes.h - prototypes pour la liste de tous les opcodes de l'architecture Dalvik - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#ifndef _ARCH_DALVIK_OPCODES_H -#define _ARCH_DALVIK_OPCODES_H - - -#include "../instruction.h" -#include "../processor.h" -#include "../../../format/dex/dex.h" - - - -/* Prototype de décodage d'une instruction Dalvik. */ -typedef GArchInstruction * (* dalvik_read_instr) (const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-double'. */ -GArchInstruction *dalvik_read_instr_add_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-double/2addr'. */ -GArchInstruction *dalvik_read_instr_add_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-int'. */ -GArchInstruction *dalvik_read_instr_add_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-int/2addr'. */ -GArchInstruction *dalvik_read_instr_add_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-int/lit8'. */ -GArchInstruction *dalvik_read_instr_add_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-int/lit16'. */ -GArchInstruction *dalvik_read_instr_add_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-float'. */ -GArchInstruction *dalvik_read_instr_add_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-float/2addr'. */ -GArchInstruction *dalvik_read_instr_add_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-long'. */ -GArchInstruction *dalvik_read_instr_add_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'add-long/2addr'. */ -GArchInstruction *dalvik_read_instr_add_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget'. */ -GArchInstruction *dalvik_read_instr_aget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-boolean'. */ -GArchInstruction *dalvik_read_instr_aget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-byte'. */ -GArchInstruction *dalvik_read_instr_aget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-char'. */ -GArchInstruction *dalvik_read_instr_aget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-object'. */ -GArchInstruction *dalvik_read_instr_aget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-short'. */ -GArchInstruction *dalvik_read_instr_aget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aget-wide'. */ -GArchInstruction *dalvik_read_instr_aget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-int'. */ -GArchInstruction *dalvik_read_instr_and_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-int/2addr'. */ -GArchInstruction *dalvik_read_instr_and_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-int/lit8'. */ -GArchInstruction *dalvik_read_instr_and_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-int/lit16'. */ -GArchInstruction *dalvik_read_instr_and_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-long'. */ -GArchInstruction *dalvik_read_instr_and_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'and-long/2addr'. */ -GArchInstruction *dalvik_read_instr_and_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput'. */ -GArchInstruction *dalvik_read_instr_aput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-boolean'. */ -GArchInstruction *dalvik_read_instr_aput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-byte'. */ -GArchInstruction *dalvik_read_instr_aput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-char'. */ -GArchInstruction *dalvik_read_instr_aput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-object'. */ -GArchInstruction *dalvik_read_instr_aput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-short'. */ -GArchInstruction *dalvik_read_instr_aput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'aput-wide'. */ -GArchInstruction *dalvik_read_instr_aput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'array-length'. */ -GArchInstruction *dalvik_read_instr_array_length(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'check-cast'. */ -GArchInstruction *dalvik_read_instr_check_cast(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'cmp-long'. */ -GArchInstruction *dalvik_read_instr_cmp_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'cmpg-double'. */ -GArchInstruction *dalvik_read_instr_cmpg_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'cmpg-float'. */ -GArchInstruction *dalvik_read_instr_cmpg_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'cmpl-double'. */ -GArchInstruction *dalvik_read_instr_cmpl_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'cmpl-float'. */ -GArchInstruction *dalvik_read_instr_cmpl_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const'. */ -GArchInstruction *dalvik_read_instr_const(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const/16'. */ -GArchInstruction *dalvik_read_instr_const_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const/4'. */ -GArchInstruction *dalvik_read_instr_const_4(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-class'. */ -GArchInstruction *dalvik_read_instr_const_class(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const/high16'. */ -GArchInstruction *dalvik_read_instr_const_high16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-string'. */ -GArchInstruction *dalvik_read_instr_const_string(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-string/jumbo'. */ -GArchInstruction *dalvik_read_instr_const_string_jumbo(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-wide'. */ -GArchInstruction *dalvik_read_instr_const_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-wide/16'. */ -GArchInstruction *dalvik_read_instr_const_wide_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-wide/32'. */ -GArchInstruction *dalvik_read_instr_const_wide_32(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'const-wide/high16'. */ -GArchInstruction *dalvik_read_instr_const_wide_high16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-double'. */ -GArchInstruction *dalvik_read_instr_div_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-double/2addr'. */ -GArchInstruction *dalvik_read_instr_div_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-float'. */ -GArchInstruction *dalvik_read_instr_div_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-float/2addr'. */ -GArchInstruction *dalvik_read_instr_div_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-int'. */ -GArchInstruction *dalvik_read_instr_div_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-int/2addr'. */ -GArchInstruction *dalvik_read_instr_div_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-int/lit8'. */ -GArchInstruction *dalvik_read_instr_div_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-int/lit16'. */ -GArchInstruction *dalvik_read_instr_div_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-long'. */ -GArchInstruction *dalvik_read_instr_div_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'div-long/2addr'. */ -GArchInstruction *dalvik_read_instr_div_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'fill-array-data'. */ -GArchInstruction *dalvik_read_instr_fill_array_data(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'filled-new-array'. */ -GArchInstruction *dalvik_read_instr_filled_new_array(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'filled-new-array/range'. */ -GArchInstruction *dalvik_read_instr_filled_new_array_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'goto'. */ -GArchInstruction *dalvik_read_instr_goto(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'goto/16'. */ -GArchInstruction *dalvik_read_instr_goto_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'goto/32'. */ -GArchInstruction *dalvik_read_instr_goto_32(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-eq'. */ -GArchInstruction *dalvik_read_instr_if_eq(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-eqz'. */ -GArchInstruction *dalvik_read_instr_if_eqz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-ge'. */ -GArchInstruction *dalvik_read_instr_if_ge(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-gez'. */ -GArchInstruction *dalvik_read_instr_if_gez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-gt'. */ -GArchInstruction *dalvik_read_instr_if_gt(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-gtz'. */ -GArchInstruction *dalvik_read_instr_if_gtz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-le'. */ -GArchInstruction *dalvik_read_instr_if_le(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-lez'. */ -GArchInstruction *dalvik_read_instr_if_lez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-lt'. */ -GArchInstruction *dalvik_read_instr_if_lt(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-ltz'. */ -GArchInstruction *dalvik_read_instr_if_ltz(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-ne'. */ -GArchInstruction *dalvik_read_instr_if_ne(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'if-nez'. */ -GArchInstruction *dalvik_read_instr_if_nez(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget'. */ -GArchInstruction *dalvik_read_instr_iget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-boolean'. */ -GArchInstruction *dalvik_read_instr_iget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-byte'. */ -GArchInstruction *dalvik_read_instr_iget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-char'. */ -GArchInstruction *dalvik_read_instr_iget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-object'. */ -GArchInstruction *dalvik_read_instr_iget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-short'. */ -GArchInstruction *dalvik_read_instr_iget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iget-wide'. */ -GArchInstruction *dalvik_read_instr_iget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'instance-of'. */ -GArchInstruction *dalvik_read_instr_instance_of(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-direct'. */ -GArchInstruction *dalvik_read_instr_invoke_direct(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-direct/range'. */ -GArchInstruction *dalvik_read_instr_invoke_direct_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-interface'. */ -GArchInstruction *dalvik_read_instr_invoke_interface(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-interface/range'. */ -GArchInstruction *dalvik_read_instr_invoke_interface_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-static'. */ -GArchInstruction *dalvik_read_instr_invoke_static(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-static/range'. */ -GArchInstruction *dalvik_read_instr_invoke_static_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-super'. */ -GArchInstruction *dalvik_read_instr_invoke_super(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-super/range'. */ -GArchInstruction *dalvik_read_instr_invoke_super_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-virtual'. */ -GArchInstruction *dalvik_read_instr_invoke_virtual(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'invoke-virtual/range'. */ -GArchInstruction *dalvik_read_instr_invoke_virtual_range(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput'. */ -GArchInstruction *dalvik_read_instr_iput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-boolean'. */ -GArchInstruction *dalvik_read_instr_iput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-byte'. */ -GArchInstruction *dalvik_read_instr_iput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-char'. */ -GArchInstruction *dalvik_read_instr_iput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-object'. */ -GArchInstruction *dalvik_read_instr_iput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-short'. */ -GArchInstruction *dalvik_read_instr_iput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'iput-wide'. */ -GArchInstruction *dalvik_read_instr_iput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'monitor-enter'. */ -GArchInstruction *dalvik_read_instr_monitor_enter(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'monitor-exit'. */ -GArchInstruction *dalvik_read_instr_monitor_exit(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move'. */ -GArchInstruction *dalvik_read_instr_move(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-exception'. */ -GArchInstruction *dalvik_read_instr_move_exception(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move/16'. */ -GArchInstruction *dalvik_read_instr_move_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move/from16'. */ -GArchInstruction *dalvik_read_instr_move_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-object'. */ -GArchInstruction *dalvik_read_instr_move_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-object/16'. */ -GArchInstruction *dalvik_read_instr_move_object_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-object/from16'. */ -GArchInstruction *dalvik_read_instr_move_object_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-result'. */ -GArchInstruction *dalvik_read_instr_move_result(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-result-object'. */ -GArchInstruction *dalvik_read_instr_move_result_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-result-wide'. */ -GArchInstruction *dalvik_read_instr_move_result_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-wide'. */ -GArchInstruction *dalvik_read_instr_move_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-wide/16'. */ -GArchInstruction *dalvik_read_instr_move_wide_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'move-wide/from16'. */ -GArchInstruction *dalvik_read_instr_move_wide_from_16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-double'. */ -GArchInstruction *dalvik_read_instr_mul_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-double/2addr'. */ -GArchInstruction *dalvik_read_instr_mul_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-float'. */ -GArchInstruction *dalvik_read_instr_mul_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-float/2addr'. */ -GArchInstruction *dalvik_read_instr_mul_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-int'. */ -GArchInstruction *dalvik_read_instr_mul_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-int/2addr'. */ -GArchInstruction *dalvik_read_instr_mul_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-int/lit8'. */ -GArchInstruction *dalvik_read_instr_mul_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-int/lit16'. */ -GArchInstruction *dalvik_read_instr_mul_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-long'. */ -GArchInstruction *dalvik_read_instr_mul_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'mul-long/2addr'. */ -GArchInstruction *dalvik_read_instr_mul_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'neg-double'. */ -GArchInstruction *dalvik_read_instr_neg_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'neg-float'. */ -GArchInstruction *dalvik_read_instr_neg_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'neg-int'. */ -GArchInstruction *dalvik_read_instr_neg_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'neg-long'. */ -GArchInstruction *dalvik_read_instr_neg_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'new-array'. */ -GArchInstruction *dalvik_read_instr_new_array(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'new-instance'. */ -GArchInstruction *dalvik_read_instr_new_instance(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'nop'. */ -GArchInstruction *dalvik_read_instr_nop(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'not-int'. */ -GArchInstruction *dalvik_read_instr_not_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'not-long'. */ -GArchInstruction *dalvik_read_instr_not_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-int'. */ -GArchInstruction *dalvik_read_instr_or_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-int/2addr'. */ -GArchInstruction *dalvik_read_instr_or_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-int/lit8'. */ -GArchInstruction *dalvik_read_instr_or_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-int/lit16'. */ -GArchInstruction *dalvik_read_instr_or_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-long'. */ -GArchInstruction *dalvik_read_instr_or_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'or-long/2addr'. */ -GArchInstruction *dalvik_read_instr_or_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'packed-switch'. */ -GArchInstruction *dalvik_read_instr_packed_switch(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-double'. */ -GArchInstruction *dalvik_read_instr_rem_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-double/2addr'. */ -GArchInstruction *dalvik_read_instr_rem_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-float'. */ -GArchInstruction *dalvik_read_instr_rem_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-float/2addr'. */ -GArchInstruction *dalvik_read_instr_rem_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-int'. */ -GArchInstruction *dalvik_read_instr_rem_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-int/2addr'. */ -GArchInstruction *dalvik_read_instr_rem_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-int/lit8'. */ -GArchInstruction *dalvik_read_instr_rem_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-int/lit16'. */ -GArchInstruction *dalvik_read_instr_rem_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-long'. */ -GArchInstruction *dalvik_read_instr_rem_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rem-long/2addr'. */ -GArchInstruction *dalvik_read_instr_rem_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rsub-int'. */ -GArchInstruction *dalvik_read_instr_rsub_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'rsub-int/lit8'. */ -GArchInstruction *dalvik_read_instr_rsub_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'return'. */ -GArchInstruction *dalvik_read_instr_return(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'return-object'. */ -GArchInstruction *dalvik_read_instr_return_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'return-void'. */ -GArchInstruction *dalvik_read_instr_return_void(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'return-wide'. */ -GArchInstruction *dalvik_read_instr_return_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget'. */ -GArchInstruction *dalvik_read_instr_sget(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-boolean'. */ -GArchInstruction *dalvik_read_instr_sget_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-byte'. */ -GArchInstruction *dalvik_read_instr_sget_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-char'. */ -GArchInstruction *dalvik_read_instr_sget_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-object'. */ -GArchInstruction *dalvik_read_instr_sget_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-short'. */ -GArchInstruction *dalvik_read_instr_sget_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sget-wide'. */ -GArchInstruction *dalvik_read_instr_sget_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shl-int'. */ -GArchInstruction *dalvik_read_instr_shl_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shl-int/2addr'. */ -GArchInstruction *dalvik_read_instr_shl_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shl-int/lit8'. */ -GArchInstruction *dalvik_read_instr_shl_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shl-long'. */ -GArchInstruction *dalvik_read_instr_shl_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shl-long/2addr'. */ -GArchInstruction *dalvik_read_instr_shl_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shr-int'. */ -GArchInstruction *dalvik_read_instr_shr_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shr-int/2addr'. */ -GArchInstruction *dalvik_read_instr_shr_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shr-int/lit8'. */ -GArchInstruction *dalvik_read_instr_shr_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shr-long'. */ -GArchInstruction *dalvik_read_instr_shr_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'shr-long/2addr'. */ -GArchInstruction *dalvik_read_instr_shr_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sparse-switch'. */ -GArchInstruction *dalvik_read_instr_sparse_switch(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput'. */ -GArchInstruction *dalvik_read_instr_sput(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-boolean'. */ -GArchInstruction *dalvik_read_instr_sput_boolean(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-byte'. */ -GArchInstruction *dalvik_read_instr_sput_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-char'. */ -GArchInstruction *dalvik_read_instr_sput_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-object'. */ -GArchInstruction *dalvik_read_instr_sput_object(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-short'. */ -GArchInstruction *dalvik_read_instr_sput_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sput-wide'. */ -GArchInstruction *dalvik_read_instr_sput_wide(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-double'. */ -GArchInstruction *dalvik_read_instr_sub_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-double/2addr'. */ -GArchInstruction *dalvik_read_instr_sub_double_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-float'. */ -GArchInstruction *dalvik_read_instr_sub_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-float/2addr'. */ -GArchInstruction *dalvik_read_instr_sub_float_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-int'. */ -GArchInstruction *dalvik_read_instr_sub_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-int/2addr'. */ -GArchInstruction *dalvik_read_instr_sub_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-long'. */ -GArchInstruction *dalvik_read_instr_sub_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'sub-long/2addr'. */ -GArchInstruction *dalvik_read_instr_sub_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-byte'. */ -GArchInstruction *dalvik_read_instr_to_int_byte(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-char'. */ -GArchInstruction *dalvik_read_instr_to_int_char(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-double'. */ -GArchInstruction *dalvik_read_instr_to_int_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-float'. */ -GArchInstruction *dalvik_read_instr_to_int_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-long'. */ -GArchInstruction *dalvik_read_instr_to_int_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'int-to-short'. */ -GArchInstruction *dalvik_read_instr_to_int_short(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'double-to-float'. */ -GArchInstruction *dalvik_read_instr_to_double_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'double-to-int'. */ -GArchInstruction *dalvik_read_instr_to_double_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'double-to-long'. */ -GArchInstruction *dalvik_read_instr_to_double_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'float-to-double'. */ -GArchInstruction *dalvik_read_instr_to_float_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'float-to-int'. */ -GArchInstruction *dalvik_read_instr_to_float_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'float-to-long'. */ -GArchInstruction *dalvik_read_instr_to_float_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'long-to-double'. */ -GArchInstruction *dalvik_read_instr_to_long_double(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'long-to-float'. */ -GArchInstruction *dalvik_read_instr_to_long_float(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'long-to-int'. */ -GArchInstruction *dalvik_read_instr_to_long_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'throw'. */ -GArchInstruction *dalvik_read_instr_throw(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'ushr-int'. */ -GArchInstruction *dalvik_read_instr_ushr_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'ushr-int/2addr'. */ -GArchInstruction *dalvik_read_instr_ushr_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'ushr-int/lit8'. */ -GArchInstruction *dalvik_read_instr_ushr_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'ushr-long'. */ -GArchInstruction *dalvik_read_instr_ushr_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'ushr-long/2addr'. */ -GArchInstruction *dalvik_read_instr_ushr_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-int'. */ -GArchInstruction *dalvik_read_instr_xor_int(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-int/2addr'. */ -GArchInstruction *dalvik_read_instr_xor_int_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-int/lit8'. */ -GArchInstruction *dalvik_read_instr_xor_int_lit8(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-int/lit16'. */ -GArchInstruction *dalvik_read_instr_xor_int_lit16(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-long'. */ -GArchInstruction *dalvik_read_instr_xor_long(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - -/* Décode une instruction de type 'xor-long/2addr'. */ -GArchInstruction *dalvik_read_instr_xor_long_2addr(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *, const GDexFormat *); - - - -#endif /* _ARCH_DALVIK_OPCODES_H */ diff --git a/src/arch/dalvik/opcodes/or.c b/src/arch/dalvik/opcodes/or.c deleted file mode 100644 index 8904f48..0000000 --- a/src/arch/dalvik/opcodes/or.c +++ /dev/null @@ -1,263 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * or.c - décodage des opérations de OU logiques - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'or-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_or_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_OR_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/rem.c b/src/arch/dalvik/opcodes/rem.c deleted file mode 100644 index 0ba12de..0000000 --- a/src/arch/dalvik/opcodes/rem.c +++ /dev/null @@ -1,419 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * rem.c - décodage des opérations de restes de division - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-double/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_DOUBLE_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-float/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_FLOAT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rem-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rem_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_REM_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/ret.c b/src/arch/dalvik/opcodes/ret.c deleted file mode 100644 index 7e53ada..0000000 --- a/src/arch/dalvik/opcodes/ret.c +++ /dev/null @@ -1,177 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * ret.c - décodage des ordres de retour - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'return'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_return(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RETURN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'return-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_return_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RETURN_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'return-void'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_return_void(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RETURN_VOID); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_10X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'return-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_return_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RETURN_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/rsub.c b/src/arch/dalvik/opcodes/rsub.c deleted file mode 100644 index 9ee9331..0000000 --- a/src/arch/dalvik/opcodes/rsub.c +++ /dev/null @@ -1,107 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * rsub.c - décodage des opérations de soustractions inverses - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rsub-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rsub_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RSUB_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'rsub-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_rsub_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_RSUB_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/sget.c b/src/arch/dalvik/opcodes/sget.c deleted file mode 100644 index bc1aca0..0000000 --- a/src/arch/dalvik/opcodes/sget.c +++ /dev/null @@ -1,302 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * sget.c - décodage des instructions manipulant des champs statiques (chargement) - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sget-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sget_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SGET_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/shl.c b/src/arch/dalvik/opcodes/shl.c deleted file mode 100644 index 3ee88b8..0000000 --- a/src/arch/dalvik/opcodes/shl.c +++ /dev/null @@ -1,224 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * shl.c - décodage des opérations de décalage à gauche - * - * Copyright (C) 2011-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shl-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shl_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHL_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shl-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shl_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHL_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shl-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shl_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHL_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shl-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shl_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHL_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shl-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shl_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHL_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/shr.c b/src/arch/dalvik/opcodes/shr.c deleted file mode 100644 index 1656164..0000000 --- a/src/arch/dalvik/opcodes/shr.c +++ /dev/null @@ -1,224 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * shr.c - décodage des opérations de décalage à droite signé - * - * Copyright (C) 2011-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shr-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shr_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHR_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shr-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shr_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHR_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shr-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shr_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHR_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shr-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shr_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHR_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'shr-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_shr_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SHR_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/sput.c b/src/arch/dalvik/opcodes/sput.c deleted file mode 100644 index 281df25..0000000 --- a/src/arch/dalvik/opcodes/sput.c +++ /dev/null @@ -1,288 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * sput.c - décodage des instructions manipulant des champs statiques (enregistrement) - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-boolean'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_boolean(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_BOOLEAN); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-object'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_object(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_OBJECT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sput-wide'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sput_wide(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPUT_WIDE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_21C | DALVIK_OP_POOL(DPT_FIELD))) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/sub.c b/src/arch/dalvik/opcodes/sub.c deleted file mode 100644 index 98af25e..0000000 --- a/src/arch/dalvik/opcodes/sub.c +++ /dev/null @@ -1,341 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * sub.c - décodage des opérations de soustraction - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-double/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_double_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_DOUBLE_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-float/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_float_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_FLOAT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sub-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sub_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SUB_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/switch.c b/src/arch/dalvik/opcodes/switch.c deleted file mode 100644 index 8b3c7a6..0000000 --- a/src/arch/dalvik/opcodes/switch.c +++ /dev/null @@ -1,103 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * switch.c - décompilation des branchements multiples - * - * Copyright (C) 2011-2013 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'packed-switch'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_packed_switch(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_PACKED_SWITCH); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'sparse-switch'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_sparse_switch(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_SPARSE_SWITCH); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_31T)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/throw.c b/src/arch/dalvik/opcodes/throw.c deleted file mode 100644 index 18602bc..0000000 --- a/src/arch/dalvik/opcodes/throw.c +++ /dev/null @@ -1,66 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * monitor.c - décodage des opérations d'envoi d'exceptions - * - * Copyright (C) 2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'throw'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_throw(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_THROW); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_11X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - return result; - -} diff --git a/src/arch/dalvik/opcodes/to.c b/src/arch/dalvik/opcodes/to.c deleted file mode 100644 index a8d3962..0000000 --- a/src/arch/dalvik/opcodes/to.c +++ /dev/null @@ -1,614 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * to.c - décodage des instructions de conversions forcées - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-byte'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_byte(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_BYTE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-char'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_char(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_CHAR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'int-to-short'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_int_short(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_INT_SHORT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'double-to-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_double_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_DOUBLE_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'double-to-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_double_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_DOUBLE_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'double-to-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_double_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_DOUBLE_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'float-to-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_float_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_FLOAT_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'float-to-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_float_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_FLOAT_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'float-to-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_float_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_FLOAT_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'long-to-double'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_long_double(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_LONG_DOUBLE); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'long-to-float'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_long_float(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_LONG_FLOAT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'long-to-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_to_long_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_TO_LONG_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/ushr.c b/src/arch/dalvik/opcodes/ushr.c deleted file mode 100644 index ed377de..0000000 --- a/src/arch/dalvik/opcodes/ushr.c +++ /dev/null @@ -1,224 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * ushr.c - décodage des opérations de décalage à droite non signé - * - * Copyright (C) 2011-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'ushr-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_ushr_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_USHR_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'ushr-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_ushr_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_USHR_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'ushr-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_ushr_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_USHR_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'ushr-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_ushr_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_USHR_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'ushr-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_ushr_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_USHR_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opcodes/xor.c b/src/arch/dalvik/opcodes/xor.c deleted file mode 100644 index bf41560..0000000 --- a/src/arch/dalvik/opcodes/xor.c +++ /dev/null @@ -1,263 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * xor.c - décodage des opérations de OU exclusifs et logiques - * - * Copyright (C) 2010-2012 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see . - */ - - -#include "opcodes.h" - - -#include "../instruction.h" -#include "../operand.h" - - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-int'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_int(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_INT); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-int/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_int_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_INT_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-int/lit8'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_int_lit8(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_INT_LIT8); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22B)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-int/lit16'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_int_lit16(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_INT_LIT16); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_22S)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-long'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_long(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_LONG); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_23X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * -* fmt = format du fichier contenant le code. * -* * -* Description : Décode une instruction de type 'xor-long/2addr'. * -* * -* Retour : Instruction mise en place ou NULL. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *dalvik_read_instr_xor_long_2addr(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc, const GDexFormat *fmt) -{ - GArchInstruction *result; /* Instruction à retourner */ - SourceEndian endian; /* Boutisme lié au binaire */ - - result = g_dalvik_instruction_new(DOP_XOR_LONG_2ADDR); - - endian = g_arch_processor_get_endianness(G_ARCH_PROCESSOR(proc)); - - if (!dalvik_read_operands(result, fmt, data, pos, end, endian, DALVIK_OPT_12X)) - { - g_object_unref(G_OBJECT(result)); - return NULL; - } - - dalvik_mark_first_operand_as_written(result); - - return result; - -} diff --git a/src/arch/dalvik/opdefs/Makefile.am b/src/arch/dalvik/opdefs/Makefile.am new file mode 100644 index 0000000..115f75c --- /dev/null +++ b/src/arch/dalvik/opdefs/Makefile.am @@ -0,0 +1,268 @@ + +include ../../../../tools/d2c/d2c.mk + + +D2C_BIN = ../../../../tools/d2c/d2c +GEN_BIN = ../../../../tools/d2c/d2c_genmakefile.sh + +D2C_TYPE = format + +D2C_OUTDIR = $(PWD)/.. + +D2C_ARCH = dalvik +D2C_HEADER = _ARCH_DALVIK +D2C_PREFIX = DALVIK_OPT_ + +D2C_ENCODINGS = \ + -e none + +FIXED_C_INCLUDES = \ + \n\#include \ \ + \n \ + \n\#include \"..\/instruction.h\" \ + \n\#include \"..\/operand.h\" \ + \n\#include \"..\/processor.h\" \ + \n\#include \"..\/..\/context.h\" \ + \n\#include \"..\/..\/..\/analysis\/content.h\" \ + \n\#include \"..\/..\/..\/format\/executable.h\" \ + \n\n + +FIXED_H_INCLUDES = \ + \n\#include \ \ + \n \ + \n\#include \"..\/processor.h\" \ + \n\#include \"..\/..\/context.h\" \ + \n\#include \"..\/..\/..\/analysis\/content.h\" \ + \n\#include \"..\/..\/..\/format\/executable.h\" \ + \n\n + +# for (( i = 0; i < 256; i++)); do def=$(ls `printf "*_%02x.d" $i` 2> /dev/null); test -z "$def" || echo -e "\t$def\t\t\t\t\t\t\t\\" ; done +DALVIK_DEFS = \ + nop_00.d \ + move_01.d \ + move_02.d \ + move_03.d \ + move_04.d \ + move_05.d \ + move_06.d \ + move_07.d \ + move_08.d \ + move_09.d \ + move_0a.d \ + move_0b.d \ + move_0c.d \ + move_0d.d \ + return_0e.d \ + return_0f.d \ + return_10.d \ + return_11.d \ + const_12.d \ + const_13.d \ + const_14.d \ + const_15.d \ + const_16.d \ + const_17.d \ + const_18.d \ + const_19.d \ + const_1a.d \ + const_1b.d \ + const_1c.d \ + monitor_1d.d \ + monitor_1e.d \ + check_1f.d \ + instanceof_20.d \ + array_21.d \ + new_22.d \ + new_23.d \ + array_24.d \ + filled_25.d \ + array_26.d \ + throw_27.d \ + goto_28.d \ + goto_29.d \ + goto_2a.d \ + switch_2b.d \ + switch_2c.d \ + cmpl_2d.d \ + cmpg_2e.d \ + cmpl_2f.d \ + cmpg_30.d \ + cmp_31.d \ + if_32.d \ + if_33.d \ + if_34.d \ + if_35.d \ + if_36.d \ + if_37.d \ + if_38.d \ + if_39.d \ + if_3a.d \ + if_3b.d \ + if_3c.d \ + if_3d.d \ + aget_44.d \ + aget_45.d \ + aget_46.d \ + aget_47.d \ + aget_48.d \ + aget_49.d \ + aget_4a.d \ + aput_4b.d \ + aput_4c.d \ + aput_4d.d \ + aput_4e.d \ + aput_4f.d \ + aput_50.d \ + aput_51.d \ + iget_52.d \ + iget_53.d \ + iget_54.d \ + iget_55.d \ + iget_56.d \ + iget_57.d \ + iget_58.d \ + iput_59.d \ + iput_5a.d \ + iput_5b.d \ + iput_5c.d \ + iput_5d.d \ + iput_5e.d \ + iput_5f.d \ + sget_60.d \ + sget_61.d \ + sget_62.d \ + sget_63.d \ + sget_64.d \ + sget_65.d \ + sget_66.d \ + sput_67.d \ + sput_68.d \ + sput_69.d \ + sput_6a.d \ + sput_6b.d \ + sput_6c.d \ + sput_6d.d \ + invoke_6e.d \ + invoke_6f.d \ + invoke_70.d \ + invoke_71.d \ + invoke_72.d \ + invoke_74.d \ + invoke_75.d \ + invoke_76.d \ + invoke_77.d \ + invoke_78.d \ + neg_7b.d \ + not_7c.d \ + neg_7d.d \ + not_7e.d \ + neg_7f.d \ + neg_80.d \ + to_81.d \ + to_82.d \ + to_83.d \ + to_84.d \ + to_85.d \ + to_86.d \ + to_87.d \ + to_88.d \ + to_89.d \ + to_8a.d \ + to_8b.d \ + to_8c.d \ + to_8d.d \ + to_8e.d \ + to_8f.d \ + add_90.d \ + sub_91.d \ + mul_92.d \ + div_93.d \ + rem_94.d \ + and_95.d \ + or_96.d \ + xor_97.d \ + shl_98.d \ + shr_99.d \ + ushr_9a.d \ + add_9b.d \ + sub_9c.d \ + mul_9d.d \ + div_9e.d \ + rem_9f.d \ + and_a0.d \ + or_a1.d \ + xor_a2.d \ + shl_a3.d \ + shr_a4.d \ + ushr_a5.d \ + add_a6.d \ + sub_a7.d \ + mul_a8.d \ + div_a9.d \ + rem_aa.d \ + add_ab.d \ + sub_ac.d \ + mul_ad.d \ + div_ae.d \ + rem_af.d \ + add_b0.d \ + sub_b1.d \ + mul_b2.d \ + div_b3.d \ + rem_b4.d \ + and_b5.d \ + or_b6.d \ + xor_b7.d \ + shl_b8.d \ + shr_b9.d \ + ushr_ba.d \ + add_bb.d \ + sub_bc.d \ + mul_bd.d \ + div_be.d \ + rem_bf.d \ + and_c0.d \ + or_c1.d \ + xor_c2.d \ + shl_c3.d \ + shr_c4.d \ + ushr_c5.d \ + add_c6.d \ + sub_c7.d \ + mul_c8.d \ + div_c9.d \ + rem_ca.d \ + add_cb.d \ + sub_cc.d \ + mul_cd.d \ + div_ce.d \ + rem_cf.d \ + add_d0.d \ + rsub_d1.d \ + mul_d2.d \ + div_d3.d \ + rem_d4.d \ + and_d5.d \ + or_d6.d \ + xor_d7.d \ + add_d8.d \ + rsub_d9.d \ + mul_da.d \ + div_db.d \ + rem_dc.d \ + and_dd.d \ + or_de.d \ + xor_df.d \ + shl_e0.d \ + shr_e1.d \ + ushr_e2.d + + +all: $(DALVIK_DEFS:.d=.g) fmk.done d2c_final_rules + +fmk.done: $(DALVIK_DEFS) + $(GEN_BIN) ../opcodes/ ../opdefs/.gen ../../../../tools/d2c/globalgen.mk - + touch $@ + +clean: + rm -rf $(DALVIK_DEFS:.d=.g) .gen fmk.done diff --git a/src/arch/dalvik/opdefs/add_90.d b/src/arch/dalvik/opdefs/add_90.d new file mode 100644 index 0000000..04168ab --- /dev/null +++ b/src/arch/dalvik/opdefs/add_90.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/add_9b.d b/src/arch/dalvik/opdefs/add_9b.d new file mode 100644 index 0000000..fc40b13 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_9b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/add_a6.d b/src/arch/dalvik/opdefs/add_a6.d new file mode 100644 index 0000000..055358b --- /dev/null +++ b/src/arch/dalvik/opdefs/add_a6.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/add_ab.d b/src/arch/dalvik/opdefs/add_ab.d new file mode 100644 index 0000000..1506483 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_ab.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/add_b0.d b/src/arch/dalvik/opdefs/add_b0.d new file mode 100644 index 0000000..9c5605e --- /dev/null +++ b/src/arch/dalvik/opdefs/add_b0.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/add_bb.d b/src/arch/dalvik/opdefs/add_bb.d new file mode 100644 index 0000000..aba27f3 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_bb.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/add_c6.d b/src/arch/dalvik/opdefs/add_c6.d new file mode 100644 index 0000000..3394b92 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_c6.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-float/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/add_cb.d b/src/arch/dalvik/opdefs/add_cb.d new file mode 100644 index 0000000..896f614 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_cb.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-double/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/add_d0.d b/src/arch/dalvik/opdefs/add_d0.d new file mode 100644 index 0000000..f6f4324 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_d0.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/add_d8.d b/src/arch/dalvik/opdefs/add_d8.d new file mode 100644 index 0000000..ec4ee01 --- /dev/null +++ b/src/arch/dalvik/opdefs/add_d8.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title add-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/aget_44.d b/src/arch/dalvik/opdefs/aget_44.d new file mode 100644 index 0000000..b3a26cb --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_44.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_45.d b/src/arch/dalvik/opdefs/aget_45.d new file mode 100644 index 0000000..184667b --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_45.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-wide + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_46.d b/src/arch/dalvik/opdefs/aget_46.d new file mode 100644 index 0000000..b951c09 --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_46.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-object + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_47.d b/src/arch/dalvik/opdefs/aget_47.d new file mode 100644 index 0000000..0a5e90b --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_47.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-boolean + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_48.d b/src/arch/dalvik/opdefs/aget_48.d new file mode 100644 index 0000000..c84f513 --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_48.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-byte + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_49.d b/src/arch/dalvik/opdefs/aget_49.d new file mode 100644 index 0000000..396434b --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_49.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-char + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aget_4a.d b/src/arch/dalvik/opdefs/aget_4a.d new file mode 100644 index 0000000..ce9497f --- /dev/null +++ b/src/arch/dalvik/opdefs/aget_4a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aget-short + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/and_95.d b/src/arch/dalvik/opdefs/and_95.d new file mode 100644 index 0000000..3926c05 --- /dev/null +++ b/src/arch/dalvik/opdefs/and_95.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/and_a0.d b/src/arch/dalvik/opdefs/and_a0.d new file mode 100644 index 0000000..b011156 --- /dev/null +++ b/src/arch/dalvik/opdefs/and_a0.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/and_b5.d b/src/arch/dalvik/opdefs/and_b5.d new file mode 100644 index 0000000..dec2ffb --- /dev/null +++ b/src/arch/dalvik/opdefs/and_b5.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/and_c0.d b/src/arch/dalvik/opdefs/and_c0.d new file mode 100644 index 0000000..6fb52b6 --- /dev/null +++ b/src/arch/dalvik/opdefs/and_c0.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/and_d5.d b/src/arch/dalvik/opdefs/and_d5.d new file mode 100644 index 0000000..081c0d0 --- /dev/null +++ b/src/arch/dalvik/opdefs/and_d5.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/and_dd.d b/src/arch/dalvik/opdefs/and_dd.d new file mode 100644 index 0000000..8adae05 --- /dev/null +++ b/src/arch/dalvik/opdefs/and_dd.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title and-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/aput_4b.d b/src/arch/dalvik/opdefs/aput_4b.d new file mode 100644 index 0000000..90cc75f --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_4b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_4c.d b/src/arch/dalvik/opdefs/aput_4c.d new file mode 100644 index 0000000..ff545f4 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_4c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-wide + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_4d.d b/src/arch/dalvik/opdefs/aput_4d.d new file mode 100644 index 0000000..4c9ae98 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_4d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-object + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_4e.d b/src/arch/dalvik/opdefs/aput_4e.d new file mode 100644 index 0000000..1602e62 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_4e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-boolean + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_4f.d b/src/arch/dalvik/opdefs/aput_4f.d new file mode 100644 index 0000000..3632974 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_4f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-byte + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_50.d b/src/arch/dalvik/opdefs/aput_50.d new file mode 100644 index 0000000..c295386 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_50.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-char + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/aput_51.d b/src/arch/dalvik/opdefs/aput_51.d new file mode 100644 index 0000000..11ad5b2 --- /dev/null +++ b/src/arch/dalvik/opdefs/aput_51.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title aput-short + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/array_21.d b/src/arch/dalvik/opdefs/array_21.d new file mode 100644 index 0000000..e0ca860 --- /dev/null +++ b/src/arch/dalvik/opdefs/array_21.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title array-length + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/array_24.d b/src/arch/dalvik/opdefs/array_24.d new file mode 100644 index 0000000..b7dc4d4 --- /dev/null +++ b/src/arch/dalvik/opdefs/array_24.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title filled-new-array + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/array_26.d b/src/arch/dalvik/opdefs/array_26.d new file mode 100644 index 0000000..f57afd1 --- /dev/null +++ b/src/arch/dalvik/opdefs/array_26.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title fill-array-data + +@encoding() { + + @format 31t + +} diff --git a/src/arch/dalvik/opdefs/check_1f.d b/src/arch/dalvik/opdefs/check_1f.d new file mode 100644 index 0000000..7de7e56 --- /dev/null +++ b/src/arch/dalvik/opdefs/check_1f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title check-cast + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/cmp_31.d b/src/arch/dalvik/opdefs/cmp_31.d new file mode 100644 index 0000000..baedee6 --- /dev/null +++ b/src/arch/dalvik/opdefs/cmp_31.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title cmp-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/cmpg_2e.d b/src/arch/dalvik/opdefs/cmpg_2e.d new file mode 100644 index 0000000..296337c --- /dev/null +++ b/src/arch/dalvik/opdefs/cmpg_2e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title cmpg-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/cmpg_30.d b/src/arch/dalvik/opdefs/cmpg_30.d new file mode 100644 index 0000000..dbb66ae --- /dev/null +++ b/src/arch/dalvik/opdefs/cmpg_30.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title cmpg-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/cmpl_2d.d b/src/arch/dalvik/opdefs/cmpl_2d.d new file mode 100644 index 0000000..b76b73e --- /dev/null +++ b/src/arch/dalvik/opdefs/cmpl_2d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title cmpl-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/cmpl_2f.d b/src/arch/dalvik/opdefs/cmpl_2f.d new file mode 100644 index 0000000..cebd732 --- /dev/null +++ b/src/arch/dalvik/opdefs/cmpl_2f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title cmpl-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/const_12.d b/src/arch/dalvik/opdefs/const_12.d new file mode 100644 index 0000000..bc4e4f8 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_12.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const/4 + +@encoding() { + + @format 11n + +} diff --git a/src/arch/dalvik/opdefs/const_13.d b/src/arch/dalvik/opdefs/const_13.d new file mode 100644 index 0000000..9b65ba4 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_13.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const/16 + +@encoding() { + + @format 21s + +} diff --git a/src/arch/dalvik/opdefs/const_14.d b/src/arch/dalvik/opdefs/const_14.d new file mode 100644 index 0000000..039d372 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_14.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const + +@encoding() { + + @format 31i + +} diff --git a/src/arch/dalvik/opdefs/const_15.d b/src/arch/dalvik/opdefs/const_15.d new file mode 100644 index 0000000..add0673 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_15.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const/high16 + +@encoding() { + + @format 21h + +} diff --git a/src/arch/dalvik/opdefs/const_16.d b/src/arch/dalvik/opdefs/const_16.d new file mode 100644 index 0000000..cb1ce25 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_16.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-wide/16 + +@encoding() { + + @format 21s + +} diff --git a/src/arch/dalvik/opdefs/const_17.d b/src/arch/dalvik/opdefs/const_17.d new file mode 100644 index 0000000..88a9f0c --- /dev/null +++ b/src/arch/dalvik/opdefs/const_17.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-wide/32 + +@encoding() { + + @format 31i + +} diff --git a/src/arch/dalvik/opdefs/const_18.d b/src/arch/dalvik/opdefs/const_18.d new file mode 100644 index 0000000..d792add --- /dev/null +++ b/src/arch/dalvik/opdefs/const_18.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-wide + +@encoding() { + + @format 51l + +} diff --git a/src/arch/dalvik/opdefs/const_19.d b/src/arch/dalvik/opdefs/const_19.d new file mode 100644 index 0000000..577eaf3 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_19.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-wide/high16 + +@encoding() { + + @format 21h + +} diff --git a/src/arch/dalvik/opdefs/const_1a.d b/src/arch/dalvik/opdefs/const_1a.d new file mode 100644 index 0000000..c6d3f62 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_1a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-string + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/const_1b.d b/src/arch/dalvik/opdefs/const_1b.d new file mode 100644 index 0000000..e7c97e1 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_1b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-string/jumbo + +@encoding() { + + @format 31c + +} diff --git a/src/arch/dalvik/opdefs/const_1c.d b/src/arch/dalvik/opdefs/const_1c.d new file mode 100644 index 0000000..623fca0 --- /dev/null +++ b/src/arch/dalvik/opdefs/const_1c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title const-class + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/div_93.d b/src/arch/dalvik/opdefs/div_93.d new file mode 100644 index 0000000..cfb7f34 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_93.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/div_9e.d b/src/arch/dalvik/opdefs/div_9e.d new file mode 100644 index 0000000..b12ebd1 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_9e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/div_a9.d b/src/arch/dalvik/opdefs/div_a9.d new file mode 100644 index 0000000..f7ce52e --- /dev/null +++ b/src/arch/dalvik/opdefs/div_a9.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/div_ae.d b/src/arch/dalvik/opdefs/div_ae.d new file mode 100644 index 0000000..fae8164 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_ae.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/div_b3.d b/src/arch/dalvik/opdefs/div_b3.d new file mode 100644 index 0000000..d1cf5d9 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_b3.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/div_be.d b/src/arch/dalvik/opdefs/div_be.d new file mode 100644 index 0000000..a146c29 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_be.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/div_c9.d b/src/arch/dalvik/opdefs/div_c9.d new file mode 100644 index 0000000..541ed90 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_c9.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-float/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/div_ce.d b/src/arch/dalvik/opdefs/div_ce.d new file mode 100644 index 0000000..2c735e4 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_ce.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-double/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/div_d3.d b/src/arch/dalvik/opdefs/div_d3.d new file mode 100644 index 0000000..9dde5bd --- /dev/null +++ b/src/arch/dalvik/opdefs/div_d3.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/div_db.d b/src/arch/dalvik/opdefs/div_db.d new file mode 100644 index 0000000..6754ed8 --- /dev/null +++ b/src/arch/dalvik/opdefs/div_db.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title div-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/filled_25.d b/src/arch/dalvik/opdefs/filled_25.d new file mode 100644 index 0000000..7bb4088 --- /dev/null +++ b/src/arch/dalvik/opdefs/filled_25.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title filled-new-array/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/goto_28.d b/src/arch/dalvik/opdefs/goto_28.d new file mode 100644 index 0000000..ab5d4e6 --- /dev/null +++ b/src/arch/dalvik/opdefs/goto_28.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title goto + +@encoding() { + + @format 10t + +} diff --git a/src/arch/dalvik/opdefs/goto_29.d b/src/arch/dalvik/opdefs/goto_29.d new file mode 100644 index 0000000..3df2500 --- /dev/null +++ b/src/arch/dalvik/opdefs/goto_29.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title goto/16 + +@encoding() { + + @format 20t + +} diff --git a/src/arch/dalvik/opdefs/goto_2a.d b/src/arch/dalvik/opdefs/goto_2a.d new file mode 100644 index 0000000..ea2f8aa --- /dev/null +++ b/src/arch/dalvik/opdefs/goto_2a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title goto/32 + +@encoding() { + + @format 30t + +} diff --git a/src/arch/dalvik/opdefs/if_32.d b/src/arch/dalvik/opdefs/if_32.d new file mode 100644 index 0000000..587b4c2 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_32.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-eq + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_33.d b/src/arch/dalvik/opdefs/if_33.d new file mode 100644 index 0000000..51f09cc --- /dev/null +++ b/src/arch/dalvik/opdefs/if_33.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-ne + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_34.d b/src/arch/dalvik/opdefs/if_34.d new file mode 100644 index 0000000..14429eb --- /dev/null +++ b/src/arch/dalvik/opdefs/if_34.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-lt + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_35.d b/src/arch/dalvik/opdefs/if_35.d new file mode 100644 index 0000000..642e1b0 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_35.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-ge + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_36.d b/src/arch/dalvik/opdefs/if_36.d new file mode 100644 index 0000000..962b341 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_36.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-gt + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_37.d b/src/arch/dalvik/opdefs/if_37.d new file mode 100644 index 0000000..29f1601 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_37.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-le + +@encoding() { + + @format 22t + +} diff --git a/src/arch/dalvik/opdefs/if_38.d b/src/arch/dalvik/opdefs/if_38.d new file mode 100644 index 0000000..19d0ad9 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_38.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-eqz + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/if_39.d b/src/arch/dalvik/opdefs/if_39.d new file mode 100644 index 0000000..fc63f81 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_39.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-nez + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/if_3a.d b/src/arch/dalvik/opdefs/if_3a.d new file mode 100644 index 0000000..4f78692 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_3a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-ltz + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/if_3b.d b/src/arch/dalvik/opdefs/if_3b.d new file mode 100644 index 0000000..2d4a804 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_3b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-gez + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/if_3c.d b/src/arch/dalvik/opdefs/if_3c.d new file mode 100644 index 0000000..08dcf19 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_3c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-gtz + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/if_3d.d b/src/arch/dalvik/opdefs/if_3d.d new file mode 100644 index 0000000..fd0b239 --- /dev/null +++ b/src/arch/dalvik/opdefs/if_3d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title if-lez + +@encoding() { + + @format 21t + +} diff --git a/src/arch/dalvik/opdefs/iget_52.d b/src/arch/dalvik/opdefs/iget_52.d new file mode 100644 index 0000000..6217ddb --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_52.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_53.d b/src/arch/dalvik/opdefs/iget_53.d new file mode 100644 index 0000000..adf089e --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_53.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-wide + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_54.d b/src/arch/dalvik/opdefs/iget_54.d new file mode 100644 index 0000000..45bc02c --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_54.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-object + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_55.d b/src/arch/dalvik/opdefs/iget_55.d new file mode 100644 index 0000000..d5a37bc --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_55.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-boolean + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_56.d b/src/arch/dalvik/opdefs/iget_56.d new file mode 100644 index 0000000..5bffd30 --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_56.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-byte + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_57.d b/src/arch/dalvik/opdefs/iget_57.d new file mode 100644 index 0000000..43ba4b6 --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_57.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-char + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iget_58.d b/src/arch/dalvik/opdefs/iget_58.d new file mode 100644 index 0000000..aba5271 --- /dev/null +++ b/src/arch/dalvik/opdefs/iget_58.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iget-short + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/instanceof_20.d b/src/arch/dalvik/opdefs/instanceof_20.d new file mode 100644 index 0000000..82136a2 --- /dev/null +++ b/src/arch/dalvik/opdefs/instanceof_20.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title instance-of + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/invoke_6e.d b/src/arch/dalvik/opdefs/invoke_6e.d new file mode 100644 index 0000000..e9a679b --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_6e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-virtual + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/invoke_6f.d b/src/arch/dalvik/opdefs/invoke_6f.d new file mode 100644 index 0000000..80834e2 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_6f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-super + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/invoke_70.d b/src/arch/dalvik/opdefs/invoke_70.d new file mode 100644 index 0000000..0624fa3 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_70.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-direct + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/invoke_71.d b/src/arch/dalvik/opdefs/invoke_71.d new file mode 100644 index 0000000..7088d9f --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_71.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-static + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/invoke_72.d b/src/arch/dalvik/opdefs/invoke_72.d new file mode 100644 index 0000000..fc15dd6 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_72.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-interface + +@encoding() { + + @format 35c + +} diff --git a/src/arch/dalvik/opdefs/invoke_74.d b/src/arch/dalvik/opdefs/invoke_74.d new file mode 100644 index 0000000..0703ea7 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_74.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-virtual/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/invoke_75.d b/src/arch/dalvik/opdefs/invoke_75.d new file mode 100644 index 0000000..351ccc7 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_75.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-super/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/invoke_76.d b/src/arch/dalvik/opdefs/invoke_76.d new file mode 100644 index 0000000..cf00220 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_76.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-direct/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/invoke_77.d b/src/arch/dalvik/opdefs/invoke_77.d new file mode 100644 index 0000000..76aa1d0 --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_77.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-static/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/invoke_78.d b/src/arch/dalvik/opdefs/invoke_78.d new file mode 100644 index 0000000..fd4d1ee --- /dev/null +++ b/src/arch/dalvik/opdefs/invoke_78.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title invoke-interface/range + +@encoding() { + + @format 3rc + +} diff --git a/src/arch/dalvik/opdefs/iput_59.d b/src/arch/dalvik/opdefs/iput_59.d new file mode 100644 index 0000000..d4058c3 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_59.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5a.d b/src/arch/dalvik/opdefs/iput_5a.d new file mode 100644 index 0000000..84ba41a --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-wide + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5b.d b/src/arch/dalvik/opdefs/iput_5b.d new file mode 100644 index 0000000..628bfc2 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-object + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5c.d b/src/arch/dalvik/opdefs/iput_5c.d new file mode 100644 index 0000000..7121604 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-boolean + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5d.d b/src/arch/dalvik/opdefs/iput_5d.d new file mode 100644 index 0000000..96ff6c0 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-byte + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5e.d b/src/arch/dalvik/opdefs/iput_5e.d new file mode 100644 index 0000000..888ce46 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-char + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/iput_5f.d b/src/arch/dalvik/opdefs/iput_5f.d new file mode 100644 index 0000000..5ed0a01 --- /dev/null +++ b/src/arch/dalvik/opdefs/iput_5f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title iput-short + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/monitor_1d.d b/src/arch/dalvik/opdefs/monitor_1d.d new file mode 100644 index 0000000..ab7ce5f --- /dev/null +++ b/src/arch/dalvik/opdefs/monitor_1d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title monitor-enter + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/monitor_1e.d b/src/arch/dalvik/opdefs/monitor_1e.d new file mode 100644 index 0000000..b5b0d20 --- /dev/null +++ b/src/arch/dalvik/opdefs/monitor_1e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title monitor-exit + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/move_01.d b/src/arch/dalvik/opdefs/move_01.d new file mode 100644 index 0000000..caa2a85 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_01.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/move_02.d b/src/arch/dalvik/opdefs/move_02.d new file mode 100644 index 0000000..c8b96bd --- /dev/null +++ b/src/arch/dalvik/opdefs/move_02.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move/from16 + +@encoding() { + + @format 22x + +} diff --git a/src/arch/dalvik/opdefs/move_03.d b/src/arch/dalvik/opdefs/move_03.d new file mode 100644 index 0000000..6957de7 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_03.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move/16 + +@encoding() { + + @format 32x + +} diff --git a/src/arch/dalvik/opdefs/move_04.d b/src/arch/dalvik/opdefs/move_04.d new file mode 100644 index 0000000..57196cc --- /dev/null +++ b/src/arch/dalvik/opdefs/move_04.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-wide + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/move_05.d b/src/arch/dalvik/opdefs/move_05.d new file mode 100644 index 0000000..2b974bb --- /dev/null +++ b/src/arch/dalvik/opdefs/move_05.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-wide/from16 + +@encoding() { + + @format 22x + +} diff --git a/src/arch/dalvik/opdefs/move_06.d b/src/arch/dalvik/opdefs/move_06.d new file mode 100644 index 0000000..4acaf62 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_06.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-wide/16 + +@encoding() { + + @format 32x + +} diff --git a/src/arch/dalvik/opdefs/move_07.d b/src/arch/dalvik/opdefs/move_07.d new file mode 100644 index 0000000..cde3102 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_07.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-object + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/move_08.d b/src/arch/dalvik/opdefs/move_08.d new file mode 100644 index 0000000..aba0cad --- /dev/null +++ b/src/arch/dalvik/opdefs/move_08.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-object/from16 + +@encoding() { + + @format 22x + +} diff --git a/src/arch/dalvik/opdefs/move_09.d b/src/arch/dalvik/opdefs/move_09.d new file mode 100644 index 0000000..3bf6a65 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_09.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-object/16 + +@encoding() { + + @format 32x + +} diff --git a/src/arch/dalvik/opdefs/move_0a.d b/src/arch/dalvik/opdefs/move_0a.d new file mode 100644 index 0000000..b6a185a --- /dev/null +++ b/src/arch/dalvik/opdefs/move_0a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-result + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/move_0b.d b/src/arch/dalvik/opdefs/move_0b.d new file mode 100644 index 0000000..d266cb8 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_0b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-result-wide + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/move_0c.d b/src/arch/dalvik/opdefs/move_0c.d new file mode 100644 index 0000000..8e6f67f --- /dev/null +++ b/src/arch/dalvik/opdefs/move_0c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-result-object + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/move_0d.d b/src/arch/dalvik/opdefs/move_0d.d new file mode 100644 index 0000000..f442006 --- /dev/null +++ b/src/arch/dalvik/opdefs/move_0d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title move-exception + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/mul_92.d b/src/arch/dalvik/opdefs/mul_92.d new file mode 100644 index 0000000..83b5cac --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_92.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/mul_9d.d b/src/arch/dalvik/opdefs/mul_9d.d new file mode 100644 index 0000000..ecc216d --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_9d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/mul_a8.d b/src/arch/dalvik/opdefs/mul_a8.d new file mode 100644 index 0000000..63e51e5 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_a8.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/mul_ad.d b/src/arch/dalvik/opdefs/mul_ad.d new file mode 100644 index 0000000..17f950c --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_ad.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/mul_b2.d b/src/arch/dalvik/opdefs/mul_b2.d new file mode 100644 index 0000000..a7b917c --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_b2.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/mul_bd.d b/src/arch/dalvik/opdefs/mul_bd.d new file mode 100644 index 0000000..8ce23b1 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_bd.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/mul_c8.d b/src/arch/dalvik/opdefs/mul_c8.d new file mode 100644 index 0000000..1d17cc1 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_c8.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-float/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/mul_cd.d b/src/arch/dalvik/opdefs/mul_cd.d new file mode 100644 index 0000000..1816780 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_cd.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-double/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/mul_d2.d b/src/arch/dalvik/opdefs/mul_d2.d new file mode 100644 index 0000000..998ecd7 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_d2.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/mul_da.d b/src/arch/dalvik/opdefs/mul_da.d new file mode 100644 index 0000000..4c1a264 --- /dev/null +++ b/src/arch/dalvik/opdefs/mul_da.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title mul-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/neg_7b.d b/src/arch/dalvik/opdefs/neg_7b.d new file mode 100644 index 0000000..c8ec7df --- /dev/null +++ b/src/arch/dalvik/opdefs/neg_7b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title neg-int + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/neg_7d.d b/src/arch/dalvik/opdefs/neg_7d.d new file mode 100644 index 0000000..3d442c3 --- /dev/null +++ b/src/arch/dalvik/opdefs/neg_7d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title neg-long + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/neg_7f.d b/src/arch/dalvik/opdefs/neg_7f.d new file mode 100644 index 0000000..d30ede6 --- /dev/null +++ b/src/arch/dalvik/opdefs/neg_7f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title neg-float + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/neg_80.d b/src/arch/dalvik/opdefs/neg_80.d new file mode 100644 index 0000000..49d6bdd --- /dev/null +++ b/src/arch/dalvik/opdefs/neg_80.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title neg-double + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/new_22.d b/src/arch/dalvik/opdefs/new_22.d new file mode 100644 index 0000000..4c13f0e --- /dev/null +++ b/src/arch/dalvik/opdefs/new_22.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title new-instance + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/new_23.d b/src/arch/dalvik/opdefs/new_23.d new file mode 100644 index 0000000..ab61cd4 --- /dev/null +++ b/src/arch/dalvik/opdefs/new_23.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title new-array + +@encoding() { + + @format 22c + +} diff --git a/src/arch/dalvik/opdefs/nop_00.d b/src/arch/dalvik/opdefs/nop_00.d new file mode 100644 index 0000000..d10d439 --- /dev/null +++ b/src/arch/dalvik/opdefs/nop_00.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title nop + +@encoding() { + + @format 10x + +} diff --git a/src/arch/dalvik/opdefs/not_7c.d b/src/arch/dalvik/opdefs/not_7c.d new file mode 100644 index 0000000..d52ad8c --- /dev/null +++ b/src/arch/dalvik/opdefs/not_7c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title not-int + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/not_7e.d b/src/arch/dalvik/opdefs/not_7e.d new file mode 100644 index 0000000..4291d7a --- /dev/null +++ b/src/arch/dalvik/opdefs/not_7e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title not-long + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/or_96.d b/src/arch/dalvik/opdefs/or_96.d new file mode 100644 index 0000000..62f24a5 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_96.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/or_a1.d b/src/arch/dalvik/opdefs/or_a1.d new file mode 100644 index 0000000..2867a81 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_a1.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/or_b6.d b/src/arch/dalvik/opdefs/or_b6.d new file mode 100644 index 0000000..3d56801 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_b6.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/or_c1.d b/src/arch/dalvik/opdefs/or_c1.d new file mode 100644 index 0000000..8d13da3 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_c1.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/or_d6.d b/src/arch/dalvik/opdefs/or_d6.d new file mode 100644 index 0000000..71766a3 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_d6.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/or_de.d b/src/arch/dalvik/opdefs/or_de.d new file mode 100644 index 0000000..1c293a5 --- /dev/null +++ b/src/arch/dalvik/opdefs/or_de.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title or-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/rem_94.d b/src/arch/dalvik/opdefs/rem_94.d new file mode 100644 index 0000000..9238d14 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_94.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/rem_9f.d b/src/arch/dalvik/opdefs/rem_9f.d new file mode 100644 index 0000000..6aef568 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_9f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/rem_aa.d b/src/arch/dalvik/opdefs/rem_aa.d new file mode 100644 index 0000000..71a0d8b --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_aa.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/rem_af.d b/src/arch/dalvik/opdefs/rem_af.d new file mode 100644 index 0000000..dc092a1 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_af.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/rem_b4.d b/src/arch/dalvik/opdefs/rem_b4.d new file mode 100644 index 0000000..fada523 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_b4.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/rem_bf.d b/src/arch/dalvik/opdefs/rem_bf.d new file mode 100644 index 0000000..b6b0997 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_bf.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/rem_ca.d b/src/arch/dalvik/opdefs/rem_ca.d new file mode 100644 index 0000000..3c6d287 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_ca.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-float/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/rem_cf.d b/src/arch/dalvik/opdefs/rem_cf.d new file mode 100644 index 0000000..1881502 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_cf.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-double/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/rem_d4.d b/src/arch/dalvik/opdefs/rem_d4.d new file mode 100644 index 0000000..84d12b8 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_d4.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/rem_dc.d b/src/arch/dalvik/opdefs/rem_dc.d new file mode 100644 index 0000000..f70f9e9 --- /dev/null +++ b/src/arch/dalvik/opdefs/rem_dc.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rem-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/return_0e.d b/src/arch/dalvik/opdefs/return_0e.d new file mode 100644 index 0000000..6b71fa7 --- /dev/null +++ b/src/arch/dalvik/opdefs/return_0e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title return-void + +@encoding() { + + @format 10x + +} diff --git a/src/arch/dalvik/opdefs/return_0f.d b/src/arch/dalvik/opdefs/return_0f.d new file mode 100644 index 0000000..8fbd711 --- /dev/null +++ b/src/arch/dalvik/opdefs/return_0f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title return + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/return_10.d b/src/arch/dalvik/opdefs/return_10.d new file mode 100644 index 0000000..0ff6dd8 --- /dev/null +++ b/src/arch/dalvik/opdefs/return_10.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title return-wide + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/return_11.d b/src/arch/dalvik/opdefs/return_11.d new file mode 100644 index 0000000..85bf2da --- /dev/null +++ b/src/arch/dalvik/opdefs/return_11.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title return-object + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/rsub_d1.d b/src/arch/dalvik/opdefs/rsub_d1.d new file mode 100644 index 0000000..0d05c84 --- /dev/null +++ b/src/arch/dalvik/opdefs/rsub_d1.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rsub-int + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/rsub_d9.d b/src/arch/dalvik/opdefs/rsub_d9.d new file mode 100644 index 0000000..0f2f656 --- /dev/null +++ b/src/arch/dalvik/opdefs/rsub_d9.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title rsub-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/sget_60.d b/src/arch/dalvik/opdefs/sget_60.d new file mode 100644 index 0000000..803e09c --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_60.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_61.d b/src/arch/dalvik/opdefs/sget_61.d new file mode 100644 index 0000000..9681de3 --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_61.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-wide + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_62.d b/src/arch/dalvik/opdefs/sget_62.d new file mode 100644 index 0000000..0a21e7c --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_62.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-object + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_63.d b/src/arch/dalvik/opdefs/sget_63.d new file mode 100644 index 0000000..f0d7ab7 --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_63.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-boolean + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_64.d b/src/arch/dalvik/opdefs/sget_64.d new file mode 100644 index 0000000..7dc329e --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_64.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-byte + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_65.d b/src/arch/dalvik/opdefs/sget_65.d new file mode 100644 index 0000000..8336764 --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_65.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-char + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sget_66.d b/src/arch/dalvik/opdefs/sget_66.d new file mode 100644 index 0000000..fc6440a --- /dev/null +++ b/src/arch/dalvik/opdefs/sget_66.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sget-short + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/shl_98.d b/src/arch/dalvik/opdefs/shl_98.d new file mode 100644 index 0000000..bfb92bd --- /dev/null +++ b/src/arch/dalvik/opdefs/shl_98.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shl-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/shl_a3.d b/src/arch/dalvik/opdefs/shl_a3.d new file mode 100644 index 0000000..c3772b0 --- /dev/null +++ b/src/arch/dalvik/opdefs/shl_a3.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shl-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/shl_b8.d b/src/arch/dalvik/opdefs/shl_b8.d new file mode 100644 index 0000000..70f99e1 --- /dev/null +++ b/src/arch/dalvik/opdefs/shl_b8.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shl-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/shl_c3.d b/src/arch/dalvik/opdefs/shl_c3.d new file mode 100644 index 0000000..94d35e5 --- /dev/null +++ b/src/arch/dalvik/opdefs/shl_c3.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shl-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/shl_e0.d b/src/arch/dalvik/opdefs/shl_e0.d new file mode 100644 index 0000000..c5c8d50 --- /dev/null +++ b/src/arch/dalvik/opdefs/shl_e0.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shl-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/shr_99.d b/src/arch/dalvik/opdefs/shr_99.d new file mode 100644 index 0000000..203e4d5 --- /dev/null +++ b/src/arch/dalvik/opdefs/shr_99.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shr-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/shr_a4.d b/src/arch/dalvik/opdefs/shr_a4.d new file mode 100644 index 0000000..16e07a6 --- /dev/null +++ b/src/arch/dalvik/opdefs/shr_a4.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shr-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/shr_b9.d b/src/arch/dalvik/opdefs/shr_b9.d new file mode 100644 index 0000000..5f48795 --- /dev/null +++ b/src/arch/dalvik/opdefs/shr_b9.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shr-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/shr_c4.d b/src/arch/dalvik/opdefs/shr_c4.d new file mode 100644 index 0000000..80cbfee --- /dev/null +++ b/src/arch/dalvik/opdefs/shr_c4.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shr-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/shr_e1.d b/src/arch/dalvik/opdefs/shr_e1.d new file mode 100644 index 0000000..38a30dc --- /dev/null +++ b/src/arch/dalvik/opdefs/shr_e1.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title shr-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/sput_67.d b/src/arch/dalvik/opdefs/sput_67.d new file mode 100644 index 0000000..e7157a5 --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_67.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_68.d b/src/arch/dalvik/opdefs/sput_68.d new file mode 100644 index 0000000..e6a8948 --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_68.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-wide + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_69.d b/src/arch/dalvik/opdefs/sput_69.d new file mode 100644 index 0000000..f41e84c --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_69.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-object + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_6a.d b/src/arch/dalvik/opdefs/sput_6a.d new file mode 100644 index 0000000..17aa26a --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_6a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-boolean + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_6b.d b/src/arch/dalvik/opdefs/sput_6b.d new file mode 100644 index 0000000..8aa83ef --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_6b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-byte + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_6c.d b/src/arch/dalvik/opdefs/sput_6c.d new file mode 100644 index 0000000..b863af4 --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_6c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-char + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sput_6d.d b/src/arch/dalvik/opdefs/sput_6d.d new file mode 100644 index 0000000..65ca067 --- /dev/null +++ b/src/arch/dalvik/opdefs/sput_6d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sput-short + +@encoding() { + + @format 21c + +} diff --git a/src/arch/dalvik/opdefs/sub_91.d b/src/arch/dalvik/opdefs/sub_91.d new file mode 100644 index 0000000..34fd476 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_91.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/sub_9c.d b/src/arch/dalvik/opdefs/sub_9c.d new file mode 100644 index 0000000..566cb80 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_9c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/sub_a7.d b/src/arch/dalvik/opdefs/sub_a7.d new file mode 100644 index 0000000..22851c6 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_a7.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-float + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/sub_ac.d b/src/arch/dalvik/opdefs/sub_ac.d new file mode 100644 index 0000000..c818423 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_ac.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-double + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/sub_b1.d b/src/arch/dalvik/opdefs/sub_b1.d new file mode 100644 index 0000000..4102367 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_b1.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/sub_bc.d b/src/arch/dalvik/opdefs/sub_bc.d new file mode 100644 index 0000000..b0a22ae --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_bc.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/sub_c7.d b/src/arch/dalvik/opdefs/sub_c7.d new file mode 100644 index 0000000..dc8fd47 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_c7.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-float/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/sub_cc.d b/src/arch/dalvik/opdefs/sub_cc.d new file mode 100644 index 0000000..d24b702 --- /dev/null +++ b/src/arch/dalvik/opdefs/sub_cc.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sub-double/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/switch_2b.d b/src/arch/dalvik/opdefs/switch_2b.d new file mode 100644 index 0000000..2d13992 --- /dev/null +++ b/src/arch/dalvik/opdefs/switch_2b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title packed-switch + +@encoding() { + + @format 31t + +} diff --git a/src/arch/dalvik/opdefs/switch_2c.d b/src/arch/dalvik/opdefs/switch_2c.d new file mode 100644 index 0000000..b56cd9d --- /dev/null +++ b/src/arch/dalvik/opdefs/switch_2c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title sparse-switch + +@encoding() { + + @format 31t + +} diff --git a/src/arch/dalvik/opdefs/throw_27.d b/src/arch/dalvik/opdefs/throw_27.d new file mode 100644 index 0000000..28a8348 --- /dev/null +++ b/src/arch/dalvik/opdefs/throw_27.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title throw + +@encoding() { + + @format 11x + +} diff --git a/src/arch/dalvik/opdefs/to_81.d b/src/arch/dalvik/opdefs/to_81.d new file mode 100644 index 0000000..e1b45b3 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_81.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-long + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_82.d b/src/arch/dalvik/opdefs/to_82.d new file mode 100644 index 0000000..4d5e667 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_82.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-float + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_83.d b/src/arch/dalvik/opdefs/to_83.d new file mode 100644 index 0000000..6f764c1 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_83.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-double + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_84.d b/src/arch/dalvik/opdefs/to_84.d new file mode 100644 index 0000000..f3076ae --- /dev/null +++ b/src/arch/dalvik/opdefs/to_84.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title long-to-int + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_85.d b/src/arch/dalvik/opdefs/to_85.d new file mode 100644 index 0000000..3ac252c --- /dev/null +++ b/src/arch/dalvik/opdefs/to_85.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title long-to-float + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_86.d b/src/arch/dalvik/opdefs/to_86.d new file mode 100644 index 0000000..80e9a28 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_86.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title long-to-double + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_87.d b/src/arch/dalvik/opdefs/to_87.d new file mode 100644 index 0000000..55028e3 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_87.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title float-to-int + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_88.d b/src/arch/dalvik/opdefs/to_88.d new file mode 100644 index 0000000..2eaa85b --- /dev/null +++ b/src/arch/dalvik/opdefs/to_88.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title float-to-long + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_89.d b/src/arch/dalvik/opdefs/to_89.d new file mode 100644 index 0000000..147f280 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_89.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title float-to-double + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8a.d b/src/arch/dalvik/opdefs/to_8a.d new file mode 100644 index 0000000..c089942 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title double-to-int + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8b.d b/src/arch/dalvik/opdefs/to_8b.d new file mode 100644 index 0000000..e60ba2f --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8b.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title double-to-long + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8c.d b/src/arch/dalvik/opdefs/to_8c.d new file mode 100644 index 0000000..b7ee496 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8c.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title double-to-float + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8d.d b/src/arch/dalvik/opdefs/to_8d.d new file mode 100644 index 0000000..28a194e --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8d.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-byte + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8e.d b/src/arch/dalvik/opdefs/to_8e.d new file mode 100644 index 0000000..c8b2598 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8e.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-char + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/to_8f.d b/src/arch/dalvik/opdefs/to_8f.d new file mode 100644 index 0000000..697c102 --- /dev/null +++ b/src/arch/dalvik/opdefs/to_8f.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title int-to-short + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/ushr_9a.d b/src/arch/dalvik/opdefs/ushr_9a.d new file mode 100644 index 0000000..d3f48ba --- /dev/null +++ b/src/arch/dalvik/opdefs/ushr_9a.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title ushr-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/ushr_a5.d b/src/arch/dalvik/opdefs/ushr_a5.d new file mode 100644 index 0000000..11578c3 --- /dev/null +++ b/src/arch/dalvik/opdefs/ushr_a5.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title ushr-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/ushr_ba.d b/src/arch/dalvik/opdefs/ushr_ba.d new file mode 100644 index 0000000..d9c0ab7 --- /dev/null +++ b/src/arch/dalvik/opdefs/ushr_ba.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title ushr-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/ushr_c5.d b/src/arch/dalvik/opdefs/ushr_c5.d new file mode 100644 index 0000000..b0117a7 --- /dev/null +++ b/src/arch/dalvik/opdefs/ushr_c5.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title ushr-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/ushr_e2.d b/src/arch/dalvik/opdefs/ushr_e2.d new file mode 100644 index 0000000..5ade4f7 --- /dev/null +++ b/src/arch/dalvik/opdefs/ushr_e2.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title ushr-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/opdefs/xor_97.d b/src/arch/dalvik/opdefs/xor_97.d new file mode 100644 index 0000000..3bdfc05 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_97.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-int + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/xor_a2.d b/src/arch/dalvik/opdefs/xor_a2.d new file mode 100644 index 0000000..d651f66 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_a2.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-long + +@encoding() { + + @format 23x + +} diff --git a/src/arch/dalvik/opdefs/xor_b7.d b/src/arch/dalvik/opdefs/xor_b7.d new file mode 100644 index 0000000..b42da76 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_b7.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-int/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/xor_c2.d b/src/arch/dalvik/opdefs/xor_c2.d new file mode 100644 index 0000000..3fd2660 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_c2.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-long/2addr + +@encoding() { + + @format 12x + +} diff --git a/src/arch/dalvik/opdefs/xor_d7.d b/src/arch/dalvik/opdefs/xor_d7.d new file mode 100644 index 0000000..2351a21 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_d7.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-int/lit16 + +@encoding() { + + @format 22s + +} diff --git a/src/arch/dalvik/opdefs/xor_df.d b/src/arch/dalvik/opdefs/xor_df.d new file mode 100644 index 0000000..04443f7 --- /dev/null +++ b/src/arch/dalvik/opdefs/xor_df.d @@ -0,0 +1,30 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * ##FILE## - traduction d'instructions Dalvik + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + */ + + +@title xor-int/lit8 + +@encoding() { + + @format 22b + +} diff --git a/src/arch/dalvik/processor.c b/src/arch/dalvik/processor.c index fdfb38d..9fe7253 100644 --- a/src/arch/dalvik/processor.c +++ b/src/arch/dalvik/processor.c @@ -24,12 +24,16 @@ #include "processor.h" +#include + + #include "context.h" #include "instruction.h" #include "opcodes/opcodes.h" #include "pseudo/fill.h" #include "pseudo/switch.h" #include "../processor-int.h" +#include "../../format/dex/dex.h" @@ -67,11 +71,12 @@ static GDalvikContext *g_dalvik_processor_get_context(const GDalvikProcessor *); /* Fournit un contexte pour la décompilation Dalvik. */ static GDalvikDContext *g_dalvik_processor_get_decomp_context(const GDalvikProcessor *); +/* Décode une instruction dans un flux de données. */ +static GArchInstruction *g_dalvik_processor_disassemble(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, GExeFormat *); + /* Décode une pseudo-instruction dans un flux de données. */ -static GArchInstruction *g_dalvik_guess_pseudo_instruction(const GDalvikProcessor *, const bin_t *, off_t *, off_t, vmpa_t); +static GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *, GDalvikContext *, const GBinContent *, vmpa2t *, uint8_t); -/* Décode une instruction dans un flux de données. */ -static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProcessor *, GDalvikContext *, const bin_t *, off_t *, off_t, vmpa_t, GDexFormat *); /* Indique le type défini par la GLib pour le processeur DALVIK. */ @@ -103,7 +108,7 @@ static void g_dalvik_processor_class_init(GDalvikProcessorClass *klass) proc = G_ARCH_PROCESSOR_CLASS(klass); - proc->decode = (decode_instruction_fc)g_dalvik_processor_decode_instruction; + proc->disassemble = (disass_instr_fc)g_dalvik_processor_disassemble; } @@ -237,90 +242,37 @@ static GDalvikDContext *g_dalvik_processor_get_decomp_context(const GDalvikProce /****************************************************************************** * * -* Paramètres : proc = architecture visée par la procédure. * -* data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * +* Paramètres : proc = architecture visée par la procédure. * +* ctx = contexte lié à l'exécution du processeur. * +* content = flux de données à analyser. * +* pos = position courante dans ce flux. [OUT] * +* format = format du fichier contenant le code. * * * -* Description : Décode une pseudo-instruction dans un flux de données. * +* Description : Désassemble une instruction dans un flux de données. * * * -* Retour : Instruction mise en place ou NULL si aucune trouvée. * +* Retour : Instruction mise en place ou NULL en cas d'échec. * * * * Remarques : - * * * ******************************************************************************/ -static GArchInstruction *g_dalvik_guess_pseudo_instruction(const GDalvikProcessor *proc, const bin_t *data, off_t *pos, off_t end, vmpa_t addr) -{ - GArchInstruction *result; /* Instruction à renvoyer */ - off_t tmp; /* Position modifiable */ - uint16_t ident; /* Valeur lue dans le code */ - - /* Vérification astucieuse et rapide...*/ - if (data[*pos] != 0x00 /* DOP_NOP */) return NULL; - - tmp = *pos; - - if (!read_u16(&ident, data, &tmp, end, SRE_LITTLE)) - return NULL; - - switch (ident) - { - case DPO_PACKED_SWITCH: - case DPO_SPARSE_SWITCH: - result = g_dalvik_switch_instr_new(data, pos, end, addr, proc); - break; - - case DPO_FILL_ARRAY_DATA: - result = g_dalvik_fill_instr_new(data, pos, end, addr, proc); - break; - - default: - result = NULL; - break; - - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : proc = architecture visée par la procédure. * -* ctx = contexte lié à l'exécution du processeur. * -* data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* format = format du fichier contenant le code. * -* * -* Description : Décode une instruction dans un flux de données. * -* * -* Retour : Instruction mise en place. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProcessor *proc, GDalvikContext *ctx, const bin_t *data, off_t *pos, off_t end, vmpa_t addr, GDexFormat *format) +static GArchInstruction *g_dalvik_processor_disassemble(const GArchProcessor *proc, GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format) { GArchInstruction *result; /* Instruction à renvoyer */ + uint8_t raw8; /* Donnée de 8 bits à analyser */ DalvikOpcodes id; /* Identifiant d'instruction */ - static const dalvik_read_instr decodings[DOP_COUNT] = { + static const disass_instr_fc decodings[DOP_COUNT] = { [DOP_NOP] = dalvik_read_instr_nop, [DOP_MOVE] = dalvik_read_instr_move, - [DOP_MOVE_FROM_16] = dalvik_read_instr_move_from_16, + [DOP_MOVE_FROM_16] = dalvik_read_instr_move_from16, [DOP_MOVE_16] = dalvik_read_instr_move_16, [DOP_MOVE_WIDE] = dalvik_read_instr_move_wide, - [DOP_MOVE_WIDE_FROM_16] = dalvik_read_instr_move_wide_from_16, + [DOP_MOVE_WIDE_FROM_16] = dalvik_read_instr_move_wide_from16, [DOP_MOVE_WIDE_16] = dalvik_read_instr_move_wide_16, [DOP_MOVE_OBJECT] = dalvik_read_instr_move_object, - [DOP_MOVE_OBJECT_FROM_16] = dalvik_read_instr_move_object_from_16, + [DOP_MOVE_OBJECT_FROM_16] = dalvik_read_instr_move_object_from16, [DOP_MOVE_OBJECT_16] = dalvik_read_instr_move_object_16, [DOP_MOVE_RESULT] = dalvik_read_instr_move_result, [DOP_MOVE_RESULT_WIDE] = dalvik_read_instr_move_result_wide, @@ -432,21 +384,21 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc [DOP_NOT_LONG] = dalvik_read_instr_not_long, [DOP_NEG_FLOAT] = dalvik_read_instr_neg_float, [DOP_NEG_DOUBLE] = dalvik_read_instr_neg_double, - [DOP_TO_INT_LONG] = dalvik_read_instr_to_int_long, - [DOP_TO_INT_FLOAT] = dalvik_read_instr_to_int_float, - [DOP_TO_INT_DOUBLE] = dalvik_read_instr_to_int_double, - [DOP_TO_LONG_INT] = dalvik_read_instr_to_long_int, - [DOP_TO_LONG_FLOAT] = dalvik_read_instr_to_long_float, - [DOP_TO_LONG_DOUBLE] = dalvik_read_instr_to_long_double, - [DOP_TO_FLOAT_INT] = dalvik_read_instr_to_float_int, - [DOP_TO_FLOAT_LONG] = dalvik_read_instr_to_float_long, - [DOP_TO_FLOAT_DOUBLE] = dalvik_read_instr_to_float_double, - [DOP_TO_DOUBLE_INT] = dalvik_read_instr_to_double_int, - [DOP_TO_DOUBLE_LONG] = dalvik_read_instr_to_double_long, - [DOP_TO_DOUBLE_FLOAT] = dalvik_read_instr_to_double_float, - [DOP_TO_INT_BYTE] = dalvik_read_instr_to_int_byte, - [DOP_TO_INT_CHAR] = dalvik_read_instr_to_int_char, - [DOP_TO_INT_SHORT] = dalvik_read_instr_to_int_short, + [DOP_TO_INT_LONG] = dalvik_read_instr_int_to_long, + [DOP_TO_INT_FLOAT] = dalvik_read_instr_int_to_float, + [DOP_TO_INT_DOUBLE] = dalvik_read_instr_int_to_double, + [DOP_TO_LONG_INT] = dalvik_read_instr_long_to_int, + [DOP_TO_LONG_FLOAT] = dalvik_read_instr_long_to_float, + [DOP_TO_LONG_DOUBLE] = dalvik_read_instr_long_to_double, + [DOP_TO_FLOAT_INT] = dalvik_read_instr_float_to_int, + [DOP_TO_FLOAT_LONG] = dalvik_read_instr_float_to_long, + [DOP_TO_FLOAT_DOUBLE] = dalvik_read_instr_float_to_double, + [DOP_TO_DOUBLE_INT] = dalvik_read_instr_double_to_int, + [DOP_TO_DOUBLE_LONG] = dalvik_read_instr_double_to_long, + [DOP_TO_DOUBLE_FLOAT] = dalvik_read_instr_double_to_float, + [DOP_TO_INT_BYTE] = dalvik_read_instr_int_to_byte, + [DOP_TO_INT_CHAR] = dalvik_read_instr_int_to_char, + [DOP_TO_INT_SHORT] = dalvik_read_instr_int_to_short, [DOP_ADD_INT] = dalvik_read_instr_add_int, [DOP_SUB_INT] = dalvik_read_instr_sub_int, [DOP_MUL_INT] = dalvik_read_instr_mul_int, @@ -533,22 +485,84 @@ static GArchInstruction *g_dalvik_processor_decode_instruction(const GDalvikProc }; + if (!g_binary_content_read_u8(content, pos, &raw8)) + return NULL; + /* Pseudo-instruction... */ - result = g_dalvik_guess_pseudo_instruction(proc, data, pos, end, addr); + result = g_dalvik_processor_disassemble_pseudo(proc, ctx, content, pos, raw8); /* ... ou instruction classique */ if (result == NULL) { - id = dalvik_guess_next_instruction(data, *pos, end); + assert(raw8 < DOP_COUNT); + + id = (DalvikOpcodes)raw8; + + if (decodings[id] != NULL) + result = decodings[id](proc, G_PROC_CONTEXT(ctx), content, pos, format); + + } + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : proc = architecture visée par la procédure. * +* data = flux de données à analyser. * +* pos = position courante dans ce flux. [OUT] * +* end = limite des données à analyser. * +* addr = adresse virtuelle de l'instruction. * +* low8 = 8 bits de poids faible déjà lus. * +* * +* Description : Décode une pseudo-instruction dans un flux de données. * +* * +* Retour : Instruction mise en place ou NULL si aucune trouvée. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static GArchInstruction *g_dalvik_processor_disassemble_pseudo(const GArchProcessor *proc, GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos, uint8_t low8) +{ + GArchInstruction *result; /* Instruction à renvoyer */ + vmpa2t tmp; /* Position modifiable */ + uint8_t high8; /* Nouvelle octet à venir lire */ + uint16_t ident; /* Valeur lue dans le code */ + + /* Vérification astucieuse et rapide...*/ + if (low8 != 0x00 /* DOP_NOP */) + return NULL; + + copy_vmpa(&tmp, pos); + + if (!g_binary_content_read_u8(content, pos, &high8)) + return NULL; + + ident = high8 << 8 | low8; + + switch (ident) + { + case DPO_PACKED_SWITCH: + case DPO_SPARSE_SWITCH: + result = g_dalvik_switch_instr_new(ident, content, pos); + break; + + case DPO_FILL_ARRAY_DATA: + result = g_dalvik_fill_instr_new(ident, content, pos); + break; - if (id != DOP_COUNT) - { - (*pos)++; - result = decodings[id](data, pos, end, addr, proc, format); - } + default: + result = NULL; + break; } + if (result != NULL) + copy_vmpa(pos, &tmp); + return result; } diff --git a/src/arch/dalvik/pseudo/fill.c b/src/arch/dalvik/pseudo/fill.c index acb8551..2656dab 100644 --- a/src/arch/dalvik/pseudo/fill.c +++ b/src/arch/dalvik/pseudo/fill.c @@ -24,6 +24,7 @@ #include "fill.h" +#include #include @@ -95,7 +96,7 @@ static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass) instr = G_ARCH_INSTRUCTION_CLASS(klass); - instr->print = (print_instruction_fc)g_dalvik_fill_instr_print; + //instr->print = (print_instruction_fc)g_dalvik_fill_instr_print; } @@ -114,6 +115,7 @@ static void g_dalvik_fill_instr_class_init(GDalvikFillInstrClass *klass) static void g_dalvik_fill_instr_init(GDalvikFillInstr *instr) { + G_DALVIK_INSTRUCTION(instr)->keyword = "##fill-array##"; } @@ -158,11 +160,9 @@ static void g_dalvik_fill_instr_finalize(GDalvikFillInstr *instr) /****************************************************************************** * * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* end = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * +* Paramètres : ident = identifiant de l'instruction déjà lu. * +* content = flux de données à analyser. * +* pos = position courante dans ce flux. [OUT] * * * * Description : Crée une pesudo-instruction Dalvik de remplissage. * * * @@ -172,24 +172,26 @@ static void g_dalvik_fill_instr_finalize(GDalvikFillInstr *instr) * * ******************************************************************************/ -GArchInstruction *g_dalvik_fill_instr_new(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc) +GArchInstruction *g_dalvik_fill_instr_new(uint16_t ident, const GBinContent *content, vmpa2t *pos) { GDalvikFillInstr *result; /* Structure à retourner */ - uint16_t ident; /* Valeur lue dans le code */ + phys_t consumed; /* Données consommées */ - result = g_object_new(G_TYPE_DALVIK_FILL_INSTR, NULL); + assert(ident == DPO_FILL_ARRAY_DATA); - if (!read_u16(&ident, data, pos, end, SRE_LITTLE)) - goto gdfin_bad; + result = g_object_new(G_TYPE_DALVIK_FILL_INSTR, NULL); - G_DALVIK_INSTRUCTION(result)->ptype = DPO_FILL_ARRAY_DATA; + G_DALVIK_INSTRUCTION(result)->ptype = ident; - if (!read_u16(&result->array_width, data, pos, end, SRE_LITTLE)) + if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->array_width)) goto gdfin_bad; - if (!read_u32(&result->array_size, data, pos, end, SRE_LITTLE)) + + if (!g_binary_content_read_u32(content, pos, SRE_LITTLE, &result->array_size)) goto gdfin_bad; - *pos += result->array_width * result->array_size; + consumed = result->array_width * result->array_size; + + advance_vmpa(pos, consumed); return G_ARCH_INSTRUCTION(result); diff --git a/src/arch/dalvik/pseudo/fill.h b/src/arch/dalvik/pseudo/fill.h index 041cdaa..aeb04b8 100644 --- a/src/arch/dalvik/pseudo/fill.h +++ b/src/arch/dalvik/pseudo/fill.h @@ -50,7 +50,7 @@ typedef struct _GDalvikFillInstrClass GDalvikFillInstrClass; GType g_dalvik_fill_instr_get_type(void); /* Crée une pesudo-instruction Dalvik de remplissage. */ -GArchInstruction *g_dalvik_fill_instr_new(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *); +GArchInstruction *g_dalvik_fill_instr_new(uint16_t, const GBinContent *, vmpa2t *); diff --git a/src/arch/dalvik/pseudo/switch.c b/src/arch/dalvik/pseudo/switch.c index 169c5bf..1b41ba4 100644 --- a/src/arch/dalvik/pseudo/switch.c +++ b/src/arch/dalvik/pseudo/switch.c @@ -24,6 +24,7 @@ #include "switch.h" +#include #include @@ -94,7 +95,7 @@ static void g_dalvik_switch_instr_class_init(GDalvikSwitchInstrClass *klass) instr = G_ARCH_INSTRUCTION_CLASS(klass); - instr->print = (print_instruction_fc)g_dalvik_switch_instr_print; + //instr->print = (print_instruction_fc)g_dalvik_switch_instr_print; } @@ -113,6 +114,7 @@ static void g_dalvik_switch_instr_class_init(GDalvikSwitchInstrClass *klass) static void g_dalvik_switch_instr_init(GDalvikSwitchInstr *instr) { + G_DALVIK_INSTRUCTION(instr)->keyword = "##switch##"; } @@ -157,11 +159,9 @@ static void g_dalvik_switch_instr_finalize(GDalvikSwitchInstr *instr) /****************************************************************************** * * -* Paramètres : data = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* len = limite des données à analyser. * -* addr = adresse virtuelle de l'instruction. * -* proc = architecture ciblée par le désassemblage. * +* Paramètres : ident = identifiant de l'instruction déjà lu. * +* content = flux de données à analyser. * +* pos = position courante dans ce flux. [OUT] * * * * Description : Crée une pesudo-instruction Dalvik de branchement. * * * @@ -171,28 +171,26 @@ static void g_dalvik_switch_instr_finalize(GDalvikSwitchInstr *instr) * * ******************************************************************************/ -GArchInstruction *g_dalvik_switch_instr_new(const bin_t *data, off_t *pos, off_t end, vmpa_t addr, const GDalvikProcessor *proc) +GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, const GBinContent *content, vmpa2t *pos) { - GDalvikSwitchInstr *result; /* Structure à retourner */ - uint16_t ident; /* Valeur lue dans le code */ + GDalvikSwitchInstr *result; /* Structure à retourner */ + phys_t consumed; /* Données consommées */ - result = g_object_new(G_TYPE_DALVIK_SWITCH_INSTR, NULL); - - if (!read_u16(&ident, data, pos, end, SRE_LITTLE)) - goto gdsin_bad; + assert(ident == DPO_PACKED_SWITCH || ident == DPO_SPARSE_SWITCH); - if (ident != DPO_PACKED_SWITCH && ident != DPO_SPARSE_SWITCH) - goto gdsin_bad; + result = g_object_new(G_TYPE_DALVIK_SWITCH_INSTR, NULL); G_DALVIK_INSTRUCTION(result)->ptype = ident; - if (!read_u16(&result->switch_size, data, pos, end, SRE_LITTLE)) + if (!g_binary_content_read_u16(content, pos, SRE_LITTLE, &result->switch_size)) goto gdsin_bad; if (ident != DPO_PACKED_SWITCH) - *pos += (1 + result->switch_size) * sizeof(uint32_t); + consumed = (1 + result->switch_size) * sizeof(uint32_t); else - *pos += (2 * result->switch_size) * sizeof(uint32_t); + consumed = (2 * result->switch_size) * sizeof(uint32_t); + + advance_vmpa(pos, consumed); return G_ARCH_INSTRUCTION(result); @@ -234,6 +232,7 @@ static void g_dalvik_switch_instr_print(const GDalvikSwitchInstr *instr, GCodeBu line = NULL; + //line = g_code_buffer_prepare_new_line(buffer, &range); #if 0 line = g_code_buffer_append_new_line(buffer, base->address); diff --git a/src/arch/dalvik/pseudo/switch.h b/src/arch/dalvik/pseudo/switch.h index cdb4b92..02d61d0 100644 --- a/src/arch/dalvik/pseudo/switch.h +++ b/src/arch/dalvik/pseudo/switch.h @@ -50,7 +50,7 @@ typedef struct _GDalvikSwitchInstrClass GDalvikSwitchInstrClass; GType g_dalvik_switch_instr_get_type(void); /* Crée une pesudo-instruction Dalvik de branchement. */ -GArchInstruction *g_dalvik_switch_instr_new(const bin_t *, off_t *, off_t, vmpa_t, const GDalvikProcessor *); +GArchInstruction *g_dalvik_switch_instr_new(uint16_t, const GBinContent *, vmpa2t *); diff --git a/src/arch/processor-int.h b/src/arch/processor-int.h index 19076a2..3d39aee 100644 --- a/src/arch/processor-int.h +++ b/src/arch/processor-int.h @@ -58,7 +58,7 @@ typedef GDecContext * (* get_decomp_context_fc) (const GArchProcessor *); typedef GArchInstruction * (* decode_instruction_fc) (const GArchProcessor *, GProcContext *, const bin_t *, off_t *, off_t, vmpa_t, GBinFormat *); /* Désassemble une instruction dans un flux de données. */ -typedef GArchInstruction * (* disass_instr_fc) (const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *); +typedef GArchInstruction * (* disass_instr_fc) (const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *, GExeFormat *); diff --git a/src/arch/processor.c b/src/arch/processor.c index 91f9821..bbe506a 100644 --- a/src/arch/processor.c +++ b/src/arch/processor.c @@ -289,6 +289,7 @@ GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *proc * ctx = contexte lié à l'exécution du processeur. * * content = flux de données à analyser. * * pos = position courante dans ce flux. [OUT] * +* format = format du fichier contenant le code. * * * * Description : Désassemble une instruction dans un flux de données. * * * @@ -298,14 +299,14 @@ GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *proc * * ******************************************************************************/ -GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *proc, GProcContext *ctx, const GBinContent *content, vmpa2t *pos) +GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *proc, GProcContext *ctx, const GBinContent *content, vmpa2t *pos, GExeFormat *format) { GArchInstruction *result; /* Instruction à renvoyer */ vmpa2t back; /* Position sauvegardée */ copy_vmpa(&back, pos); - result = G_ARCH_PROCESSOR_GET_CLASS(proc)->disassemble(proc, ctx, content, pos); + result = G_ARCH_PROCESSOR_GET_CLASS(proc)->disassemble(proc, ctx, content, pos, format); if (result == NULL) copy_vmpa(pos, &back); diff --git a/src/arch/processor.h b/src/arch/processor.h index dd93960..82c4f18 100644 --- a/src/arch/processor.h +++ b/src/arch/processor.h @@ -74,7 +74,7 @@ MemoryDataSize g_arch_processor_get_instruction_size(const GArchProcessor *); GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *, GProcContext *, const bin_t *, off_t *, off_t, vmpa_t, GBinFormat *) __attribute__ ((deprecated)); /* Désassemble une instruction dans un flux de données. */ -GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *); +GArchInstruction *g_arch_processor_disassemble(const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *, GExeFormat *); diff --git a/src/format/dex/method.c b/src/format/dex/method.c index 9c911d1..b74a713 100644 --- a/src/format/dex/method.c +++ b/src/format/dex/method.c @@ -193,7 +193,7 @@ GDexMethod *g_dex_method_new(GDexFormat *format, const encoded_method *seed, ule result->info = *seed; result->body = item; - result->offset = seed->code_off + 4 * sizeof(uint16_t) + 2 *sizeof(uint32_t);/* TODO : faire plus propre ! */ + result->offset = seed->code_off + 4 * sizeof(uint16_t) + 2 * sizeof(uint32_t);/* TODO : faire plus propre ! */ init_vmpa(&addr, result->offset, VMPA_NO_VIRTUAL); init_mrange(&range, &addr, item.insns_size * sizeof(uint16_t)); diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index b8838ae..f47442d 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -770,8 +770,12 @@ void g_buffer_line_fill_mrange(GBufferLine *line, MemoryDataSize psize, MemoryDa else { g_buffer_line_insert_text(line, BLC_PHYSICAL, address, 2, RTT_PHYS_ADDR); - g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[2], i - 2, RTT_PHYS_ADDR_PAD); - g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[i], len - i, RTT_PHYS_ADDR); + + if (i > 2) + g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[2], i - 2, RTT_PHYS_ADDR_PAD); + + g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[i], len - i, RTT_PHYS_ADDR); + } } @@ -791,8 +795,12 @@ void g_buffer_line_fill_mrange(GBufferLine *line, MemoryDataSize psize, MemoryDa else { g_buffer_line_insert_text(line, BLC_VIRTUAL, address, 2, RTT_VIRT_ADDR); - g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[2], i - 2, RTT_VIRT_ADDR_PAD); - g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[i], len - i, RTT_VIRT_ADDR); + + if (i > 2) + g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[2], i - 2, RTT_VIRT_ADDR_PAD); + + g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[i], len - i, RTT_VIRT_ADDR); + } } diff --git a/tools/d2c/d2c.mk b/tools/d2c/d2c.mk index 72269b7..0731329 100644 --- a/tools/d2c/d2c.mk +++ b/tools/d2c/d2c.mk @@ -32,7 +32,7 @@ SUFFIXES = .g d2c_final_rules: fix_includes_in_c_templates fix_includes_in_h_templates untabify_disass fix_includes_in_c_templates: - for f in `find .gen/ -name '*tmpl.c'`; do \ + @for f in `find .gen/ -name '*tmpl.c'`; do \ if grep -q '##INCLUDES##' $$f; then \ $(fix_verbose)sed -i 's/##INCLUDES##/$(FIXED_C_INCLUDES)/' $$f; \ fi; \ -- cgit v0.11.2-87-g4458