Extract Module — apkInspector documentation

# Extract Module

apkInspector.extract.extract_all_files_from_central_directory(apk_file, central_directory_entries, local_header_entries, output_dir)

  Extracts all files from an APK based on the entries detected in the central_directory_entries.

  Parameters:

    - apk_file (bytesIO) – The APK file e.g. with open(‘test.apk’, ‘rb’) as apk_file

    - central_directory_entries (dict) – The dictionary with all the entries for the central directory

    - local_header_entries (dict) – The dictionary with all the local header entries

    - output_dir (str) – The output directory where to save the files.

  Returns:

    Returns 0 if no errors, 1 if an exception and 2 if the output directory already exists

  Return type:

    int

apkInspector.extract.extract_file_based_on_header_info(apk_file, local_header_info, central_directory_info)

  Extracts a single file from the apk_file based on the information provided from the offset and the header_info. It takes into account that the compression method provided might not be STORED or DEFLATED! The returned ‘indicator’, shows what compression method was used. Besides the standard STORED/DEFLATE it may return ‘DEFLATED_TAMPERED’, which means that the compression method found was not DEFLATED(8) but it should have been, and ‘STORED_TAMPERED’ which means that the compression method found was not STORED(0) but should have been.

  Parameters:

    - apk_file (bytesIO) – The APK file e.g. with open(‘test.apk’, ‘rb’) as apk_file

    - local_header_info (dict) – The local header dictionary info for that specific filename

    - central_directory_info (dict) – The central directory entry for that specific filename

  Returns:

    Returns the actual extracted data for that file along with an indication of whether a static analysis evasion technique was used or not.

  Return type:

    set(bytes, str)