print("read") # # def hook_mem_write(uc, access, address, size, value, user_data): pc = uc.reg_read(UC_ARM_REG_PC) if (address == 3419067861): print("write") # # g_cfd = ChainLogger(sys.stdout, "./ins-douyin.txt") # Add debugging. def hook_code(mu, address, size, user_data): try: emu = user_data if (not emu.memory.check_addr(address, UC_PROT_EXEC)): logger.error("addr 0x%08X out of range" % (address, )) sys.exit(-1) # #androidemu.utils.debug_utils.dump_registers(mu, sys.stdout) androidemu.utils.debug_utils.dump_code(emu, address, size, sys.stdout) except Exception as e: logger.exception("exception in hook_code") sys.exit(-1)
import sys import os from unicorn import * from unicorn.arm_const import * from androidemu.emulator import Emulator from androidemu.java.java_class_def import JavaClassDef from androidemu.java.java_method_def import java_method_def import androidemu.utils.debug_utils from androidemu.utils.chain_log import ChainLogger import capstone import traceback g_cfd = ChainLogger(sys.stdout, "./ins-jni.txt") # Add debugging. def hook_code(mu, address, size, user_data): try: emu = user_data if (not emu.memory.check_addr(address, UC_PROT_EXEC)): logger.error("addr 0x%08X out of range"%(address,)) sys.exit(-1) # #androidemu.utils.debug_utils.dump_registers(mu, sys.stdout) androidemu.utils.debug_utils.dump_code(emu, address, size, g_cfd) except Exception as e: logger.exception("exception in hook_code") sys.exit(-1) # #