Ilia Nouretdinov

89 papers A* 5B 4C 5Misc 9Journal 25Unranked 39
YearRankTypeTitle / Venue / Authors
2026 conf
The Importance of Being Learnable
Ilia Nouretdinov
2025 J jnl
Pattern Recognit.
Vladimir Vovk, Ilia Nouretdinov, Alex Gammerman
2025 conf
COPA
Songlin Du, Ling Luo, Ilia Nouretdinov, Uwe Aickelin
2025 conf
COPA
Vladimir Vovk, Ilia Nouretdinov, Alexander Gammerman
2025 conf
COPA
Ilia Nouretdinov
2024 conf
COPA
Ilia Nouretdinov, James Gammerman
2024 J jnl
CoRR
Vladimir Vovk, Ilia Nouretdinov, Alex Gammerman
2023 conf
COPA
Ilia Nouretdinov, James Gammerman
2023 conf
COPA
Ilia Nouretdinov, Alex Gammerman
2022 conf
COPA
Vladimir Vovk, Ilia Nouretdinov, Alex Gammerman
2022 conf
COPA
Ilia Nouretdinov
2022 conf
COPA
Ilia Nouretdinov, James Gammerman
2021 conf
COPA
Ilia Nouretdinov, Vladimir Vovk, Alex Gammerman
2021 J jnl
CoRR
Vladimir Vovk, Ilia Nouretdinov, Alex Gammerman
2021 J jnl
CoRR
Vladimir Vovk, Ivan Petej, Ilia Nouretdinov, Ernst Ahlberg, Lars Carlsson, Alex Gammerman
2021 conf
COPA
Vladimir Vovk, Ivan Petej, Ilia Nouretdinov, Ernst Ahlberg, Lars Carlsson, Alex Gammerman
2020 J jnl
Neurocomputing
Vladimir Vovk, Ivan Petej, Ilia Nouretdinov, Valery Manokhin, Alexander Gammerman
2020 conf
COPA
Ilia Nouretdinov, Alexander Balinsky, Alexander Gammerman
2020 J jnl
Neurocomputing
Ilia Nouretdinov, James Gammerman, Matteo Fontana, Daljit Rehal
2019 J jnl
CoRR
Vladimir Vovk, Ivan Petej, Ilia Nouretdinov, Valery Manokhin, Alex Gammerman
2019 ch.
Security and Privacy Trends in the Industrial Internet of Thing
Salaheddin Darwish, Ilia Nouretdinov, Stephen D. Wolthusen
2019 J jnl
CoRR
Ilia Nouretdinov, James Gammerman, Matteo Fontana, Daljit Rehal
2018 C conf
ICOST
Salaheddin Darwish, Ilia Nouretdinov, Stephen D. Wolthusen
2018 conf
COPA
Vladimir Vovk, Ilia Nouretdinov, Valery Manokhin, Alexander Gammerman
2018 C conf
ICOST
Ilia Nouretdinov, Salaheddin Darwish, Stephen D. Wolthusen
2018 conf
COPA
Ilia Nouretdinov, Denis Volkhonskiy, Pitt Lim, Paolo Toccaceli, Alexander Gammerman
2017 conf
Braverman Readings in Machine Learning
Vladimir Vovk, Ilia Nouretdinov, Valery Manokhin, Alex Gammerman
2017 J jnl
Ann. Math. Artif. Intell.
Paolo Toccaceli, Ilia Nouretdinov, Alexander Gammerman
2017 J jnl
CoRR
Vladimir Vovk, Ilia Nouretdinov, Valery Manokhin, Alex Gammerman
2017 J jnl
Ann. Math. Artif. Intell.
Vladimir Vovk, Ilia Nouretdinov, Valentina Fedorova, Ivan Petej, Alex Gammerman
2017 conf
COPA
Ilia Nouretdinov
2017 conf
COPA
Denis Volkhonskiy, Evgeny Burnaev, Ilia Nouretdinov, Alexander Gammerman, Vladimir Vovk
2017 conf
COPA
Ilia Nouretdinov
2017 conf
EUSPN/ICTH
Salaheddin Darwish, Ilia Nouretdinov, Stephen D. Wolthusen
2017 A* conf
USENIX Security Symposium
Roberto Jordaney, Kumar Sharad, Santanu Kumar Dash, Zhi Wang, Davide Papini, Ilia Nouretdinov, Lorenzo Cavallaro
2016 conf
COPA
Paolo Toccaceli, Ilia Nouretdinov, Alexander Gammerman
2016 J jnl
CoRR
Paolo Toccaceli, Ilia Nouretdinov, Alexander Gammerman
2016 conf
COPA
Vladimir Vovk, Valentina Fedorova, Ilia Nouretdinov, Alexander Gammerman
2016 J jnl
CoRR
Vladimir Vovk, Valentina Fedorova, Ilia Nouretdinov, Alex Gammerman
2016 C conf
ICMLA
Ilia Nouretdinov
2016 conf
COPA
Giovanni Cherubin, Ilia Nouretdinov
2015 conf
SLDS
Hua-zhen Wang, Xin Liu, Ilia Nouretdinov, Zhiyuan Luo
2015 conf
SLDS
James Smith, Ilia Nouretdinov, Rachel Craddock, Charles Offer, Alexander Gammerman
2015 conf
SLDS
Giovanni Cherubin, Ilia Nouretdinov, Alexander Gammerman, Roberto Jordaney, Zhi Wang, Davide Papini, Lorenzo Cavallaro
2015 J jnl
Int. J. Artif. Intell. Tools
Valentina Fedorova, Alex Gammerman, Ilia Nouretdinov, Vladimir Vovk
2015 J jnl
Ann. Math. Artif. Intell.
Antonis Lambrou, Ilia Nouretdinov, Harris Papadopoulos
2015 J jnl
Ann. Math. Artif. Intell.
Ilia Nouretdinov, Dmitry Devetyarov, Volodya Vovk, Brian Burford, Stephane Camuzeaux, Aleksandra Gentry-Maharaj, Ali Tiss, Celia J. Smith, Zhiyuan Luo, Alexey Ya. Chervonenkis, Rachel Hallett, Mike Waterfield, Rainer Cramer, John F. Timms, Ian Jacobs, Usha Menon, Alex Gammerman
2014 conf
AIAI (Workshops)
James Smith, Ilia Nouretdinov, Rachel Craddock, Charles Offer, Alexander Gammerman
2014 conf
AIAI (Workshops)
Ilia Nouretdinov
2014 conf
AIAI (Workshops)
Chenzhe Zhou, Ilia Nouretdinov, Zhiyuan Luo, Alex Gammerman
2013 conf
ICCSW
Valentina Fedorova, Alex Gammerman, Ilia Nouretdinov, Vladimir Vovk
2013 Misc conf
AIAI
Valentina Fedorova, Alex Gammerman, Ilia Nouretdinov, Vladimir Vovk
2013 Misc conf
AIAI
Ilia Nouretdinov, Alexander Lebedev
2013 Misc conf
AIAI
Meng Yang, Ilia Nouretdinov, Zhiyuan Luo
2012 J jnl
Prog. Artif. Intell.
Dmitry Devetyarov, Ilia Nouretdinov, Brian Burford, Stephane Camuzeaux, Aleksandra Gentry-Maharaj, Ali Tiss, Celia J. Smith, Zhiyuan Luo, Alexey Ya. Chervonenkis, Rachel Hallett, Volodya Vovk, Mike Waterfield, Rainer Cramer, John Timms, John Sinclair, Usha Menon, Ian Jacobs, Alex Gammerman
2012 Misc conf
Pacific Symposium on Biocomputing
Ilia Nouretdinov, Alex Gammerman, Yanjun Qi, Judith Klein-Seetharaman
2012 conf
AIAI (2)
Ilia Nouretdinov, Dmitry Devetyarov, Brian Burford, Stephane Camuzeaux, Aleksandra Gentry-Maharaj, Ali Tiss, Celia J. Smith, Zhiyuan Luo, Alexey Ya. Chervonenkis, Rachel Hallett, Volodya Vovk, Mike Waterfield, Rainer Cramer, John Timms, Ian Jacobs, Usha Menon, Alexander Gammerman
2012 J jnl
CoRR
Valentina Fedorova, Alex Gammerman, Ilia Nouretdinov, Vladimir Vovk
2012 A* conf
ICML
Valentina Fedorova, Alex Gammerman, Ilia Nouretdinov, Volodya Vovk
2012 conf
AIAI (2)
Antonis Lambrou, Harris Papadopoulos, Ilia Nouretdinov, Alexander Gammerman
2012 J jnl
Prog. Artif. Intell.
Valentina Fedorova, Ilia Nouretdinov, Alex Gammerman
2012 J jnl
Prog. Artif. Intell.
Olga Ivina, Ilia Nouretdinov, Alex Gammerman
2011 Misc conf
AIAI
Chenzhe Zhou, Ilia Nouretdinov, Zhiyuan Luo, Dmitry Adamskiy, Luke Randell, Nicholas Coldham, Alex Gammerman
2011 Misc conf
AIAI
Dmitry Adamskiy, Ilia Nouretdinov, Andy Mitchell, Nick Coldham, Alex Gammerman
2011 Misc conf
AIAI
Meng Yang, Ilia Nouretdinov, Zhiyuan Luo, Alex Gammerman
2011 J jnl
NeuroImage
Ilia Nouretdinov, Sergi G. Costafreda, Alexander Gammerman, Alexey Ya. Chervonenkis, Vladimir Vovk, Vladimir Vapnik, Cynthia H. Y. Fu
2010 Misc conf
AIAI
Ilia Nouretdinov, Guang Li, Alexander Gammerman, Zhiyuan Luo
2010 Misc conf
AIAI
Dmitry Devetyarov, Ilia Nouretdinov
2009 C conf
ICMLA
Ilia Nouretdinov, Brian Burford, Alex Gammerman
2009 C conf
ICMLA
Peter McCullagh, Vladimir Vovk, Ilia Nouretdinov, Dmitry Devetyarov, Alex Gammerman
2009 conf
BIOCOMP
Dmitry Devetyarov, Ilia Nouretdinov, Alex Gammerman
2009 B conf
AIME
Fedor Zhdanov, Vladimir Vovk, Brian Burford, Dmitry Devetyarov, Ilia Nouretdinov, Alex Gammerman
2009 J jnl
CoRR
Fedor Zhdanov, Vladimir Vovk, Brian Burford, Dmitry Devetyarov, Ilia Nouretdinov, Alex Gammerman
2009 J jnl
Comput. J.
Alex Gammerman, Volodya Vovk, Brian Burford, Ilia Nouretdinov, Zhiyuan Luo, Alexey Ya. Chervonenkis, Mike Waterfield, Rainer Cramer, Paul Tempst, Josep Villanueva, Musarat Kabir, Stephane Camuzeaux, John Timms, Usha Menon, Ian Jacobs
2008 conf
ICDM (Posters and Workshops)
Ilia Nouretdinov
2007 A* conf
ICDM
Ilia Nouretdinov
2006 J jnl
Theor. Comput. Sci.
Ilia Nouretdinov, Vladimir Vovk
2005 B conf
ALT
Vladimir Vovk, Ilia Nouretdinov, Akimichi Takemura, Glenn Shafer
2005 J jnl
CoRR
Vladimir Vovk, Ilia Nouretdinov, Akimichi Takemura, Glenn Shafer
2003
Ilia Nouretdinov
2003 B conf
ALT
Ilia Nouretdinov, Vladimir Vovk
2003 conf
NIPS
Vladimir Vovk, Glenn Shafer, Ilia Nouretdinov
2003 A* conf
ICML
Vladimir Vovk, Ilia Nouretdinov, Alex Gammerman
2003 B conf
ALT
Ilia Nouretdinov, Vladimir V. V'yugin, Alex Gammerman
2002 conf
ECML
Kostas Proedrou, Ilia Nouretdinov, Volodya Vovk, Alex Gammerman
2002 conf
AI&M
Kostas Proedrou, Ilia Nouretdinov, Volodya Vovk, Alex Gammerman
2001 conf
ECML
Thomas Melluish, Craig Saunders, Ilia Nouretdinov, Volodya Vovk
2001 conf
COLT/EuroCOLT
Ilia Nouretdinov, Volodya Vovk, Michael V. Vyugin, Alex Gammerman
2001 A* conf
ICML
Ilia Nouretdinov, Thomas Melluish, Volodya Vovk
tests/unit/conftest.py
← Index tests/unit/conftest.py python
"""
Unit test configuration.

Replaces the redb.extractors package with a minimal stub so that
``from redb.extractors.database_exporters import ...`` works without
pulling in the heavy __init__.py import chain (pefile, elftools,
signify, magic, etc.).

Also stubs out redb.settings so that Elasticsearch / ClickHouse
clients are never actually created during unit tests.

Additionally installs binaryninja stubs for decompiler unit tests.

Stubs heavy third-party packages (pefile, magic, psutil, etc.) so that
redb.workers, redb.queries, redb.ingestor, and redb.s3_utils can all
be imported and patched in unit tests without requiring the real packages.
"""
import sys
import types
from pathlib import Path
from unittest.mock import MagicMock

