Omid Noroozi

46 papers B 2Journal 39Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Comput. Educ.
Stanislav Pozdniakov, Jonathan Brazil, Seyyed Kazem Banihashem, Omid Noroozi, Dragan Gasevic, Shazia Sadiq, Hassan Khosravi
2026 J jnl
Comput. Educ. Artif. Intell.
Omar Alsaiari, Nilufar Baghaei, Jason M. Lodge, Omid Noroozi, Dragan Gasevic, Marie Boden, Hassan Khosravi
2025 J jnl
J. Comput. Assist. Learn.
Seyyed Kazem Banihashem, Dragan Gasevic, Omid Noroozi
2025 J jnl
Br. J. Educ. Technol.
Erkan Er, Gökhan Akçapinar, Alper Bayazit, Omid Noroozi, Seyyed Kazem Banihashem
2025 J jnl
Internet High. Educ.
Mohammadreza Farrokhnia, Abbas Taghizade, Roshan Ahmadi, Pantelis M. Papadopoulos, Omid Noroozi
2025 J jnl
CoRR
Omar Alsaiari, Nilufar Baghaei, Jason M. Lodge, Omid Noroozi, Dragan Gasevic, Marie Boden, Hassan Khosravi
2025 J jnl
Comput. Educ.
Hatim Lahza, Gianluca Demartini, Omid Noroozi, Dragan Gasevic, Shazia Sadiq, Hassan Khosravi
2025 J jnl
Comput. Educ.
Mohammadreza Farrokhnia, Omid Noroozi, Yvette Baggen, Harm J. A. Biemans, Armin Weinberger
2025 J jnl
Interact. Learn. Environ.
Mahmood H. Hussein, Nor Lisa Sulaiman, Omid Noroozi, Monther M. Elaish, Ameer Alhasan
2024 J jnl
Educ. Inf. Technol.
Trung Quang Nguyen, Pham Thi Anh Ngoc, Ai-Phuong Hoang, Duy Pham Thien Dang, Cong Hiep Pham, Robert J. McClelland, Omid Noroozi
2024 J jnl
Interact. Learn. Environ.
Anahuac Valero Haro, Omid Noroozi, Harm J. A. Biemans, Martin Mulder, Seyyed Kazem Banihashem
2024 J jnl
Behav. Inf. Technol.
Seyyed Kazem Banihashem, Hojjat Dehghanzadeh, Douglas Clark, Omid Noroozi, Harm J. A. Biemans
2024 J jnl
Educ. Inf. Technol.
Nafiseh Taghizadeh Kerman, Seyyed Kazem Banihashem, Morteza Karami, Erkan Er, Stan van Ginkel, Omid Noroozi
2024 J jnl
Interact. Learn. Environ.
Nafiseh Taghizadeh Kerman, Omid Noroozi, Seyyed Kazem Banihashem, Morteza Karami, Harm J. A. Biemans
2024 J jnl
Br. J. Educ. Technol.
Hojjat Dehghanzadeh, Mohammadreza Farrokhnia, Hossein Dehghanzadeh, Kiumars Taghipour, Omid Noroozi
2024 J jnl
J. Comput. Assist. Learn.
Jewoong Moon, Sheunghyun Yeo, Seyyed Kazem Banihashem, Omid Noroozi
2023 J jnl
Educ. Inf. Technol.
Omid Noroozi, Seyyed Kazem Banihashem, Harm J. A. Biemans, Mattijs Smits, Mariëtte T. W. Vervoort, Caro-Lynn Verbaan
2023 J jnl
Interact. Learn. Environ.
Omid Noroozi, Seyyed Kazem Banihashem, Nafiseh Taghizadeh Kerman, Marzieh Parvaneh Akhteh Khaneh, Maryam Babayi, Hadis Ashrafi, Harm J. A. Biemans
2023 J jnl
Interact. Learn. Environ.
Diana P. Zwart, Sui Lin Goei, Johannes E. H. Van Luit, Omid Noroozi
2023 J jnl
Educ. Inf. Technol.
Morteza Akbari, Mozhgan Danesh, Azadeh Rezvani, Nazanin Javadi, Seyyed Kazem Banihashem, Omid Noroozi
2023 J jnl
Interact. Learn. Environ.
Saeed Latifi, Omid Noroozi, Ebrahim Talaee
2022 J jnl
Res. Pract. Technol. Enhanc. Learn.
Mehdi Badali, Javad Hatami, Seyyed Kazem Banihashem, Ebrahim Rahimi, Omid Noroozi, Zahra Eslami
2021 J jnl
Br. J. Educ. Technol.
Saeed Latifi, Omid Noroozi, Ebrahim Talaee
2021 J jnl
Res. Pract. Technol. Enhanc. Learn.
Diana P. Zwart, Sui Lin Goei, Omid Noroozi, Johannes E. H. Van Luit
2021 J jnl
Comput. Educ.
Mahboobe Mehrvarz, Elham Heidari, Mohammadreza Farrokhnia, Omid Noroozi
2020 J jnl
Entertain. Comput.
Omid Noroozi, Hojjat Dehghanzadeh, Ebrahim Talaee
2020 J jnl
Multimodal Technol. Interact.
Ghodratolah Khalifeh, Omid Noroozi, Mohammadreza Farrokhnia, Ebrahim Talaee
2020 J jnl
Educ. Inf. Technol.
Omid Noroozi, Héctor J. Pijeira Díaz, Marta Sobocinski, Muhterem Dindar, Sanna Järvelä, Paul A. Kirschner
2020 J jnl
Interact. Learn. Environ.
Omid Noroozi, Javad Hatami, Arash Bayat, Stan van Ginkel, Harm J. A. Biemans, Martin Mulder
2019 J jnl
Comput. Educ.
Mohammadreza Farrokhnia, Héctor J. Pijeira Díaz, Omid Noroozi, Javad Hatami
2019 conf
CSCL
Omid Noroozi, Arash Bayat, Javad Hatami
2019 J jnl
Comput. Educ.
Stan van Ginkel, Judith T. M. Gulikers, Harm J. A. Biemans, Omid Noroozi, Mila Roozen, Tom Bos, Richard van Tilborg, Melanie van Halteren, Martin Mulder
2019 J jnl
Comput. Hum. Behav.
Omid Noroozi, Sanna Järvelä, Paul A. Kirschner
2019 J jnl
Comput. Hum. Behav.
Omid Noroozi, Iman Alikhani, Sanna Järvelä, Paul A. Kirschner, Ilkka Juuso, Tapio Seppänen
2019 J jnl
Comput. Hum. Behav.
Sjors Verstege, Héctor J. Pijeira Díaz, Omid Noroozi, Harm J. A. Biemans, Julia Diederen
2019 conf
CSCL
Saeed Latifi, Omid Noroozi, Javad Hatami, Harm J. A. Biemans
2017 conf
CSCL
Omid Noroozi, Javad Hatami, Martin Mulder, Harm J. A. Biemans
2016 J jnl
Internet High. Educ.
Omid Noroozi, Harm J. A. Biemans, Martin Mulder
2014 J jnl
Comput. Hum. Behav.
Vitaliy Popov, Omid Noroozi, Jennifer B. Barrett, Harm J. A. Biemans, Stephanie D. Teasley, Bert Slof, Martin Mulder
2014 conf
ICLS
Omid Noroozi, Paul A. Kirschner, Harm J. A. Biemans, Martin Mulder
2013 conf
CSCL (2)
Omid Noroozi
2013 J jnl
Comput. Educ.
Omid Noroozi, Armin Weinberger, Harm J. A. Biemans, Martin Mulder, Mohammad Chizari
2013 J jnl
Int. J. Comput. Support. Collab. Learn.
Omid Noroozi, Stephanie D. Teasley, Harm J. A. Biemans, Armin Weinberger, Martin Mulder
2012 B conf
EC-TEL
Vitaliy Popov, Omid Noroozi, Harm J. A. Biemans, Martin Mulder
2012 B conf
EC-TEL
Omid Noroozi, Armin Weinberger, Harm J. A. Biemans, Stephanie D. Teasley, Martin Mulder
2011 J jnl
Comput. Hum. Behav.
Omid Noroozi, Harm J. A. Biemans, Maria C. Busstra, Martin Mulder, Mohammad Chizari
redb/extractors/apk_extractors/apk_native_libs.py
← Index redb/extractors/apk_extractors/apk_native_libs.py python
import fnmatch
import hashlib
import inspect
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 APKNativeLib

