示例#1
0
def From_apk_to_code_item_str(path_of_apk):
    apk = path_of_apk
    apk_obj = APK(apk)
    dalvik_obj = DalvikVMFormat(apk_obj)
    code_item = dalvik_obj.get_codes_item()
    code_item_str = code_item.show(
    )  #Required manuel modification of package .show()
    return code_item_str
示例#2
0
def make_img(dirname, img_path):
    cnt = 0
    size = int()

    filenames = os.listdir(dirname)
    for filename in filenames[:]:
        cnt += 1
        full_filename = os.path.join(dirname, filename)
        if os.path.isdir(full_filename):
            make_img(full_filename, img_path)
        else:
            file_split = os.path.splitext(full_filename)
            if file_split[1] == '.apk':
                try:
                    b = int()

                    apk = APK(full_filename)

                    dalvik = DalvikVMFormat(apk)

                    code_item = dalvik.get_codes_item()
                    code_item_str = code_item.show()

                    binary = int(code_item_str, 16)
                    size = int(((len(
                        binary.to_bytes(int(len(code_item_str) / 2), 'big')) //
                                 8)))
                    size = int(math.sqrt(size))

                    photo_image = PIL.Image.frombytes(
                        'L', (size, size),
                        binary.to_bytes(int(len(code_item_str) / 2), 'big'))
                    split_name = os.path.splitext(filename)
                    full_img_path = img_path + split_name[0] + '.jpg'
                    print(full_img_path)
                    photo_image.save(full_img_path)

                except Exception as ex:
                    cnt -= 1
                    print(ex)
                    continue

            else:
                pass

    print("processed :", cnt)
示例#3
0
def make_img(dirname, img_path):
    try:
        filenames = os.listdir(dirname)
        for filename in filenames:

            try:
                full_filename = os.path.join(dirname, filename)
                if os.path.isdir(full_filename):
                    make_img(full_filename, img_path)
                else:
                    file_split = os.path.splitext(full_filename)
                    if file_split[1] == '.apk':
                        apk = APK(full_filename)
                        dalvik = DalvikVMFormat(apk)

                        code_item = dalvik.get_codes_item()
                        code_item_str = code_item.show()

                        binary = int(code_item_str, 16)

                        photo_image = PIL.Image.frombytes(
                            'P', (100, 100),
                            binary.to_bytes(int(len(code_item_str) / 2),
                                            sys.byteorder))

                        split_name = os.path.splitext(filename)
                        full_img_path = img_path + split_name[0] + '.png'
                        print(full_img_path)

                        photo_image.save(full_img_path)
                    else:
                        pass
            except:
                print("except error")

    except PermissionError:
        pass
示例#4
0
            except:
                print("except error")

    except PermissionError:
        pass


dir_path = 'G:/dataset_share/images/drebin(mal)/'
filename = '000a067df9235aea987cd1e6b7768bcc1053e640b267c5b1f0deefc18be5dbe1.apk'
img_path = 'G:/dataset_share/androguard/drebin(mal)_img/'
apk_path = dir_path + filename

apk = APK(apk_path)
dalvik = DalvikVMFormat(apk)

code_item = dalvik.get_codes_item()
code_item_str = code_item.show()

binary = int(code_item_str, 16)
cnt = 0

try:
    photo_image = PIL.Image.frombytes(
        'P', (299, 299),
        binary.to_bytes(int(len(code_item_str) / 2), sys.byteorder))

    img_name = filename.split('.')
    img_name = img_name[0] + '.png'

    photo_image.save(img_path + img_name)
示例#5
0
from androguard.core.bytecodes.apk import APK
from androguard.core.bytecodes.dvm import DalvikVMFormat
from androguard.core.bytecodes.dvm import ClassDefItem

a = APK("C:/Users/jysrm/OneDrive/바탕 화면/study/test.apk")
f = open("new.txt", 'w')

d = DalvikVMFormat(a)

code_item = d.get_codes_item()

code = code_item.show()

f.write(code)

f.close()