Chad L. Myers

27 papers A* 1Misc 1Journal 22Unranked 3
YearRankTypeTitle / Venue / Authors
2021 J jnl
J. Chem. Inf. Model.
Hamid Safizadeh, Scott W. Simpkins, Justin Nelson, Sheena C. Li, Jeff S. Piotrowski, Mami Yoshimura, Yoko Yashiroda, Hiroyuki Hirano, Hiroyuki Osada, Minoru Yoshida, Charles Boone, Chad L. Myers
2018 J jnl
Bioinform.
Justin Nelson, Scott W. Simpkins, Hamid Safizadeh, Sheena C. Li, Jeff S. Piotrowski, Hiroyuki Hirano, Yoko Yashiroda, Hiroyuki Osada, Minoru Yoshida, Charles Boone, Chad L. Myers
2018 J jnl
PLoS Comput. Biol.
Scott W. Simpkins, Justin Nelson, Raamesh Deshpande, Sheena C. Li, Jeff S. Piotrowski, Erin H. Wilson, Abraham A. Gebre, Hamid Safizadeh, Reika Okamoto, Mami Yoshimura, Michael Costanzo, Yoko Yashiroda, Yoshikazu Ohya, Hiroyuki Osada, Minoru Yoshida, Charles Boone, Chad L. Myers
2014 J jnl
CoRR
Chandrima Sarkar, Raamesh Deshpande, Chad L. Myers
2013 J jnl
PLoS Comput. Biol.
Recep Colak, TaeHyung Kim, Magali Michaut, Mark G. F. Sun, Manuel Irimia, Jeremy Bellay, Chad L. Myers, Benjamin J. Blencowe, Philip M. Kim
2013 J jnl
Nucleic Acids Res.
Omar Wagih, Matej Usaj, Anastasia Baryshnikova, Benjamin VanderSluis, Elena Kuzmin, Michael Costanzo, Chad L. Myers, Brenda J. Andrews, Charles Boone, Leopold Parts
2011 J jnl
PLoS Comput. Biol.
Magali Michaut, Anastasia Baryshnikova, Michael Costanzo, Chad L. Myers, Brenda J. Andrews, Charles Boone, Gary D. Bader
2010 J jnl
PLoS Comput. Biol.
Raamesh Deshpande, Shikha Sharma, Catherine M. Verfaillie, Wei-Shou Hu, Chad L. Myers
2010 J jnl
PLoS Comput. Biol.
Gaurav Pandey, Bin Zhang, Aaron N. Chang, Chad L. Myers, Jun Zhu, Vipin Kumar, Eric E. Schadt
2010 J jnl
Nucleic Acids Res.
Judice L. Y. Koh, Huiming Ding, Michael Costanzo, Anastasia Baryshnikova, Kiana Toufighi, Gary D. Bader, Chad L. Myers, Brenda J. Andrews, Charles Boone
2010 Misc conf
Pacific Symposium on Biocomputing
Gang Fang, Rui Kuang, Gaurav Pandey, Michael S. Steinbach, Chad L. Myers, Vipin Kumar
2009 A* conf
KDD
Gaurav Pandey, Gowtham Atluri, Michael S. Steinbach, Chad L. Myers, Vipin Kumar
2009 conf
GENSiPS
Jeremy Bellay, Benjamin VanderSluis, Yungil Kim, Sunayan Bandyopadhyay, Chad L. Myers
2009 J jnl
PLoS Comput. Biol.
Matthew A. Hibbs, Chad L. Myers, Curtis Huttenhower, David C. Hess, Kai Li, Amy A. Caudy, Olga G. Troyanskaya
2009 J jnl
BMC Bioinform.
Gaurav Pandey, Chad L. Myers, Vipin Kumar
2009 J jnl
Bioinform.
Curtis Huttenhower, Matthew A. Hibbs, Chad L. Myers, Amy A. Caudy, David C. Hess, Olga G. Troyanskaya
2008 J jnl
PLoS Comput. Biol.
Yuanfang Guan, Chad L. Myers, Rong Lu, Ihor Lemischka, Carol J. Bult, Olga G. Troyanskaya
2007 J jnl
Bioinform.
Chad L. Myers, Olga G. Troyanskaya
2007 J jnl
Bioinform.
Matthew A. Hibbs, David C. Hess, Chad L. Myers, Curtis Huttenhower, Kai Li, Olga G. Troyanskaya
2007 J jnl
BMC Bioinform.
Curtis Huttenhower, Avi I. Flamholz, Jessica N. Landis, Sauhard Sahi, Chad L. Myers, Kellen L. Olszewski, Matthew A. Hibbs, Nathan O. Siemers, Olga G. Troyanskaya, Hilary A. Coller
2006 J jnl
Bioinform.
Curtis Huttenhower, Matthew A. Hibbs, Chad L. Myers, Olga G. Troyanskaya
2006 J jnl
BMC Bioinform.
Rachel S. G. Sealfon, Matthew A. Hibbs, Curtis Huttenhower, Chad L. Myers, Olga G. Troyanskaya
2005 J jnl
Commun. Inf. Syst.
Sun-Yuan Kung, Chad L. Myers, Xinying Zhang
2005 J jnl
BMC Bioinform.
Chad L. Myers, Xing Chen, Olga G. Troyanskaya
2004 conf
ICASSP (4)
Sun-Yuan Kung, Chad L. Myers, Xinying Zhang
2004 J jnl
Bioinform.
Chad L. Myers, Maitreya J. Dunham, Sun-Yuan Kung, Olga G. Troyanskaya
2004 conf
ICASSP (5)
Xinying Zhang, Chad L. Myers, Sun-Yuan Kung
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("/", ".")