public static void main(String argv[]) { final Test.platform[] all_tests = { new Test.platform( Capstone.CS_ARCH_ARM64, Capstone.CS_MODE_ARM, hexString2Byte(ARM64_CODE), "ARM-64"), }; for (int i = 0; i < all_tests.length; i++) { Test.platform test = all_tests[i]; System.out.println(new String(new char[16]).replace("\0", "*")); System.out.println("Platform: " + test.comment); System.out.println("Code: " + Test.stringToHex(test.code)); System.out.println("Disasm:"); cs = new Capstone(test.arch, test.mode); cs.setDetail(Capstone.CS_OPT_ON); Capstone.CsInsn[] all_ins = cs.disasm(test.code, 0x2c); for (int j = 0; j < all_ins.length; j++) { print_ins_detail(all_ins[j]); System.out.println(); } System.out.printf( "0x%x: \n\n", all_ins[all_ins.length - 1].address + all_ins[all_ins.length - 1].size); // Close when done cs.close(); } }
public static void main(String argv[]) { final Test.platform[] all_tests = { new Test.platform( Capstone.CS_ARCH_ARM, Capstone.CS_MODE_ARM, hexString2Byte(ARM_CODE), "ARM"), new Test.platform( Capstone.CS_ARCH_ARM, Capstone.CS_MODE_THUMB, hexString2Byte(THUMB_CODE), "Thumb"), new Test.platform( Capstone.CS_ARCH_ARM, Capstone.CS_MODE_THUMB, hexString2Byte(ARM_CODE2), "Thumb-mixed"), new Test.platform( Capstone.CS_ARCH_ARM, Capstone.CS_MODE_THUMB, Capstone.CS_OPT_SYNTAX_NOREGNAME, hexString2Byte(THUMB_CODE2), "Thumb-2 & register named with numbers"), }; for (int i = 0; i < all_tests.length; i++) { Test.platform test = all_tests[i]; System.out.println(new String(new char[16]).replace("\0", "*")); System.out.println("Platform: " + test.comment); System.out.println("Code: " + Test.stringToHex(test.code)); System.out.println("Disasm:"); cs = new Capstone(test.arch, test.mode); cs.setDetail(Capstone.CS_OPT_ON); if (test.syntax != 0) cs.setSyntax(test.syntax); Capstone.CsInsn[] all_ins = cs.disasm(test.code, 0x1000); for (int j = 0; j < all_ins.length; j++) { print_ins_detail(all_ins[j]); System.out.println(); } System.out.printf( "0x%x:\n\n", (all_ins[all_ins.length - 1].address + all_ins[all_ins.length - 1].size)); // Close when done cs.close(); } }