Naglaa F. Soliman

56 papers Journal 56
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Heba M. Emara, Walid El-Shafai, Naglaa F. Soliman, Abeer D. Algarni, Reem Alkanhel, Fathi E. Abd El-Samie
2025 J jnl
IEEE Access
Ayesha Ayub, Zuhairiah Zainal Abidin, Abdulraqeb Alhammadi, Naglaa F. Soliman, Muhammad Asim Khan, Nurul Bashirah Ghazali
2025 J jnl
IEEE Access
Samy Abd El-Nabi, Ahmed F. Ibrahim, El-Sayed M. El-Rabaie, Osama F. Hassan, Naglaa F. Soliman, Khalil F. Ramadan, Walid El-Shafai
2025 J jnl
Int. J. Comput. Intell. Syst.
Noha A. El-Hag, Walid El-Shafai, Fathi E. Abd El-Samie, Naglaa F. Soliman
2025 J jnl
Neural Comput. Appl.
Fatma M. Talaat, Walid El-Shafai, Naglaa F. Soliman, Abeer D. Algarni, Fathi E. Abd El-Samie
2025 J jnl
Concurr. Comput. Pract. Exp.
Ali Hamzah Najim, Hussein Ali Rasool, Amjed Abbas Ahmed, Naglaa F. Soliman
2024 J jnl
IEEE Access
Samia M. Abd-Alhalem, Hesham Arafat Ali, Naglaa F. Soliman, Abeer D. Algarni, Hanaa Salem Marie
2024 J jnl
IEEE Access
Jalu A. Prakosa, Norma Alias, Purwowibowo Purwowibowo, Abeer D. Algarni, Naglaa F. Soliman
2024 J jnl
CoRR
Mohamed R. Shoaib, Heba M. Emara, Jun Zhao, Walid El-Shafai, Naglaa F. Soliman, Ahmed S. Mubarak, Osama A. Omer, Fathi E. Abd El-Samie, Hamada Esmaiel
2024 J jnl
Comput. Biol. Medicine
Mohamed R. Shoaib, Heba M. Emara, Jun Zhao, Walid El-Shafai, Naglaa F. Soliman, Ahmed S. Mubarak, Osama A. Omer, Fathi E. Abd El-Samie, Hamada Esmaiel
2024 J jnl
IEEE Access
Hamza Touil, Nabil El Akkad, Khalid Satori, Naglaa F. Soliman, Walid El-Shafai
2024 J jnl
Comput. Mater. Continua
Nahed Tawfik, Heba M. Emara, Walid El-Shafai, Naglaa F. Soliman, Abeer D. Algarni, Fathi E. Abd El-Samie
2024 J jnl
IEEE Access
Worod Adris Shutnan, Nora Ahmed Mohammed, Faris Asaad Abdulmunem, Ali Hamzah Najim, Mustafa Yahya Hassan, Naglaa F. Soliman, Abeer D. Algarni
2024 J jnl
Comput. Electr. Eng.
Fatma M. Talaat, Walid El-Shafai, Naglaa F. Soliman, Abeer D. Algarni, Fathi E. Abd El-Samie, Ali I. Siam
2023 J jnl
Comput. Syst. Sci. Eng.
K. Sreelakshmy, Himanshu Gupta, Om Prakash Verma, Kapil Kumar, Abdelhamied A. Ateya, Naglaa F. Soliman
2023 J jnl
IEEE Access
Heba M. Emara, Walid El-Shafai, Abeer D. Algarni, Naglaa F. Soliman, Fathi E. Abd El-Samie
2023 J jnl
Frontiers Inf. Technol. Electron. Eng.
Fatma Khallaf, Walid El-Shafai, El-Sayed M. El-Rabaie, Naglaa F. Soliman, Fathi E. Abd El-Samie
2023 J jnl
Comput. Syst. Sci. Eng.
Firas Abedi, Hayder M. A. Ghanimi, Abeer D. Algarni, Naglaa F. Soliman, Walid El-Shafai, Ali Hashim Abbas, Zahraa H. Kareem, Hussein Muhi Hariz, Ahmed Alkhayyat
2023 J jnl
IEEE Access
Kaushlendra Sharma, Md. Mehedi Hassan, Saroj Kumar Pandey, Mimansha Saini, Rajesh Doriya, Manoj Kumar Ojha, Anurag Sinha, Chetna Kaushal, Anupam Kumar Bairagi, Naglaa F. Soliman
2023 J jnl
Comput. Syst. Sci. Eng.
Firas Abedi, Hayder M. A. Ghanimi, Abeer D. Algarni, Naglaa F. Soliman, Walid El-Shafai, Ali Hashim Abbas, Zahraa H. Kareem, Hussein Muhi Hariz, Ahmed Alkhayyat
2023 J jnl
IEEE Access
Sura Mahmood Abdullah, Thekra Abbas, Munzir Hubiba Bashir, Ishfaq Ahmad Khaja, Musheer Ahmad, Naglaa F. Soliman, Walid El-Shafai
2023 J jnl
Intell. Autom. Soft Comput.
Mahmood Al-Bahri, Abdelhamied A. Ateya, Ammar Muthanna, Abeer D. Algarni, Naglaa F. Soliman
2023 J jnl
Wirel. Pers. Commun.
Walid El Shafai, Amany Daosh, Nehad Haggag, Aya M. Gamal, Nevein Sadic, Yasser Mahrous, Fatma E. Ibrahim, Naglaa F. Soliman, Abeer D. Algarni, Ghada M. El Banby, Mohamed R. Abdel-Rahman, Saeed A. Aldosari, Emad S. Hassan, Huda Ibrahim Ashiba, Eman A. Sultan, Waleed Al-Hanafy, Adel A. Saleeb, Adel S. El-Fishawy, El-Sayed M. El-Rabaie, Mohamed M. E. El-Halawany, Moawad I. Dessouky, Sami A. El-Dolil, Nabil A. Ismail, Ibrahim M. Eldokany, Atef Abou Elazm, Fathi E. Abd El-Samie
2023 J jnl
Intell. Autom. Soft Comput.
Lamiaa A. Abou Elazm, Walid El-Shafai, Sameh Ibrahim, Mohamed G. Egila, H. Shawkey, Mohamed K. H. Elsaid, Naglaa F. Soliman, Hussah Nasser AlEisa, Fathi E. Abd El-Samie
2023 J jnl
Comput. Syst. Sci. Eng.
Mostafa Nassar, Anas M. Ali, Walid El Shafai, Adel A. Saleeb, Fathi E. Abd El-Samie, Naglaa F. Soliman, Hussah Nasser AlEisa, Hossam Eldin H. Ahmed
2023 J jnl
Comput. Syst. Sci. Eng.
Imran Ali, Zohaib Mushtaq, Saad Arif, Abeer D. Algarni, Naglaa F. Soliman, Walid El Shafai
2023 J jnl
IEEE Access
Eman S. Sabry, Salah S. Elagooz, Fathi E. Abd El-Samie, Walid El Shafai, Nirmeen A. El-Bahnasawy, Ghada M. El Banby, Abeer D. Algarni, Naglaa F. Soliman, Rabie A. Ramadan
2023 J jnl
IEEE Access
Md. Manjurul Ahsan, Md Shahin Ali, Md. Mehedi Hassan, Tareque Abu Abdullah, Kishor Datta Gupta, Ulas Bagci, Chetna Kaushal, Naglaa F. Soliman
2023 J jnl
Intell. Autom. Soft Comput.
Farid Nahli, Alexander Paramonov, Naglaa F. Soliman, Hussah Nasser AlEisa, Reem Alkanhel, Ammar Muthanna, Abdelhamied A. Ateya
2023 J jnl
Comput. Syst. Sci. Eng.
Walid El Shafai, Marwa A. Elsayed, Mohsen A. Rashwan, Moawad I. Dessouky, Adel S. El-Fishawy, Naglaa F. Soliman, Amel Ali Alhussan, Fathi E. Abd El-Samie
2023 J jnl
IEEE Access
Farhana Yasmin, Md. Mehedi Hassan, Mahade Hasan, Sadika Zaman, Chetna Kaushal, Walid El Shafai, Naglaa F. Soliman
2023 J jnl
Intell. Autom. Soft Comput.
Walid El-Shafai, Hayam A. Abd El-Hameed, Noha A. El-Hag, Ashraf A. M. Khalaf, Naglaa F. Soliman, Hussah Nasser AlEisa, Fathi E. Abd El-Samie
2023 J jnl
Comput. Syst. Sci. Eng.
Musheer Ahmad, Reem Ibrahim Alkanhel, Naglaa F. Soliman, Abeer D. Algarni, Fathi E. Abd El-Samie, Walid El-Shafai
2023 J jnl
Comput. Syst. Sci. Eng.
Ahmed Elshafee, Walid El Shafai, Abeer D. Algarni, Naglaa F. Soliman, Moustafa H. Aly
2022 J jnl
Sensors
Ponnai Manogaran Ashok Kumar, Lakshmi Narayanan Arun Raj, B. Jyothi, Naglaa F. Soliman, Mohit Bajaj, Walid El Shafai
2022 J jnl
Intell. Autom. Soft Comput.
Naglaa F. Soliman, Samia M. Abd-Alhalem, Walid El-Shafai, Salah Eldin S. E. Abd Elrahman, N. Ismaiel, El-Sayed M. El-Rabaie, Abeer D. Algarni, Fatimah Algarni, Fathi E. Abd El-Samie
2022 J jnl
Intell. Autom. Soft Comput.
Walid El-Shafai, Abeer D. Algarni, Ghada M. El Banby, Fathi E. Abd El-Samie, Naglaa F. Soliman
2022 J jnl
Comput. Intell. Neurosci.
Ali I. Siam, Naglaa F. Soliman, Abeer D. Algarni, Fathi E. Abd El-Samie, Ahmed Sedik
2022 J jnl
Intell. Autom. Soft Comput.
Naglaa F. Soliman, Samia M. Abd-Alhalem, Walid El-Shafai, Salah Eldin S. E. Abd Elrahman, N. Ismaiel, El-Sayed M. El-Rabaie, Abeer D. Algarni, Fatimah Algarni, Amel Ali Alhussan, Fathi E. Abd El-Samie
2022 J jnl
Intell. Autom. Soft Comput.
Abdelhamied A. Ateya, Abeer D. Algarni, Hanaa A. Abdallah, Naglaa F. Soliman
2022 J jnl
IEEE Access
Musheer Ahmad, Reem Alkanhel, Walid El Shafai, Abeer D. Algarni, Fathi E. Abd El-Samie, Naglaa F. Soliman
2022 J jnl
IEEE Access
Shimaa A. El-Meadawy, Hossam M. H. Shalaby, Nabil A. Ismail, Fathi E. Abd El-Samie, Naglaa F. Soliman, Abeer D. Algarni, Walid El Shafai, Ahmed E. Farghal
2022 J jnl
Axioms
Eman S. Sabry, Salah S. Elagooz, Fathi E. Abd El-Samie, Walid El Shafai, Nirmeen A. El-Bahnasawy, Ghada M. El Banby, Naglaa F. Soliman, Sudhakar Sengan, Rabie A. Ramadan
2022 J jnl
Sensors
Khola Nazar, Yousaf Saeed, Abid Ali, Abeer D. Algarni, Naglaa F. Soliman, Abdelhamied A. Ateya, Mohammed Saleh Ali Muthanna, Faisal Jamil
2021 J jnl
IEEE Access
Amjad Hussain Zahid, Musheer Ahmad, Ahmed Alkhayyat, Muhammad Junaid Arshad, Mian Muhammad Umar Shaban, Naglaa F. Soliman, Abeer D. Algarni
2021 J jnl
Multim. Tools Appl.
Naglaa F. Soliman, M. I. Khalil, Abeer D. Algarni, Sahar Ismail, Radwa Marzouk, Walid El Shafai
2021 J jnl
Multim. Tools Appl.
Abeer D. Algarni, Naglaa F. Soliman, Hanaa A. Abdallah, Fathi E. Abd El-Samie
2020 J jnl
Entropy
Abeer D. Algarni, Ghada M. El Banby, Sahar Ismail, Walid El Shafai, Fathi E. Abd El-Samie, Naglaa F. Soliman
2019 J jnl
Int. J. Speech Technol.
Menna S. Abd El-Galil, Naglaa F. Soliman, Mahmoud I. Abdalla, Fathi E. Abd El-Samie
2017 J jnl
Int. J. Speech Technol.
Naglaa F. Soliman, Zhraa Mostfa, Fathi E. Abd El-Samie, Mahmoud I. Abdalla
2016 J jnl
Int. J. Speech Technol.
Naglaa F. Soliman, Samia M. Abd-Alhalem, Sahar A. El-Rahman, Mohammed M. Fouad, Fathi E. Abd El-Samie
2015 J jnl
Wirel. Pers. Commun.
Naglaa F. Soliman, Emad S. Hassan, Abdelhamid A. Shaalan, Mohammed M. Fouad, Said Esmail El-Khamy, Yasser Attia Albagory, Mohsen A. M. El-Bendary, Waleed Al-Hanafy, El-Sayed M. El-Rabaie, Moawad I. Dessouky, Sami A. El-Dolil, Saleh A. Alshebeili, Fathi E. Abd El-Samie
2015 J jnl
Wirel. Pers. Commun.
Ibrahim M. Eldokany, El-Sayed M. El-Rabaie, Said M. Elhalafawy, Mohamed A. Zein Eldin, Mai H. Shahieen, Naglaa F. Soliman, Mohsen A. M. El-Bendary, Mohammed Abd El-Naby, Faisal S. Al-Kamali, Ibrahim F. Elashry, Fathi E. Abd El-Samie
2014 J jnl
Wirel. Pers. Commun.
Naglaa F. Soliman, Yasser Attia Albagory, Mohsen A. M. El-Bendary, Waleed Al-Hanafy, El-Sayed M. El-Rabaie, Saleh A. Alshebeili, Fathi E. Abd El-Samie
2014 J jnl
J. Syst. Softw.
Ensherah A. Naeem, Mustafa M. Abd-Elnaby, Naglaa F. Soliman, Alaa M. Abbas, Osama S. Faragallah, Noura A. Semary, Mohiy M. Hadhoud, Saleh A. Alshebeili, Fathi E. Abd El-Samie
2013 J jnl
Digit. Signal Process.
Seif Shebl, Naglaa F. Soliman, Nawal A. El-Fishawy, Atef E. Abou-El-azm, Saleh A. Alshebeili, Fathi E. Abd El-Samie
redb/extractors/apk_extractors/apk_resources.py
← Index redb/extractors/apk_extractors/apk_resources.py python
import hashlib
import inspect
import os
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.apk_extractor import APKExtractor
from redb.models.dataclasses import APKResource