# Known packer/protector native library names
KNOWN_PACKER_LIBS = {
    # Jiagu (360/Qihoo)
    "libjiagu.so", "libjiagu_a64.so", "libjiagu_x86.so", "libjiagu_x64.so",
    # Bangcle/SecNeo
    "libsecexe.so", "libsecmain.so", "libSecShell.so",
    # Baidu
    "libbaiduprotect.so",
    # Tencent (Legu)
    "libtxAppProtect.so", "libBugly.so",
    # iJiami
    "libexec.so", "libexecmain.so",
    # Alibaba
    "libmobisec.so", "libaliprotect.so",
    # APKProtect
    "libAPKProtect.so",
    # Pangxie (Pangolin)
    "libdexjni.so",
    # DexProtector
    "libdexprotector.so",
    # AppSolid
    "libAppSolid.so",
    # Kiwisec
    "libkwscmm.so",
    # DingXiang
    "libx3g.so",
    # NQ Shield
    "libnqshield.so",
    # Generic / other
    "libprotectClass.so",
    "libDexHelper.so",
    "libdexloader.so",
    "libfdog.so",
}

# Glob-style patterns for packer libs (e.g. libshella-*.so)
KNOWN_PACKER_PATTERNS = [
    "libshella-*.so",
    "libshell-super.*.so",
]


