lucasduffey / binja_smali

11 stars 4 forks source link

AnalyzeAPK from androguard is super super helpful #53

Open lucasduffey opened 6 years ago

lucasduffey commented 6 years ago

https://github.com/androguard/androguard/blob/master/tests/test_decompiler.py

wget https://github.com/latenssi/csawctf13/raw/master/herpderperp/herpderper.apk

from androguard.misc import AnalyzeAPK
apk, dalvik_vm_format, analysis = AnalyzeAPK("herpderper.apk") # I think AnalyzeAPK can take decompiler arg

dalvik_vm_format.get_class('Lcom/path/to/class;').source() # decompile

for class in dalvik_vm_format.get_classes():
  class.source() # decompile
lucasduffey commented 6 years ago

NOTE: I think dalvik_vm_format can be a list, if multiple dex files

lucasduffey commented 6 years ago

    apk, dalvik_vm_formats, analysis = AnalyzeAPK(apk_path)

    url_regex = "(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})"
    print(dalvik_vm_formats)

    if type(dalvik_vm_formats) != list:
        dalvik_vm_formats = [dalvik_vm_formats]

    regex_strings = []
    for dalvik_vm_format in dalvik_vm_formats:
        regex_strings += dalvik_vm_format.get_regex_strings(url_regex)
``