# ─── Suspicious file types ──────────────────────────────────────────────
# File types that are suspicious when found inside res/ or assets/.
# Excludes javascript/html (extremely common in legitimate hybrid apps)
# and common media/font types that are normal APK content.
SUSPICIOUS_TYPES = {
    # Executables — no legitimate reason in assets/res
    "elf", "pebin", "macho", "dex", "apk",
    # Java containers — DexClassLoader target
    "jar",
    # Archives — rare in legitimate assets (~135:1 malware-to-benign ratio)
    "zip", "gzip", "7z", "xz", "tar", "bzip2", "rar", "7zip", "lzma",
    # Scripts with system execution capability
    "shell", "python", "powershell", "batch",
}

# ─── Entropy thresholds ─────────────────────────────────────────────────
# For unrecognized/unknown types: encrypted payloads typically land > 7.0
ENTROPY_HIGH_UNKNOWN = 7.0
# For recognized-but-non-image types: stricter threshold
ENTROPY_EXTREME = 7.85

# ─── Android-specific binary format magic bytes ─────────────────────────
# These formats are common in legitimate APKs but unknown to Magika,
# causing misclassification (e.g., AXML → "gzip", profm → "unknown").
AXML_MAGIC = b'\x03\x00\x08\x00'       # Android Binary XML (compiled res/*.xml)
ARSC_MAGIC = b'\x02\x00\x0c\x00'       # Android compiled resource table
ART_PROF_MAGIC = b'pro\x00'            # ART baseline profile
ART_PROFM_MAGIC = b'prm\x00'           # ART baseline profile metadata