def is_known_packer_lib(filename):
    """Check if a native library filename matches known packer signatures."""
    if filename in KNOWN_PACKER_LIBS:
        return True
    for pattern in KNOWN_PACKER_PATTERNS:
        if fnmatch.fnmatch(filename, pattern):
            return True
    return False


class APKNativeLibExtractor(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.native_libs = []
        self.abis = set()
        self.log.debug(inspect.currentframe().f_code.co_name)

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

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

        self.native_libs = []
        self.abis = set()

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

        with zf:
            for info in zf.infolist():
                if not (info.filename.startswith("lib/") and info.filename.endswith(".so")):
                    continue
                parts = info.filename.split("/")
                if len(parts) < 3:
                    continue

                abi = parts[1]
                filename = parts[-1]
                self.abis.add(abi)

                try:
                    data = zf.read(info.filename)
                    lib_sha256 = hashlib.sha256(data).hexdigest()
                except Exception as e:
                    self.log.warning(f"Error reading native lib {info.filename}: {e}")
                    continue

                self.native_libs.append(APKNativeLib(
                    abi=abi,
                    filename=filename,
                    size=info.file_size,
                    sha256=lib_sha256,
                    is_known_packer=is_known_packer_lib(filename),
                ))

        if not self.native_libs:
            return None

        return {
            "native_lib_count": len(self.native_libs),
            "abis": sorted(self.abis),
            "native_libs": self.native_libs,
            "known_packer_libs": [
                lib for lib in self.native_libs if lib.is_known_packer
            ],
        }

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

            current_time = datetime.now(timezone.utc)
            data = []
            for lib in self.native_libs:
                data.append([
                    self.sha256,
                    lib.abi,
                    lib.filename,
                    lib.size,
                    lib.sha256,
                    int(lib.is_known_packer),
                    current_time,
                ])

            column_names = [
                'sha256', 'lib_abi', 'lib_filename', 'lib_size',
                'lib_sha256', 'lib_is_known_packer', 'analysis_date',
            ]

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

            return (data, column_names, column_type_names)

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