# ---------------------------------------------------------------------------
# 0. Install binaryninja stubs FIRST — must happen before any decompiler
#    module is imported (triggered by __init__.py chain).
# ---------------------------------------------------------------------------
from tests.unit.conftest_binja_stubs import install_binja_stubs as _install_binja_stubs
_install_binja_stubs()

# ---------------------------------------------------------------------------
# 1. Stub external packages required by database_exporters.py itself,
#    the decompiler chain, and the workers/ingestor modules.
# ---------------------------------------------------------------------------
_heavy_deps = [
    # Database / networking
    "elasticsearch", "clickhouse_connect", "dotenv",
    # Binary analysis — top-level packages
    "pefile", "magic", "machofile",
    # Archive handling
    "py7zr", "pyzipper",
    # File type detection
    "magika",
    # System monitoring
    "psutil",
    # S3 / MinIO (submodule paths needed for `from minio.error import S3Error`)
    "minio", "minio.error",
    # YARA
    "yara_x",
    # Binary parsing — elftools tree
    "elftools", "elftools.elf", "elftools.elf.elffile",
    "elftools.common", "elftools.common.exceptions",
    # Code signing — signify tree
    "signify", "signify.fingerprinter", "signify.authenticode",
    # LIEF
    "lief",
    # Fuzzy hashing
    "ppdeep",
    # .NET analysis
    "dotnetfile",
    # Crypto / ASN.1
    "asn1crypto", "asn1crypto.cms", "asn1crypto.pem", "asn1crypto.x509", "asn1crypto.core",
    # Hashing
    "xxhash", "blake3", "mmh3", "numpy",
    # APK analysis
    "androguard", "androguard.core", "androguard.core.apk",
    "androguard.core.dex", "androguard.core.api_specific_resources",
    "androguard.misc",
    "permhash",
]
for _mod in _heavy_deps:
    if _mod not in sys.modules:
        try:
            __import__(_mod)
        except (ImportError, ModuleNotFoundError):
            sys.modules[_mod] = MagicMock()