# ─── Allowlisted paths ──────────────────────────────────────────────────
# Fixed, hardcoded paths in the Android build system that are always benign.
# ART profiles at these exact paths are shipped by Jetpack ProfileInstaller.
ALLOWLISTED_PATHS = {
    "assets/dexopt/baseline.prof",
    "assets/dexopt/baseline.profm",
}

# ─── Image handling ─────────────────────────────────────────────────────
# Magika-confirmed image types: high entropy is expected (lossy codecs
# like VP8/JPEG arithmetic-code toward entropy ~7.95-8.0 by design).
IMAGE_MAGIKA_TYPES = {"png", "webp", "jpeg", "gif", "bmp", "tiff", "ico"}
IMAGE_EXTENSIONS = {".png", ".webp", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff", ".ico"}

# ─── Types Magika assigns when it can't identify the content ────────────
UNRECOGNIZED_MAGIKA_TYPES = {"unknown", "empty"}

# ─── Resource scan limits ───────────────────────────────────────────────
MAX_RESOURCE_FILES = 5000


class APKResourceExtractor(APKExtractor):

    def __init__(
        self, filepath, log, exporters=None, index_prefix=None,
        known_benign=False, known_malicious=False,
        apk=None,
    ):
        super().__init__(
            filepath, log, exporters, index_prefix,
            known_benign, known_malicious, apk,
        )
        self.resources = []
        self.suspicious_files = []
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.APK_RESOURCES.value

    # ─── Core classification logic ──────────────────────────────────────

    def _identify_android_format(self, header: bytes) -> str | None:
        """
        Identify Android-specific binary formats that Magika doesn't know.
        Returns a corrected type label, or None to fall through to Magika.
        """
        if len(header) < 4:
            return None

        magic4 = header[:4]

        # Android Binary XML — all res/*.xml in a compiled APK.
        # Magika often misclassifies this as "gzip".
        if magic4 == AXML_MAGIC:
            return "android_binary_xml"

        # Android compiled resource table (resources.arsc chunks)
        if magic4 == ARSC_MAGIC:
            return "android_resource_table"

        # ART baseline profiles — high entropy (zlib inside) but benign.
        # The format is inert (method reference bitmaps/metadata, not
        # executable code) and some build configs place them at varying paths.
        if magic4 == ART_PROF_MAGIC:
            return "android_art_profile"
        if magic4 == ART_PROFM_MAGIC:
            return "android_art_profile_metadata"

        return None

    def _is_suspicious_resource(
        self, path: str, magika_type: str, entropy: float,
        android_type: str | None,
    ) -> bool:
        """
        Determine if a resource file is suspicious.

        Detection layers:
        1. Allowlisted paths → always benign
        2. Android-specific format override → reclassify Magika mislabels
        3. Image extension vs Magika type mismatch → encrypted blob detection
        4. Magika-confirmed images → benign regardless of entropy
        5. Suspicious type match → flag known-dangerous types
        6. High-entropy unknown blobs → likely encrypted payloads
        """

        # ── Layer 1: Allowlisted paths (hardcoded Android build artifacts) ──
        if path in ALLOWLISTED_PATHS:
            return False

        # ── Layer 2: Android-specific format detection ──────────────────────
        # Override Magika's label for formats it doesn't recognize.
        # All Android-specific formats (AXML, ARSC, ART profiles) are
        # legitimate build artifacts — never suspicious.
        if android_type is not None:
            return False

        # ── Layer 3: Image extension / Magika type mismatch ─────────────────
        # If the file extension claims "image" but Magika's content analysis
        # disagrees, this is a strong signal for an encrypted payload with
        # a fake image extension (e.g., ErrorFather's "rbyypivsnw.png").
        ext = os.path.splitext(path)[1].lower()
        if ext in IMAGE_EXTENSIONS and magika_type not in IMAGE_MAGIKA_TYPES:
            # Exception: Magika might label a valid image as "unknown" if
            # the file is very small (< ~16 bytes). Don't flag tiny files.
            if entropy > 5.0:
                return True

        # ── Layer 4: Magika-confirmed images → benign ───────────────────────
        # Lossy codecs (VP8, JPEG) produce entropy up to ~8.0 by design.
        # If Magika confirms image structure, high entropy is expected.
        if magika_type in IMAGE_MAGIKA_TYPES:
            return False

        # ── Layer 5: Known suspicious file types ────────────────────────────
        if magika_type in SUSPICIOUS_TYPES:
            return True

        # ── Layer 6: High-entropy unrecognized blobs ────────────────────────
        # Files Magika can't identify with high entropy are likely encrypted
        # payloads. Most Android malware packers store encrypted DEX/SO
        # payloads as opaque blobs with random names and no valid magic.
        if magika_type in UNRECOGNIZED_MAGIKA_TYPES and entropy > ENTROPY_HIGH_UNKNOWN:
            return True

        # ── Layer 7: Extreme entropy on any non-image recognized type ───────
        # Catches edge cases where Magika assigns a benign label (e.g.,
        # "xml", "txt") but the entropy is impossibly high for that format.
        if magika_type not in IMAGE_MAGIKA_TYPES and entropy > ENTROPY_EXTREME:
            return True

        return False

    # ─── Extraction pipeline ────────────────────────────────────────────

    def extract(self):
        if not self._is_valid_apk():
            self.log.error(f"Invalid APK for {self.hash.sha256}")
            return None

        try:
            from magika import Magika
            magika = Magika()
        except Exception as e:
            self.log.error(f"Failed to initialize Magika for {self.hash.sha256}: {e}")
            magika = None

        self.resources = []
        self.suspicious_files = []
        scanned = 0

        zf = self._get_zip_file()
        if not zf:
            return None

        with zf:
            for info in zf.infolist():
                if info.is_dir():
                    continue
                if not (info.filename.startswith("res/") or
                        info.filename.startswith("assets/")):
                    continue

                if scanned >= MAX_RESOURCE_FILES:
                    self.log.warning(
                        f"Resource scan limit reached ({MAX_RESOURCE_FILES}), "
                        f"stopping resource enumeration"
                    )
                    break
                scanned += 1

                try:
                    data = zf.read(info.filename)
                except Exception as e:
                    self.log.warning(
                        f"Error reading resource {info.filename}: {e}"
                    )
                    continue

                try:
                    file_sha256 = hashlib.sha256(data).hexdigest()
                    file_entropy = round(self.calculate_entropy(data), 3)

                    # Read first bytes for Android-specific format detection
                    header = data[:16] if len(data) >= 16 else data

                    if magika:
                        try:
                            filetype = magika.identify_bytes(data).output.label
                        except Exception:
                            filetype = "unknown"
                    else:
                        filetype = "unknown"

                    # Identify Android-specific formats once, reuse for
                    # both stored type and suspicion classification
                    android_type = self._identify_android_format(header)
                    stored_type = android_type if android_type else filetype

                    suspicious = self._is_suspicious_resource(
                        path=info.filename,
                        magika_type=filetype,
                        entropy=file_entropy,
                        android_type=android_type,
                    )

                    resource = APKResource(
                        path=info.filename,
                        size=info.file_size,
                        sha256=file_sha256,
                        filetype_magika=stored_type,
                        entropy=file_entropy,
                    )

                    if suspicious:
                        resource.is_suspicious = True
                        self.suspicious_files.append(resource)

                    self.resources.append(resource)
                except Exception as e:
                    self.log.warning(
                        f"Error processing resource {info.filename}: {e}"
                    )
                    continue

        if not self.resources:
            return None

        return {
            "total_resource_count": len(self.resources),
            "total_resource_size": sum(r.size for r in self.resources),
            "suspicious_file_count": len(self.suspicious_files),
            "resources": self.resources,
            "suspicious_files": self.suspicious_files,
        }

    # ─── Export ──────────────────────────────────────────────────────────

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ClickHouseExporter":
            if not self.resources:
                return None

            current_time = datetime.now(timezone.utc)
            data = []
            for res in self.resources:
                data.append([
                    self.sha256,
                    res.path,
                    res.size,
                    res.sha256,
                    res.filetype_magika,
                    res.entropy,
                    int(res.is_suspicious),
                    current_time,
                ])

            column_names = [
                'sha256', 'resource_path', 'resource_size',
                'resource_sha256', 'resource_magika', 'resource_entropy',
                'is_suspicious', 'analysis_date',
            ]

            column_type_names = [
                'FixedString(64)', 'String', 'UInt64',
                'FixedString(64)', 'LowCardinality(String)', 'Float32',
                'UInt8', "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_apk_resources"