Onur Osman

37 papers C 2Journal 31Unranked 4
YearRankTypeTitle / Venue / Authors
2026 J jnl
Algorithms
Onur Osman, Tolga Kudret Karaca, Bahar Yalcin Kavus, Gökalp Tulum, Sajjad Nematzadeh
2026 J jnl
Discov. Artif. Intell.
Bestami Özkaya, Faruk Dikmen, Ahmet Demir, Muhammad Owais Raza, Shtwai Alsubai, Onur Osman, Jawad Rasheed
2025 J jnl
IEEE Access
Onur Osman, Tolga Kudret Karaca, Bahar Yalcin Kavus, Gökalp Tulum
2025 J jnl
Frontiers Commun. Networks
Usman Mistura Mohammed, Abiodun Esther Omolara, Oludare Isaac Abiodun, Jawad Rasheed, Onur Osman, Patricia Manko Lar, Philip Oyadiran Adeyinka, Adeola Grace Olugbenga
2025 J jnl
Discov. Comput.
Vedula Sitharamulu, G. Sucharitha, Srihari Babu Gole, Hanumantha Rao Battu, Onur Osman, Jawad Rasheed
2025 J jnl
Frontiers Comput. Neurosci.
Awad Bin Naeem, Onur Osman, Shtwai Alsubai, Nazife Çevik, Abdelhamid Zaïdi, Amir Seyyedabbasi, Jawad Rasheed
2023 J jnl
IEEE Access
Taner Çevik, Nazife Cevik, Jawad Rasheed, Adnan M. Abu-Mahfouz, Onur Osman
2022 J jnl
Multidimens. Syst. Signal Process.
Kübra Eroglu, Onur Osman, Temel Kayikçioglu, Pinar Kurt
2022 J jnl
J. King Saud Univ. Comput. Inf. Sci.
Nazife Cevik, Taner Çevik, Onur Osman, Ahmet Gürhanli, Sajjad Nematzadeh, Fatih Sahin
2020 J jnl
J. Medical Syst.
Gökalp Tulum, Uygar Teomete, Ferhat Cuce, Tuncer Ergin, Murathan Köksal, Ozgür Dandin, Onur Osman
2018 J jnl
Biomed. Signal Process. Control.
N. Tugrul Artug, Imran Goker, Bülent Bolat, Onur Osman, Elif Kocasoy Orhan, Mehmet Baris Baslo
2017 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Gökalp Tulum, Bülent Bolat, Onur Osman
2017 conf
TSP
Kübra Eroglu, Pinar Kurt, Temel Kayikçioglu, Onur Osman
2017 conf
SIU
Kübra Eroglu, Pinar Kurt, Onur Osman, Temel Kayikçioglu
2017 J jnl
Int. J. Commun. Syst.
Onur Osman
2016 conf
SIU
Ali Muhittin Albora, Onur Osman
2016 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Ozgür Dandin, Uygar Teomete, Onur Osman, Gökalp Tulum, Tuncer Ergin, Mehmet Zafer Sabuncuoglu
2016 J jnl
Comput. Biol. Medicine
Yuwei Zhou, Uygar Teomete, Ozgür Dandin, Onur Osman, Taner Dandinoglu, Ulas Bagci, Weizhao Zhao
2016 conf
SIU
Kübra Eroglu, Pinar Kurt, Temel Kayikçioglu, Onur Osman
2016 J jnl
Comput. Methods Programs Biomed.
N. Tugrul Artug, Imran Goker, Bülent Bolat, Onur Osman, Elif Kocasoy Orhan, Mehmet Baris Baslo
2015 C conf
INISTA
N. Tugrul Artug, Imran Goker, Bülent Bolat, Mehmet Baris Baslo, Onur Osman
2014 J jnl
Comput. Methods Programs Biomed.
Haydar Özkan, Onur Osman, Sinan Sahin, Ali Fuat Boz
2014 C conf
INISTA
N. Tugrul Artug, Imran Goker, Bülent Bolat, Gökalp Tulum, Onur Osman, Mehmet Baris Baslo
2012 J jnl
J. Medical Syst.
Imran Goker, Onur Osman, Serhat Ozekes, Mehmet Baris Baslo, Mustafa Ertas, Yekta Ülgen
2010 J jnl
J. Medical Syst.
Serhat Ozekes, Onur Osman
2009 J jnl
Expert Syst. J. Knowl. Eng.
Niyazi Kilic, Osman N. Uçan, Onur Osman
2009 J jnl
J. Medical Syst.
Niyazi Kilic, Osman N. Uçan, Onur Osman
2008 J jnl
Comput. Biol. Medicine
Gökhan Ertas, Halil Özcan Gülçür, Onur Osman, Osman N. Uçan, Mehtap Tunaci, Memduh Dursun
2008 J jnl
EURASIP J. Wirel. Commun. Netw.
Oguz Bayat, Niyazi Odabasioglu, Onur Osman, Osman N. Uçan, Masoud Salehi, Bahram Shafai
2008 J jnl
Int. J. Commun. Syst.
Oguz Bayat, Bahram Shafai, Masoud Salehi, Osman N. Uçan, Onur Osman
2007 J jnl
Int. J. Commun. Syst.
Onur Osman
2007 J jnl
Comput. Biol. Medicine
Onur Osman, Serhat Ozekes, Osman N. Uçan
2007 J jnl
IET Commun.
Onur Osman
2006 J jnl
Int. J. Commun. Syst.
Osman N. Uçan, Kenan Büyükatak, Ersin Gose, Onur Osman, Niyazi Odabasioglu
2005 J jnl
IEEE Trans. Wirel. Commun.
Onur Osman, Osman N. Uçan
2004 J jnl
Eur. Trans. Telecommun.
Osman N. Uçan, Onur Osman
2004 J jnl
Int. J. Commun. Syst.
Osman N. Uçan, Onur Osman
redb/extractor_registry.py
← Index redb/extractor_registry.py python
"""
Extractor registry with lazy loading by file type.

Groups extractors by file type (pe, elf, macho, apk) and only imports
the relevant group when that file type is first encountered. This avoids
loading heavy dependencies (pefile, lief, androguard, etc.) into workers
that don't need them.
"""
import importlib
import logging

