272 lines
9.6 KiB
Python
272 lines
9.6 KiB
Python
from typing import Any, ClassVar, Optional, Union
|
|
|
|
from typing import overload
|
|
import io
|
|
import lief.Android # type: ignore
|
|
import lief.DEX # type: ignore
|
|
import lief.ELF # type: ignore
|
|
import lief.OAT # type: ignore
|
|
import lief.OAT.Binary # type: ignore
|
|
import lief.OAT.Class # type: ignore
|
|
import lief.OAT.Header # type: ignore
|
|
import os
|
|
|
|
class Binary(lief.ELF.Binary):
|
|
class it_classes:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.OAT.Class: ...
|
|
def __iter__(self) -> lief.OAT.Binary.it_classes: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.OAT.Class: ...
|
|
|
|
class it_dex_files:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.DEX.File: ...
|
|
def __iter__(self) -> lief.OAT.Binary.it_dex_files: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.DEX.File: ...
|
|
|
|
class it_methods:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.OAT.Method: ...
|
|
def __iter__(self) -> lief.OAT.Binary.it_methods: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.OAT.Method: ...
|
|
|
|
class it_oat_dex_files:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.OAT.DexFile: ...
|
|
def __iter__(self) -> lief.OAT.Binary.it_oat_dex_files: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.OAT.DexFile: ...
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
@overload
|
|
def get_class(self, class_name: str) -> lief.OAT.Class: ...
|
|
@overload
|
|
def get_class(self, class_index: int) -> lief.OAT.Class: ...
|
|
@property
|
|
def classes(self) -> lief.OAT.Binary.it_classes: ...
|
|
@property
|
|
def dex2dex_json_info(self) -> str: ...
|
|
@property
|
|
def dex_files(self) -> lief.OAT.Binary.it_dex_files: ...
|
|
@property
|
|
def has_class(self) -> bool: ...
|
|
@property
|
|
def header(self) -> lief.OAT.Header: ... # type: ignore
|
|
@property
|
|
def methods(self) -> lief.OAT.Binary.it_methods: ...
|
|
@property
|
|
def oat_dex_files(self) -> lief.OAT.Binary.it_oat_dex_files: ...
|
|
|
|
class Class(lief.Object):
|
|
class it_methods:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.OAT.Method: ...
|
|
def __iter__(self) -> lief.OAT.Class.it_methods: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.OAT.Method: ...
|
|
def __init__(self) -> None: ...
|
|
def has_dex_class(self) -> bool: ...
|
|
@overload
|
|
def is_quickened(self, dex_method: lief.DEX.Method) -> bool: ...
|
|
@overload
|
|
def is_quickened(self, method_index: int) -> bool: ...
|
|
@overload
|
|
def method_offsets_index(self, arg: lief.DEX.Method, /) -> int: ...
|
|
@overload
|
|
def method_offsets_index(self, arg: int, /) -> int: ...
|
|
@property
|
|
def bitmap(self) -> list[int]: ...
|
|
@property
|
|
def fullname(self) -> str: ...
|
|
@property
|
|
def index(self) -> int: ...
|
|
@property
|
|
def methods(self) -> lief.OAT.Class.it_methods: ...
|
|
@property
|
|
def status(self) -> lief.OAT.OAT_CLASS_STATUS: ...
|
|
@property
|
|
def type(self) -> lief.OAT.OAT_CLASS_TYPES: ...
|
|
|
|
class DexFile(lief.Object):
|
|
checksum: int
|
|
dex_offset: int
|
|
location: str
|
|
def __init__(self) -> None: ...
|
|
@property
|
|
def dex_file(self) -> lief.DEX.File: ...
|
|
@property
|
|
def has_dex_file(self) -> bool: ...
|
|
|
|
class HEADER_KEYS:
|
|
BOOT_CLASS_PATH: ClassVar[HEADER_KEYS] = ...
|
|
CLASS_PATH: ClassVar[HEADER_KEYS] = ...
|
|
COMPILER_FILTER: ClassVar[HEADER_KEYS] = ...
|
|
CONCURRENT_COPYING: ClassVar[HEADER_KEYS] = ...
|
|
DEBUGGABLE: ClassVar[HEADER_KEYS] = ...
|
|
DEX2OAT_CMD_LINE: ClassVar[HEADER_KEYS] = ...
|
|
DEX2OAT_HOST: ClassVar[HEADER_KEYS] = ...
|
|
HAS_PATCH_INFO: ClassVar[HEADER_KEYS] = ...
|
|
IMAGE_LOCATION: ClassVar[HEADER_KEYS] = ...
|
|
NATIVE_DEBUGGABLE: ClassVar[HEADER_KEYS] = ...
|
|
PIC: ClassVar[HEADER_KEYS] = ...
|
|
__name__: str
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __ge__(self, other) -> bool: ...
|
|
def __gt__(self, other) -> bool: ...
|
|
def __hash__(self) -> int: ...
|
|
def __index__(self) -> Any: ...
|
|
def __int__(self) -> int: ...
|
|
def __le__(self, other) -> bool: ...
|
|
def __lt__(self, other) -> bool: ...
|
|
|
|
class Header(lief.Object):
|
|
class element_t:
|
|
key: lief.OAT.HEADER_KEYS
|
|
value: str
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
|
|
class it_key_values_t:
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __getitem__(self, arg: int, /) -> lief.OAT.Header.element_t: ...
|
|
def __iter__(self) -> lief.OAT.Header.it_key_values_t: ...
|
|
def __len__(self) -> int: ...
|
|
def __next__(self) -> lief.OAT.Header.element_t: ...
|
|
def __init__(self) -> None: ...
|
|
def get(self, key: lief.OAT.HEADER_KEYS) -> str: ...
|
|
def set(self, key: lief.OAT.HEADER_KEYS, value: str) -> lief.OAT.Header: ...
|
|
def __getitem__(self, arg: lief.OAT.HEADER_KEYS, /) -> str: ...
|
|
def __setitem__(self, arg0: lief.OAT.HEADER_KEYS, arg1: str, /) -> lief.OAT.Header: ...
|
|
@property
|
|
def checksum(self) -> int: ...
|
|
@property
|
|
def executable_offset(self) -> int: ...
|
|
@property
|
|
def i2c_code_bridge_offset(self) -> int: ...
|
|
@property
|
|
def i2i_bridge_offset(self) -> int: ...
|
|
@property
|
|
def image_file_location_oat_checksum(self) -> int: ...
|
|
@property
|
|
def image_file_location_oat_data_begin(self) -> int: ...
|
|
@property
|
|
def image_patch_delta(self) -> int: ...
|
|
@property
|
|
def instruction_set(self) -> lief.OAT.INSTRUCTION_SETS: ...
|
|
@property
|
|
def jni_dlsym_lookup_offset(self) -> int: ...
|
|
@property
|
|
def key_value_size(self) -> int: ...
|
|
@property
|
|
def key_values(self) -> lief.OAT.Header.it_key_values_t: ...
|
|
@property
|
|
def keys(self) -> list[lief.OAT.HEADER_KEYS]: ...
|
|
@property
|
|
def magic(self) -> list[int]: ...
|
|
@property
|
|
def nb_dex_files(self) -> int: ...
|
|
@property
|
|
def oat_dex_files_offset(self) -> int: ...
|
|
@property
|
|
def quick_generic_jni_trampoline_offset(self) -> int: ...
|
|
@property
|
|
def quick_imt_conflict_trampoline_offset(self) -> int: ...
|
|
@property
|
|
def quick_resolution_trampoline_offset(self) -> int: ...
|
|
@property
|
|
def quick_to_interpreter_bridge_offset(self) -> int: ...
|
|
@property
|
|
def values(self) -> list[str]: ...
|
|
@property
|
|
def version(self) -> int: ...
|
|
|
|
class INSTRUCTION_SETS:
|
|
ARM: ClassVar[INSTRUCTION_SETS] = ...
|
|
ARM_64: ClassVar[INSTRUCTION_SETS] = ...
|
|
MIPS: ClassVar[INSTRUCTION_SETS] = ...
|
|
MIPS_64: ClassVar[INSTRUCTION_SETS] = ...
|
|
NONE: ClassVar[INSTRUCTION_SETS] = ...
|
|
THUMB2: ClassVar[INSTRUCTION_SETS] = ...
|
|
X86: ClassVar[INSTRUCTION_SETS] = ...
|
|
X86_64: ClassVar[INSTRUCTION_SETS] = ...
|
|
__name__: str
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __ge__(self, other) -> bool: ...
|
|
def __gt__(self, other) -> bool: ...
|
|
def __hash__(self) -> int: ...
|
|
def __index__(self) -> Any: ...
|
|
def __int__(self) -> int: ...
|
|
def __le__(self, other) -> bool: ...
|
|
def __lt__(self, other) -> bool: ...
|
|
|
|
class Method(lief.Object):
|
|
quick_code: list[int]
|
|
def __init__(self) -> None: ...
|
|
@property
|
|
def dex_method(self) -> lief.DEX.Method: ...
|
|
@property
|
|
def has_dex_method(self) -> bool: ...
|
|
@property
|
|
def is_compiled(self) -> bool: ...
|
|
@property
|
|
def is_dex2dex_optimized(self) -> bool: ...
|
|
@property
|
|
def name(self) -> str: ...
|
|
@property
|
|
def oat_class(self) -> lief.OAT.Class: ...
|
|
|
|
class OAT_CLASS_STATUS:
|
|
ERROR: ClassVar[OAT_CLASS_STATUS] = ...
|
|
IDX: ClassVar[OAT_CLASS_STATUS] = ...
|
|
INITIALIZED: ClassVar[OAT_CLASS_STATUS] = ...
|
|
INITIALIZING: ClassVar[OAT_CLASS_STATUS] = ...
|
|
LOADED: ClassVar[OAT_CLASS_STATUS] = ...
|
|
NOTREADY: ClassVar[OAT_CLASS_STATUS] = ...
|
|
RESOLVED: ClassVar[OAT_CLASS_STATUS] = ...
|
|
RESOLVING: ClassVar[OAT_CLASS_STATUS] = ...
|
|
RETIRED: ClassVar[OAT_CLASS_STATUS] = ...
|
|
VERIFICATION_AT_RUNTIME: ClassVar[OAT_CLASS_STATUS] = ...
|
|
VERIFIED: ClassVar[OAT_CLASS_STATUS] = ...
|
|
VERIFYING: ClassVar[OAT_CLASS_STATUS] = ...
|
|
VERIFYING_AT_RUNTIME: ClassVar[OAT_CLASS_STATUS] = ...
|
|
__name__: str
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __ge__(self, other) -> bool: ...
|
|
def __gt__(self, other) -> bool: ...
|
|
def __hash__(self) -> int: ...
|
|
def __index__(self) -> Any: ...
|
|
def __int__(self) -> int: ...
|
|
def __le__(self, other) -> bool: ...
|
|
def __lt__(self, other) -> bool: ...
|
|
|
|
class OAT_CLASS_TYPES:
|
|
ALL_COMPILED: ClassVar[OAT_CLASS_TYPES] = ...
|
|
NONE_COMPILED: ClassVar[OAT_CLASS_TYPES] = ...
|
|
SOME_COMPILED: ClassVar[OAT_CLASS_TYPES] = ...
|
|
__name__: str
|
|
def __init__(self, *args, **kwargs) -> None: ...
|
|
def __ge__(self, other) -> bool: ...
|
|
def __gt__(self, other) -> bool: ...
|
|
def __hash__(self) -> int: ...
|
|
def __index__(self) -> Any: ...
|
|
def __int__(self) -> int: ...
|
|
def __le__(self, other) -> bool: ...
|
|
def __lt__(self, other) -> bool: ...
|
|
|
|
def android_version(arg: int, /) -> lief.Android.ANDROID_VERSIONS: ...
|
|
@overload
|
|
def parse(oat_file: str) -> Optional[lief.OAT.Binary]: ...
|
|
@overload
|
|
def parse(oat_file: str, vdex_file: str) -> Optional[lief.OAT.Binary]: ...
|
|
@overload
|
|
def parse(raw: list[int]) -> Optional[lief.OAT.Binary]: ...
|
|
@overload
|
|
def parse(obj: Union[io.IOBase|os.PathLike]) -> Optional[lief.OAT.Binary]: ...
|
|
@overload
|
|
def version(binary: lief.ELF.Binary) -> int: ...
|
|
@overload
|
|
def version(file: str) -> int: ...
|
|
@overload
|
|
def version(raw: list[int]) -> int: ...
|