Beispiel #1
0
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='.')
Beispiel #2
0
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()
Beispiel #3
0
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()
Beispiel #4
0
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)
Beispiel #5
0
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())
Beispiel #6
0
    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)