def test(): apk_path = "wan.ke.ji-V1.5-1500.apk" apkf = APK(apk_path) print apkf.cert_text print apkf.file_md5 print apkf.cert_md5 print apkf.file_size print apkf.androidversion print apkf.package print apkf.get_android_manifest_xml() print apkf.get_android_manifest_axml() print apkf.is_valid_APK() print apkf.get_filename() print apkf.get_package() print apkf.get_androidversion_code() print apkf.get_androidversion_name() print apkf.get_max_sdk_version() print apkf.get_min_sdk_version() print apkf.get_target_sdk_version() print apkf.get_libraries() print apkf.get_files() # pip install python-magic print apkf.get_files_types() # print apkf.get_dex() print apkf.get_main_activity() print apkf.get_activities() print apkf.get_services() print apkf.get_receivers() print apkf.get_providers() print apkf.get_permissions() print apkf.show() apkf.parse_icon(icon_path='.')
def test(): apk_path = "/home/tdoly/com.android.vending_090150.apk" apkf = APK(apk_path) print apkf.cert_text print apkf.file_md5 print apkf.cert_md5 print apkf.file_size print apkf.androidversion print apkf.package print apkf.get_android_manifest_xml() print apkf.get_android_manifest_axml() print apkf.is_valid_APK() print apkf.get_filename() print apkf.get_package() print apkf.get_androidversion_code() print apkf.get_androidversion_name() print apkf.get_max_sdk_version() print apkf.get_min_sdk_version() print apkf.get_target_sdk_version() print apkf.get_libraries() print apkf.get_files() # pip install python-magic print apkf.get_files_types() # print apkf.get_dex() print apkf.get_main_activity() print apkf.get_activities() print apkf.get_services() print apkf.get_receivers() print apkf.get_providers() print apkf.get_permissions()
def test(): apk_path = "/users/ozgumusy/AndroidStudioProjects/RijksClient/app/app-release.apk" apkf = APK(apk_path) print apkf.cert_text print apkf.file_md5 print apkf.cert_md5 print apkf.file_size print apkf.androidversion print apkf.package print apkf.get_android_manifest_xml() print apkf.get_android_manifest_axml() print apkf.is_valid_APK() print apkf.get_filename() print apkf.get_package() print apkf.get_androidversion_code() print apkf.get_androidversion_name() print apkf.get_max_sdk_version() print apkf.get_min_sdk_version() print apkf.get_target_sdk_version() print apkf.get_libraries() print apkf.get_files() print apkf.get_files_types() #print apkf.get_dex() print apkf.get_main_activity() print apkf.get_activities() print apkf.get_services() print apkf.get_receivers() print apkf.get_providers() print apkf.get_permissions()
def write_to_csv(apk_paths): for file_path in apk_paths: obj = APK(file_path) obj = APK(read(file_path), raw=True) list_of_obtained_permissions = obj.get_permissions() #print(list_of_obtained_permissions) result = [] for permission in list_of_permissions: if permission in list_of_obtained_permissions: result.append(1) else: result.append(0) package_name = obj.get_package() result.append(package_name) package_size = obj.file_size result.append(package_size) result.append(1) with open("./saurabh_dataset.csv", "a") as f: writer = csv.writer(f, dialect='excel') writer.writerow(result)
def test(): apk_path = r"C:\Users\heguofeng\Downloads\com.tencent.mm_6.7.3_liqucn.com.apk" apkf = APK(apk_path) print(apkf.cert_text) print( apkf.file_md5) print( apkf.cert_md5) print( apkf.file_size) print( apkf.androidversion) print( apkf.package) print( apkf.get_android_manifest_xml()) print( apkf.get_android_manifest_axml()) print( apkf.is_valid_APK()) print( apkf.get_filename()) print( apkf.get_package()) print( apkf.get_androidversion_code()) print( apkf.get_androidversion_name()) print( apkf.get_max_sdk_version()) print( apkf.get_min_sdk_version()) print( apkf.get_target_sdk_version()) print( apkf.get_libraries()) print( apkf.get_files()) # pip install python-magic print( apkf.get_files_types()) # print( apkf.get_dex() print( apkf.get_main_activity()) print( apkf.get_activities()) print( apkf.get_services()) print( apkf.get_receivers()) print( apkf.get_providers()) print( apkf.get_permissions())
if a_c == b_c: cert = "False" cur.execute('Update apps set app1_cert = ?, app2_cert = ?, cert_same = ? where app1_name = ? and app2_name = ?', (a_c, b_c, cert, app1, app2)) # ----------package name------------------- a_c = apk1.package b_c = apk2.package cur.execute('Update apps set app1_package = ?, app2_package = ? where app1_name = ? and app2_name = ?', (a_c, b_c, app1, app2)) # ----------permissions------------------- p1_d = apk1.get_permissions() p2_d = apk2.get_permissions() p1 = set(p1_d) p2 = set(p2_d) t1 = p1.difference(p2) # in p1 but not in p2 (removed in p2) t2 = p2.difference(p1) # in p1 but in p1 (added in p2) t3 = p1.intersection(p2) # in both add_count = len(t2) added = ",".join(t2) removed = ",".join(t1) same = ",".join(t3) cur.execute(
import pandas as pd import numpy from numpy.random import randint with open('features_list.txt', 'r') as f: features_list = ast.literal_eval( f.read() ) # features_list is list of 456 features obtained from previous analysis and stored in txt file count = 0 for filepath in glob.iglob("/home/aman/tsting/*"): df = pd.DataFrame(columns=features_list) current = [] # list for this particular app's all features try: # try is necessary as some apps through error on calling below functions and remaining apps are not analyzed apkf = APK(filepath) current = current + apkf.get_activities() + apkf.get_services( ) + apkf.get_receivers() + apkf.get_providers() + apkf.get_permissions( ) except: continue dict = {} current = list(set(current)) for i in features_list: dict[i] = 0 for i in current: if i in dict: dict[ i] += 1 # this increments the count of a particular feature in an app for i in features_list: df.at[count, i] = dict[i] count += 1 # count keeps the number of apps analyzed and name of csv of each app is after its count csv_filename = str(count)