logger = logging.getLogger(__name__)

# Registry: group name -> list of (module_path, class_names)
_REGISTRY = {
    "pe": [
        ("redb.extractors.pe_extractors", [
            "PEFeaturesExtractor",
            "PEImportExtractor",
            "PEResourceExtractor",
            "PEOverlayExtractor",
            "PESectionExtractor",
            "PESignatureExtractor",
            "PEExtraFindings",
            "PEInconstistencyTestsExtractor",
            "PEDotNetExtractor",
        ]),
    ],
    "elf": [
        ("redb.extractors.elf_extractors", [
            "ELFFeaturesExtractor",
            "ELFSegmentExtractor",
            "ELFSectionExtractor",
            "ELFDependencyExtractor",
            "ELFSymbolExtractor",
            "ELFImportExtractor",
            "ELFExportExtractor",
            "ELFRelocationExtractor",
            "ELFNotesExtractor",
        ]),
    ],
    "macho": [
        ("redb.extractors.macho_extractors", [
            "MachOFeaturesExtractor",
            "MachOSegmentExtractor",
            "MachOImportExtractor",
            "MachOExportExtractor",
            "MachODylibExtractor",
            "MachOSignatureExtractor",
        ]),
    ],
    "apk": [
        ("redb.extractors.apk_extractors", [
            "APKFeaturesExtractor",
            "APKManifestExtractor",
            "APKPermissionsExtractor",
            "APKSignatureExtractor",
            "APKDexExtractor",
            "APKResourceExtractor",
            "APKNativeLibExtractor",
            "APKInconsistencyTestsExtractor",
        ]),
        ("redb.extractors.decompiler.DecompileAPK", [
            "DecompileAPK",
        ]),
    ],
    "js": [
        ("redb.extractors.js_extractors", [
            "JSFeaturesExtractor",
            "JSSuspiciousAPIsExtractor",
            "JSStringsExtractor",
            "JSDeobfuscationExtractor",
            "JSContentExtractor",
        ]),
    ],
}

# Map filetype labels (from Magika) to registry group names
FILETYPE_TO_GROUP = {
    "pebin": "pe",
    "elf": "elf",
    "macho": "macho",
    "apk": "apk",
    "javascript": "js",
}

# Cache: group name -> {class_name: class}
_group_cache = {}


def _load_group(group_name):
    """Import all extractors for a group. Cached after first call."""
    if group_name in _group_cache:
        return _group_cache[group_name]

    logger.debug(f"Loading extractor group: {group_name}")

    # Suppress androguard logging before importing APK extractors
    if group_name == "apk":
        from loguru import logger as loguru_logger
        loguru_logger.disable("androguard")

    classes = {}
    for module_path, class_names in _REGISTRY[group_name]:
        mod = importlib.import_module(module_path)
        for name in class_names:
            classes[name] = getattr(mod, name)

    _group_cache[group_name] = classes
    return classes


def get_filetype_modules(filetype):
    """Get the list of format-specific extractor classes for a filetype.

    Returns only analysis extractors (excludes decompilers like DecompileAPK).
    """
    group = FILETYPE_TO_GROUP.get(filetype)
    if not group:
        return []
    classes = _load_group(group)
    return [cls for name, cls in classes.items() if not name.startswith("Decompile")]


def get_extractor_class(name):
    """Look up a single extractor class by name across all groups.

    Checks cached groups first, then loads groups on demand.
    """
    # Check already-loaded groups first
    for group_classes in _group_cache.values():
        if name in group_classes:
            return group_classes[name]

    # Search all groups (triggers lazy loading)
    for group_name in _REGISTRY:
        classes = _load_group(group_name)
        if name in classes:
            return classes[name]

    return None