# a, d, dx = AnalyzeAPK(apk_name) # a: androguard.core.bytecodes.apk.APK # d: androguard.core.bytecodes.dvm.DalvikVMFormat # dx: androguard.core.analysis.analysis.uVMAnalysis cm = d.get_class_manager() dm4.a, dm4.d, dm4.dx, dm4.cm = a, d, dx, cm class_hierarchy = dm4.construct_class_hierarchy() dm4.class_hierarchy = class_hierarchy intent_service_link = None dm4.intent_service_link = None intent_service_link = dm4.service_link() broadcast_link = dm4.broadcast_link() dm4.intent_service_link = intent_service_link dm4.broadcast_link = broadcast_link # combine dm4.intent_service_link = dict(intent_service_link.items() + broadcast_link.items()) # unique target_methods = list(set(dm4.get_target_methods())) print "Service link:", intent_service_link print "Broadcast link:", broadcast_link print "Hierarchy:", class_hierarchy print "Target {!s} methods:".format(len(target_methods)), target_methods permission_paths = [] if eva_type == "1":
apk_session_dir = "session/" ERROR_MSG_PREFIX = "\033[1;31m[!]\033[m " OK_MSG_PREFIX = "\033[1;32m[+]\033[m " WARN_MSG_PREFIX = "\033[1;33m[*]\033[m " if __name__ == "__main__" : print OK_MSG_PREFIX + "Start to get malicious actions..." apk_name = "/Users/atdog/Desktop/com.texty.sms-1.apk" # apk_name = "/Users/atdog/Desktop/eva_3/jp.naver.line.android.apk" a, d, dx = dm4.read_apk(apk_name) # a: androguard.core.bytecodes.apk.APK # d: androguard.core.bytecodes.dvm.DalvikVMFormat # dx: androguard.core.analysis.analysis.uVMAnalysis cm = d.get_class_manager() dm4.a, dm4.d, dm4.dx, dm4.cm = a, d, dx, cm class_hierarchy = dm4.construct_class_hierarchy() dm4.class_hierarchy = class_hierarchy intent_service_link = None dm4.intent_service_link = None intent_service_link = dm4.service_link() dm4.broadcast_link() dm4.intent_service_link = intent_service_link print dm4.get_target_methods()
# a, d, dx = AnalyzeAPK(apk_name) # a: androguard.core.bytecodes.apk.APK # d: androguard.core.bytecodes.dvm.DalvikVMFormat # dx: androguard.core.analysis.analysis.uVMAnalysis cm = d.get_class_manager() dm4.a, dm4.d, dm4.dx, dm4.cm = a, d, dx, cm class_hierarchy = dm4.construct_class_hierarchy() dm4.class_hierarchy = class_hierarchy intent_service_link = None dm4.intent_service_link = None intent_service_link = dm4.service_link() broadcast_link = dm4.broadcast_link() dm4.intent_service_link = intent_service_link dm4.broadcast_link = broadcast_link # combine dm4.intent_service_link = dict(intent_service_link.items() + broadcast_link.items()) # unique target_methods = list(set(dm4.get_target_methods())) print "Service link:", intent_service_link print "Broadcast link:", broadcast_link print "Hierarchy:", class_hierarchy print "Target {!s} methods:".format(len(target_methods)), target_methods permission_paths = []