Vinay Kanwar

44 papers Journal 44
YearRankTypeTitle / Venue / Authors
2025 J jnl
Numer. Algorithms
Puneet Sharma, Higinio Ramos, Vinay Kanwar, Ramandeep Behl, Mithil Rajput
2024 J jnl
Comput. Appl. Math.
Anurag Kaur, Vinay Kanwar, Higinio Ramos
2023 J jnl
Algorithms
Vinay Kanwar, Alicia Cordero, Juan R. Torregrosa, Mithil Rajput, Ramandeep Behl
2023 J jnl
J. Comput. Appl. Math.
Puneet Sharma, Higinio Ramos, Ramandeep Behl, Vinay Kanwar
2023 J jnl
J. Comput. Appl. Math.
Rajat Singla, Gurjinder Singh, Higinio Ramos, Vinay Kanwar
2023 J jnl
Symmetry
Rajat Singla, Gurjinder Singh, Higinio Ramos, Vinay Kanwar
2022 J jnl
Comput. Appl. Math.
Higinio Ramos, Anurag Kaur, Vinay Kanwar
2021 J jnl
Comput. Math. Methods
Gurjinder Singh, Arvind Garg, Rajat Singla, Vinay Kanwar
2021 J jnl
Comput. Math. Methods
Mona Narang, Saurabh Bhatia, Vinay Kanwar
2021 J jnl
Int. J. Comput. Sci. Math.
Raj Bala, Munish Kansal, Vinay Kanwar
2021 J jnl
Comput. Appl. Math.
Rajat Singla, Gurjinder Singh, Vinay Kanwar, Higinio Ramos
2019 J jnl
Appl. Math. Comput.
Gurjinder Singh, Arvind Garg, Vinay Kanwar, Higinio Ramos
2019 J jnl
J. Comput. Appl. Math.
Ali Saleh Alshomrani, Ramandeep Behl, Vinay Kanwar
2019 J jnl
J. Comput. Appl. Math.
Mona Narang, Saurabh Bhatia, Ali Saleh Alshomrani, Vinay Kanwar
2019 J jnl
Math. Model. Anal.
Ramandeep Behl, Vinay Kanwar, Young Ik Kim
2017 J jnl
Numer. Algorithms
Higinio Ramos, Gurjinder Singh, Vinay Kanwar, Saurabh Bhatia
2017 J jnl
Appl. Math. Comput.
Ioannis K. Argyros, Munish Kansal, Vinay Kanwar, Sugandha Bajaj
2017 J jnl
Numer. Algorithms
Mona Narang, Saurabh Bhatia, Vinay Kanwar
2016 J jnl
Numer. Algorithms
Alicia Cordero, Munish Kansal, Vinay Kanwar, Juan R. Torregrosa
2016 J jnl
Appl. Math. Comput.
Higinio Ramos, Gurjinder Singh, Vinay Kanwar, Saurabh Bhatia
2016 J jnl
Numer. Algorithms
Ramandeep Behl, Alicia Cordero, Sandile Sydney Motsa, Juan R. Torregrosa, Vinay Kanwar
2016 J jnl
Numer. Algorithms
Munish Kansal, Vinay Kanwar, Saurabh Bhatia
2016 J jnl
Appl. Math. Comput.
Mona Narang, Saurabh Bhatia, Vinay Kanwar
2015 J jnl
Algorithms
Munish Kansal, Vinay Kanwar, Saurabh Bhatia
2015 J jnl
Appl. Math. Comput.
Munish Kansal, Vinay Kanwar, Saurabh Bhatia
2015 J jnl
Appl. Math. Comput.
Higinio Ramos, Gurjinder Singh, Vinay Kanwar, Saurabh Bhatia
2014 J jnl
Int. J. Math. Math. Sci.
Ramandeep Behl, Vinay Kanwar
2013 J jnl
Appl. Math. Comput.
Vinay Kanwar, Saurabh Bhatia, Munish Kansal
2013 J jnl
Int. J. Comput. Math.
Ramandeep Behl, Vinay Kanwar, Kapil K. Sharma
2012 J jnl
J. Appl. Math.
Ramandeep Behl, Vinay Kanwar, Kapil K. Sharma
2012 J jnl
Appl. Math. Comput.
Sanjeev Kumar, Vinay Kanwar, Sukhjit Singh
2011 J jnl
Int. J. Math. Math. Sci.
Sanjeev Kumar, Vinay Kanwar, Sushil Kumar Tomar, Sukhjit Singh
2011 J jnl
Comput. Math. Appl.
Vinay Kanwar, Ramandeep Behl, Kapil K. Sharma
2010 J jnl
Intell. Inf. Manag.
Vinay Kanwar, Kapil K. Sharma, Ramandeep Behl
2009 J jnl
Int. J. Comput. Math.
Vinay Kanwar, Sushil Kumar Tomar
2008 J jnl
Numer. Algorithms
Vinay Kanwar, Sukhjit Singh, Sanjeev Bakshi
2007 J jnl
Appl. Math. Comput.
Vinay Kanwar, Sushil Kumar Tomar
2007 J jnl
Numer. Algorithms
Vinay Kanwar, Sushil Kumar Tomar
2006 J jnl
Appl. Math. Comput.
Vinay Kanwar
2006 J jnl
Appl. Math. Comput.
K. C. Gupta, Vinay Kanwar
2006 J jnl
Appl. Math. Comput.
Vinay Kanwar, Sukhjit Singh, Rangan K. Guha, Mamta
2005 J jnl
Appl. Math. Comput.
Vinay Kanwar, Janak Raj Sharma, Mamta
2005 J jnl
Appl. Math. Comput.
Mamta, Vinay Kanwar, Vijay Kumar Kukreja, Sukhjit Singh
2005 J jnl
Appl. Math. Comput.
Mamta, Vinay Kanwar, Vijay Kumar Kukreja, Sukhjit Singh
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("/", ".")