# Stub urllib3 with a real Warning subclass (warnings.filterwarnings needs a class)
if "urllib3" not in sys.modules or isinstance(sys.modules.get("urllib3"), MagicMock):
    try:
        import urllib3  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _urllib3_mod = types.ModuleType("urllib3")
        _urllib3_exc = types.ModuleType("urllib3.exceptions")

        class _InsecureRequestWarning(UserWarning):
            pass

        _urllib3_exc.InsecureRequestWarning = _InsecureRequestWarning
        _urllib3_mod.exceptions = _urllib3_exc
        sys.modules["urllib3"] = _urllib3_mod
        sys.modules["urllib3.exceptions"] = _urllib3_exc

# Provide a functional ppdeep stub (tests call ppdeep.hash() and expect a string).
# Must overwrite the MagicMock that the loop above may have installed.
_ppdeep_existing = sys.modules.get("ppdeep")
if _ppdeep_existing is None or isinstance(_ppdeep_existing, MagicMock):
    _ppdeep_mod = types.ModuleType("ppdeep")
    _ppdeep_mod.__name__ = "ppdeep"

    def _ppdeep_hash(data):
        """Fake ssdeep hash — returns a deterministic placeholder."""
        if isinstance(data, str):
            data = data.encode("utf-8")
        if len(data) < 50:
            return None
        import hashlib
        h = hashlib.md5(data).hexdigest()
        return f"3:{h[:16]}:{h[16:]}"

    _ppdeep_mod.hash = _ppdeep_hash
    sys.modules["ppdeep"] = _ppdeep_mod

