add min max target sdk collection
This commit is contained in:
parent
cbac24b0f7
commit
0d55851347
3 changed files with 14 additions and 0 deletions
|
|
@ -11,6 +11,8 @@ from pathlib import Path
|
|||
from getpass import getpass
|
||||
from datetime import datetime
|
||||
|
||||
from androguard.core.apk import APK # type: ignore
|
||||
|
||||
|
||||
from .androzoo import download_apk
|
||||
from .data import ApkData, load_from_directory
|
||||
|
|
@ -146,6 +148,7 @@ def main():
|
|||
if args.output_dir and (args.output_dir / sha256).exists():
|
||||
continue
|
||||
|
||||
androguard_apk = APK(str(apk_path))
|
||||
with apk_path.open("rb") as file:
|
||||
with zipfile.ZipFile(file) as apk:
|
||||
try:
|
||||
|
|
@ -156,6 +159,7 @@ def main():
|
|||
json_out = None
|
||||
entry = analyze(
|
||||
apk,
|
||||
androguard_apk,
|
||||
sha256,
|
||||
json_out=json_out,
|
||||
sdk34_dir=args.output_dir_def_sdk34_classes,
|
||||
|
|
@ -220,6 +224,7 @@ def main():
|
|||
apk_bin = download_apk(sha256, api_key, logfile=logfile)
|
||||
if apk_bin is None:
|
||||
continue
|
||||
androguard_apk = APK(apk_bin)
|
||||
with zipfile.ZipFile(io.BytesIO(apk_bin)) as apk:
|
||||
try:
|
||||
if args.json:
|
||||
|
|
@ -228,6 +233,7 @@ def main():
|
|||
json_out = None
|
||||
entry = analyze(
|
||||
apk,
|
||||
androguard_apk,
|
||||
sha256,
|
||||
json_out=json_out,
|
||||
sdk34_dir=args.output_dir_def_sdk34_classes,
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ from pathlib import Path
|
|||
|
||||
import androguard.core.dex # type: ignore
|
||||
from androguard.core.dex import DEX # type: ignore
|
||||
from androguard.core.apk import APK # type: ignore
|
||||
|
||||
# loguru -> logging framework used by androgard
|
||||
from loguru import logger # type: ignore
|
||||
|
|
@ -198,6 +199,7 @@ def scan_classes(
|
|||
|
||||
def analyze(
|
||||
apk: zipfile.ZipFile,
|
||||
androguard_apk: APK,
|
||||
sha256: str,
|
||||
json_out: dict | None = None,
|
||||
sdk34_dir: Path | None = None,
|
||||
|
|
@ -283,6 +285,9 @@ def analyze(
|
|||
has_classes_dex_over_10=any(map(lambda x: x >= 10, dex_numbers)),
|
||||
has_non_numeric_classes_dex=has_non_numeric_classes_dex,
|
||||
has_non_consecutive_classes_dex=has_non_consecutive_classes_dex,
|
||||
min_sdk_version=int(androguard_apk.get_min_sdk_version() or "-1"),
|
||||
max_sdk_version=int(androguard_apk.get_max_sdk_version() or "-1"),
|
||||
target_sdk_version=int(androguard_apk.get_target_sdk_version() or "-1"),
|
||||
)
|
||||
if json_out is not None:
|
||||
json_out["entry"] = asdict(entry)
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ class ApkData:
|
|||
has_classes_dex_over_10: bool
|
||||
has_non_numeric_classes_dex: bool
|
||||
has_non_consecutive_classes_dex: bool
|
||||
min_sdk_version: int = -1
|
||||
max_sdk_version: int = -1
|
||||
target_sdk_version: int = -1
|
||||
year: int = -1
|
||||
vt_detection: int = -1
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue