Ilya B. Muchnik

42 papers A 3B 7C 3Journal 14Unranked 15
YearRankTypeTitle / Venue / Authors
2012 B conf
SEA
Rodrigo F. Toso, Casimir A. Kulikowski, Ilya B. Muchnik
2010 conf
PRIB
Valentina Sulimova, Nikolay Razin, Vadim Mottl, Ilya B. Muchnik, Casimir A. Kulikowski
2009 conf
ISBRA
Valentina Sulimova, Vadim Mottl, Boris G. Mirkin, Ilya B. Muchnik, Casimir A. Kulikowski
2009 C conf
ICMLA
Alexey Nefedov, Jiankuan Ye, Casimir A. Kulikowski, Ilya B. Muchnik, Kenton Morgan
2008 conf
ISVC (1)
Thang V. Le, Casimir A. Kulikowski, Ilya B. Muchnik
2008 B conf
ICPR
Thang V. Le, Casimir A. Kulikowski, Ilya B. Muchnik
2008 J jnl
Discret. Appl. Math.
Yulia Kempner, Ilya B. Muchnik
2007 J jnl
Int. J. Comput. Math.
Zhipeng Zhao, Akshay Vashist, Ahmed M. Elgammal, Ilya B. Muchnik, Casimir A. Kulikowski
2007 J jnl
IEEE ACM Trans. Comput. Biol. Bioinform.
Akshay Vashist, Casimir A. Kulikowski, Ilya B. Muchnik
2006 conf
CVPR Workshops
Akshay Vashist, Zhipeng Zhao, Ahmed M. Elgammal, Ilya B. Muchnik, Casimir A. Kulikowski
2006 B conf
RECOMB
Akshay Vashist, Casimir A. Kulikowski, Ilya B. Muchnik
2005 conf
AMFG
Rong Zhang, Akshay Vashist, Ilya B. Muchnik, Casimir A. Kulikowski, Dimitris N. Metaxas
2005 J jnl
RAIRO Theor. Informatics Appl.
Alair Pereira do Lago, Ilya B. Muchnik, Casimir A. Kulikowski
2005 conf
CSB Workshops
Akshay Vashist, Casimir A. Kulikowski, Ilya B. Muchnik
2005 C conf
WABI
Akshay Vashist, Casimir A. Kulikowski, Ilya B. Muchnik
2005 conf
MLDM
Vadim Mottl, Olga Krasotkina, Oleg Seredin, Ilya B. Muchnik
2005 C conf
CIBCB
Jiankuan Ye, Casimir A. Kulikowski, Ilya B. Muchnik
2005 conf
RSFDGrC (2)
Akshay Vashist, Casimir A. Kulikowski, Ilya B. Muchnik
2004 B conf
ICTAI
Sundara Venkataraman, Dimitris N. Metaxas, Dmitriy Fradkin, Casimir A. Kulikowski, Ilya B. Muchnik
2004 conf
Discrete Methods in Epidemiology
James Abello, Graham Cormode, Dmitriy Fradkin, David Madigan, Ofer Melnik, Ilya B. Muchnik
2004 conf
Discrete Methods in Epidemiology
Dmitriy Fradkin, Ilya B. Muchnik, Patrick Hermans, Kenton Morgan
2003 conf
WOB
Alair Pereira do Lago, Ilya B. Muchnik, Casimir A. Kulikowski
2002 conf
ICPR (2)
Vadim Mottl, Oleg Seredin, Sergey D. Dvoenko, Casimir A. Kulikowski, Ilya B. Muchnik
2002 J jnl
Appl. Math. Lett.
Boris G. Mirkin, Ilya B. Muchnik
2002 J jnl
Appl. Math. Lett.
Boris G. Mirkin, Ilya B. Muchnik
2002 J jnl
J. Intell. Fuzzy Syst.
Alexander Genkin, Casimir A. Kulikowski, Ilya B. Muchnik
2001 conf
MLDM
Vadim Mottl, Sergey D. Dvoenko, Oleg Seredin, Casimir A. Kulikowski, Ilya B. Muchnik
2001 conf
MedInfo
Casimir A. Kulikowski, Ilya B. Muchnik, HwaSeob J. Yun, Aynur A. Dayanik, Deyou Zhang, Yueyue Song, Gaetano T. Montelione
2000 J jnl
IEEE Trans. Knowl. Data Eng.
Endre Boros, Peter L. Hammer, Toshihide Ibaraki, Alexander Kogan, Eddy Mayoraz, Ilya B. Muchnik
2000 B conf
ICPR
Vadim Mottl, Sergey D. Dvoenko, Vladimir Levyant, Ilya B. Muchnik
1999 A conf
ISMB
Poe Xing, Casimir A. Kulikowski, Ilya B. Muchnik, Inna Dubchak, Denise M. Wolf, Sylvia Spengler, Manfred Zorn
1999 J jnl
Ann. Oper. Res.
Alexander B. Hammer, Peter L. Hammer, Ilya B. Muchnik
1998 B conf
ICPR
Vadim Mottl, Alexander Blinov, Andrey Kopylov, Alexey Kostin, Ilya B. Muchnik
1997 A conf
ISMB
Inna Dubchak, Ilya B. Muchnik, Sung-Hou Kim
1996 B conf
ICPR
Vadim Mottl, Ilya B. Muchnik, Alexander Blinov, Andrey Kopylov
1995 J jnl
J. Comput. Biol.
Boris G. Mirkin, Ilya B. Muchnik, Temple F. Smith
1995 A conf
ISMB
Eddy Mayoraz, Inna Dubchak, Ilya B. Muchnik
1992 J jnl
Discret. Appl. Math.
János Demetrovics, Leonid Libkin, Ilya B. Muchnik
1992 J jnl
Acta Cybern.
János Demetrovics, G. Hencsey, Leonid Libkin, Ilya B. Muchnik
1992 J jnl
Acta Cybern.
János Demetrovics, G. Hencsey, Leonid Libkin, Ilya B. Muchnik
1991 J jnl
J. Inf. Process. Cybern.
Joachim Biskup, János Demetrovics, Leonid Libkin, Ilya B. Muchnik
1989 conf
MFDBS
János Demetrovics, Leonid Libkin, Ilya B. Muchnik
redb/extractors/decompiler/apk/library_filter.py
← Index redb/extractors/decompiler/apk/library_filter.py python
"""Package-based library filtering for APK DEX code analysis.

Determines whether a method belongs to a known library/framework package
and should be filtered out of content tables. This is the Android equivalent
of is_lib_or_thunk() in the Binary Ninja pipeline.
"""