# Stub mmh3 if the C extension is not available
_mmh3_existing = sys.modules.get("mmh3")
if _mmh3_existing is None or isinstance(_mmh3_existing, MagicMock):
    _mmh3_mod = types.ModuleType("mmh3")
    _mmh3_mod.__name__ = "mmh3"

    def _mmh3_hash(data, seed=0):
        """Fake MurmurHash3 — deterministic hash using built-in hashlib."""
        import hashlib
        if isinstance(data, str):
            data = data.encode("utf-8")
        seed_bytes = (seed & 0xFFFFFFFF).to_bytes(8, "little")
        h = hashlib.md5(data + seed_bytes).digest()
        return int.from_bytes(h[:4], "little", signed=True)

    _mmh3_mod.hash = _mmh3_hash
    sys.modules["mmh3"] = _mmh3_mod

# Stub tlsh if the C extension is not available
if "tlsh" not in sys.modules:
    try:
        import tlsh as _real_tlsh  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _tlsh_mock = types.ModuleType("tlsh")
        _tlsh_mock.__name__ = "tlsh"

        def _tlsh_hash(data):
            """Fake TLSH hash — returns a deterministic placeholder.

            Returns empty string for data < 50 bytes or data with very
            low entropy (e.g. repeating patterns), mimicking the real
            TLSH library's "TNULL" behaviour.
            """
            if isinstance(data, str):
                data = data.encode("utf-8")
            if len(data) < 50:
                return ""
            # Real TLSH returns "" for low-entropy input
            if len(set(data)) < 8:
                return ""
            import hashlib
            return "T1" + hashlib.sha256(data).hexdigest()[:70].upper()

        _tlsh_mock.hash = _tlsh_hash
        sys.modules["tlsh"] = _tlsh_mock

