Cees T. A. M. de Laat

32 papers A 2B 8C 1Journal 12Unranked 9
YearRankTypeTitle / Venue / Authors
2019 J jnl
Future Gener. Comput. Syst.
Ralph Koning, Ben de Graaff, Gleb Polevoy, Robert J. Meijer, Cees T. A. M. de Laat, Paola Grosso
2019 J jnl
IEEE Access
Lu Zhang, Reginald Cushing, Leon Gommans, Cees T. A. M. de Laat, Paola Grosso
2019 B conf
CCGRID
Yang Hu, Cees T. A. M. de Laat, Zhiming Zhao
2017 B conf
NetSoft
Ralph Koning, Ben de Graaff, Robert J. Meijer, Cees T. A. M. de Laat, Paola Grosso
2017 conf
AAAI Workshops
Ameneh Deljoo, Tom M. van Engers, Leon Gommans, Cees T. A. M. de Laat
2016 B conf
CLOUD
Huan Zhou, Junchao Wang, Yang Hu, Jinshu Su, Paul Martin, Cees T. A. M. de Laat, Zhiming Zhao
2016 J jnl
Future Gener. Comput. Syst.
Spiros Koulouzis, Adam S. Z. Belloum, Marian Bubak, Zhiming Zhao, Miroslav Zivkovic, Cees T. A. M. de Laat
2015 J jnl
Clust. Comput.
Hao Zhu, Karel van der Veldt, Zhiming Zhao, Paola Grosso, Dimitar Pavlov, Joris Soeurt, Xiangke Liao, Cees T. A. M. de Laat
2015 conf
Conf. Computing Frontiers
Marc X. Makkes, Ana Lucia Varbanescu, Cees T. A. M. de Laat, Robert J. Meijer
2015 J jnl
Future Gener. Comput. Syst.
Jeroen van der Ham, József Stéger, Sándor Laki, Yiannos Kryftis, Vasilis Maglaris, Cees T. A. M. de Laat
2015 J jnl
IEEE Commun. Mag.
Vasilis Maglaris, Chrysa Papagianni, Georgios Androulidakis, Mary Grammatikou, Paola Grosso, Jeroen van der Ham, Cees T. A. M. de Laat, Blazej Pietrzak, Bartosz Belter, József Stéger, Sándor Laki, Mauro Campanella, Sebastià Sallent
2014 C conf
CloudCom
Yuri Demchenko, Adam Belloum, David Bernstein, Cees T. A. M. de Laat
2013 conf
CGC
Hao Zhu, Karel van der Veldt, Paola Grosso, Xiangke Liao, Cees T. A. M. de Laat
2012 conf
Future Network & Mobile Summit
Anna Tzanakaki, Markos P. Anastasopoulos, Konstantinos Georgakilas, J. A. Garciaespin, Jordi Ferrer Riera, Sergi Figuerola, Mattijs Ghijsen, Yuri Demchenko, Cees T. A. M. de Laat, Pascale Vicat-Blanc, Sebastien Soudan, Fabienne Anhalt, Shuping Peng, Eduard Escalona, Reza Nejabati, Dimitra Simeonidou
2009 conf
ICCS (2)
Rudolf J. Strijkers, Laurence Muller, Mihai Cristea, Robert G. Belleman, Cees T. A. M. de Laat, Peter M. A. Sloot, Robert J. Meijer
2009 conf
Euro-Par
Cees T. A. M. de Laat, Chris Develder, Admela Jukan, Joe Mambretti
2008 B conf
CCGRID
Guido van 't Noordende, Sílvia Delgado Olabarriaga, Matthijs R. Koot, Cees T. A. M. de Laat
2007 conf
AIMS
Freek Dijkstra, Bas van Oudenaarde, Bert Andree, Leon Gommans, Paola Grosso, Jeroen van der Ham, Karst Koymans, Cees T. A. M. de Laat
2007 A conf
HPDC
Yuri Demchenko, Frank Siebenlist, Leon Gommans, Cees T. A. M. de Laat, David L. Groep, Oscar Koeroo
2007 B conf
CCGRID
Zhiming Zhao, Adam Belloum, Cees T. A. M. de Laat, Pieter W. Adriaans, Bob Hertzberger
2007 conf
Integrated Network Management
Jeroen van der Ham, Paola Grosso, Ronald van der Pol, Andree Toonk, Cees T. A. M. de Laat
2006 J jnl
Future Gener. Comput. Syst.
Michael Scarpa, Robert G. Belleman, Peter M. A. Sloot, Cees T. A. M. de Laat
2006 B conf
e-Science
Márcia A. Inda, Adam Belloum, Marco Roos, Dmitry Vasunin, Cees T. A. M. de Laat, Louis O. Hertzberger, Timo M. Breit
2006 A conf
SC
Jeroen van der Ham, Paola Grosso, Freek Dijkstra, Cees T. A. M. de Laat
2006 J jnl
Future Gener. Comput. Syst.
Franco Travostino, Paul Daspit, Leon Gommans, Chetan Jog, Cees T. A. M. de Laat, Joe Mambretti, Inder Monga, Bas van Oudenaarde, Satish Raghunath, Phil Yonghui Wang
2006 J jnl
Future Gener. Comput. Syst.
Larry Smarr, Thomas A. DeFanti, Maxine D. Brown, Cees T. A. M. de Laat
2006 B conf
e-Science
Robert J. Meijer, Rudolf J. Strijkers, Leon Gommans, Cees T. A. M. de Laat
2006 J jnl
Future Gener. Comput. Syst.
Jeroen van der Ham, Freek Dijkstra, Franco Travostino, Hubertus M. A. Andree, Cees T. A. M. de Laat
2006 J jnl
Future Gener. Comput. Syst.
Freek Dijkstra, Jeroen van der Ham, Cees T. A. M. de Laat
2006 B conf
e-Science
Zhiming Zhao, Suresh Booms, Adam Belloum, Cees T. A. M. de Laat, Bob Hertzberger
2005 conf
GRID
Yuri Demchenko, Leon Gommans, Cees T. A. M. de Laat, Bas van Oudenaarde
2003 J jnl
Future Gener. Comput. Syst.
Adam Belloum, David L. Groep, Zeger W. Hendrikse, Louis O. Hertzberger, Vladimir Korkhov, Cees T. A. M. de Laat, Dmitry Vasunin
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("/", ".")