# - * - 코딩 : UTF-8 - * - 수입 재 수입 OS의 수입 ZipFile에 에서 biplist 수입 * 에서 androguard.core.bytecodes 수입 APK의 클래스 AnalyzePackage : 데프 get_android_data (자기, package_file) : 시도 : apkobj = apk.APK (package_file ) 을 제외하고 ERR 같은 예외 : 인쇄 (ERR) 다른 : 경우 apkobj.is_valid_APK () : versionCode를 =apkobj.get_androidversion_code () BUNDLE_ID = apkobj.get_package () 라벨 이름 = apkobj.get_app_name () versioname = apkobj.get_androidversion_name () sdk_version = apkobj.get_target_sdk_version () 리턴 라벨 이름, BUNDLE_ID, 버전 코드, versioname, sdk_version DEF get_ios_data (자기, ios_file) : 만약 zipfile.is_zipfile (ios_file) ipaobj = zipfile.ZipFile (ios_file) info_path = self.get_ios_info_path (ipaobj) 만약 info_path : plist_data = ipaobj.read (info_path) plist_root = readPlistFromString (plist_data) 라벨 이름 = plist_root [ ' CFBundleDisplayName ' ] 버전 코드 = plist_root [ ' CFBundleVersion ' ] BUNDLE_ID = plist_root [ ' CFBundleIdentifier ' ] 리턴 라벨 이름, BUNDLE_ID, 버전 코드 DEF get_ios_info_path ( 자기, ipaobj) : infopath_re = re.compile (R" .. * 앱 /의 Info.plist ' ) 에 대한 I 에서 ipaobj.namelist () : m = infopath_re.match (I)의 경우, m은 없다 하지 없음 : 리턴 m.group () DEF 자아 package_path (get_package_size) FSIZE = os.path.getsize (package_path) FSIZE = FSIZE / 플로트 (1,024 * 1,024 ) 반송 원 (FSIZE 2)