# ---------------------------------------------------------------------------
# 2. Stub redb.settings (package) so module-level code never runs
# ---------------------------------------------------------------------------
_settings_mock = MagicMock()
_settings_mock.__name__ = "redb.settings"
sys.modules["redb.settings"] = _settings_mock
sys.modules["redb.settings.elasticsearch"] = MagicMock()
sys.modules["redb.settings.clickhouse"] = MagicMock()

# ---------------------------------------------------------------------------
# 3. Replace redb.extractors with a minimal package that does NOT eagerly
#    import every extractor (and their heavy deps).  Sub-module imports
#    like ``from redb.extractors.database_exporters import ...`` still work
#    because __path__ points to the real package directory.
# ---------------------------------------------------------------------------
_repo_root = Path(__file__).resolve().parents[2]
_extractors_pkg = types.ModuleType("redb.extractors")
_extractors_pkg.__path__ = [str(_repo_root / "redb" / "extractors")]
_extractors_pkg.__package__ = "redb.extractors"
sys.modules["redb.extractors"] = _extractors_pkg

# ---------------------------------------------------------------------------
# 4. Force-import redb submodules so that @patch('redb.workers.xxx'),
#    @patch('redb.queries.xxx'), etc. can resolve at decoration time.
#    This works because all heavy deps are already stubbed above.
# ---------------------------------------------------------------------------
import redb.logging_utils   # noqa: F401, E402
import redb.s3_utils         # noqa: F401, E402
import redb.queries          # noqa: F401, E402
import redb.workers          # noqa: F401, E402
import redb.ingestor         # noqa: F401, E402