import os
from typing import Dict, List


DEFAULT_LIBRARY_PREFIXES = [
    "android.",
    "androidx.",
    "com.google.android.",
    "com.google.firebase.",
    "com.google.gson.",
    "com.google.protobuf.",
    "kotlin.",
    "kotlinx.",
    "org.apache.",
    "com.squareup.",
    "io.reactivex.",
    "org.reactivestreams.",
    "com.facebook.",
    "com.crashlytics.",
    "io.fabric.",
    "org.junit.",
    "org.mockito.",
]


class LibraryFilter:
    """Filters library/framework classes from APK analysis."""

    def __init__(self, prefixes: List[str] = None):
        env_prefixes = os.getenv("APK_LIBRARY_PREFIXES")
        if env_prefixes:
            self._prefixes = [p.strip() for p in env_prefixes.split(",") if p.strip()]
        elif prefixes is not None:
            self._prefixes = prefixes
        else:
            self._prefixes = DEFAULT_LIBRARY_PREFIXES

        # Convert Dalvik-style prefixes to both formats for matching
        self._dot_prefixes = tuple(self._prefixes)

        self._stats = {"library": 0, "user": 0}

    def is_library(self, class_name: str) -> bool:
        """Check if a class belongs to a known library/framework package.

        Accepts both Java dot notation (com.example.Foo) and Dalvik
        descriptor notation (Lcom/example/Foo;).
        """
        # Normalize Dalvik descriptor to dot notation
        normalized = self._normalize_class_name(class_name)

        is_lib = normalized.startswith(self._dot_prefixes)
        if is_lib:
            self._stats["library"] += 1
        else:
            self._stats["user"] += 1
        return is_lib

    def get_filter_stats(self) -> Dict[str, int]:
        """Return counts of filtered vs. retained classes."""
        return dict(self._stats)

    @staticmethod
    def _normalize_class_name(class_name: str) -> str:
        """Convert Dalvik descriptor to dot notation.

        Lcom/example/Foo; -> com.example.Foo
        com.example.Foo -> com.example.Foo
        """
        if class_name.startswith("L") and class_name.endswith(";"):
            return class_name[1:-1].replace("/", ".")
        return class_name.replace("/", ".")