Ralf-Detlef Kutsche

41 papers A 2B 2C 1Misc 1Journal 4Unranked 21
YearRankTypeTitle / Venue / Authors
2020 ed.
eBISS
Ralf-Detlef Kutsche, Esteban Zimányi
2018 conf
MODELSWARD (Revised Selected Papers)
Henning Agt-Rickauer, Ralf-Detlef Kutsche, Harald Sack
2018 C conf
MODELSWARD
Henning Agt-Rickauer, Ralf-Detlef Kutsche, Harald Sack
2015 ed.
eBISS
Esteban Zimányi, Ralf-Detlef Kutsche
2013 A conf
CAiSE
Henning Agt, Ralf-Detlef Kutsche
2011 conf
SPLASH Workshops
Henning Agt, Ralf-Detlef Kutsche, Timo Wegeler
2011 B conf
ECMFA
Ralf-Detlef Kutsche, Nikola Milanovic
2011 conf
CAiSE Workshops
Henning Agt, Gregor Bauhoff, Ralf-Detlef Kutsche, Nikola Milanovic
2011 conf
GI-Jahrestagung
Ralf-Detlef Kutsche
2009 ed.
UNISCON
Jianhua Yang, Athula Ginige, Heinrich C. Mayr, Ralf-Detlef Kutsche
2009 conf
UNISCON
Henning Agt, Gregor Bauhoff, Mario Cartsburg, Daniel Kumpe, Ralf-Detlef Kutsche, Nikola Milanovic
2009 conf
ECMDA-FA
Nikola Milanovic, Mario Cartsburg, Ralf-Detlef Kutsche, Jürgen Widiker, Frank Kschonsak
2008 conf
UNISCON
Ralf-Detlef Kutsche, Nikola Milanovic
2008 A conf
MoDELS
Nikola Milanovic, Ralf-Detlef Kutsche, Timo Baum, Mario Cartsburg, Hatice Elmasgünes, Marco Pohl, Jürgen Widiker
2008 ed.
MBSDI
Ralf-Detlef Kutsche, Nikola Milanovic
2004 ed.
Multikonferenz Wirtschaftsinformatik (MKWI), Universität Duisburg-Essen, 9.-11. März 2004, Band 2: Informationssysteme in Industrie und Handel; Business intelligence; Knowledge supply and information logistics in enterprises andnetworked organizations; Organisationale Intelligenz
MKWI (2)
Peter Chamoni, Peter Loos, Wolfgang Deiters, Ralf-Detlef Kutsche, Kurt Sandkuhl, Norbert Gronau, Heiner Müller-Merbach, Bodo Rieger
2003 conf
BNCOD Posters
Florian Jung, Ralf-Detlef Kutsche, Dirk Rother
2003 conf
EFIS
Wolfgang Sigel, Susanne Busse, Ralf-Detlef Kutsche, Meike Klettke
2003 conf
Grundlagen von Datenbanken
Ralf-Detlef Kutsche
2003 conf
UML
Jörn Guy Süß, Andreas Leicher, Herbert Weber, Ralf-Detlef Kutsche
2003 conf
BNCOD Posters
Florian Jung, Ralf-Detlef Kutsche, Dirk Rother
2002 B ed.
FASE
Ralf-Detlef Kutsche, Herbert Weber
2002 J jnl
Comput. J.
Stefan Conrad, Wilhelm Hasselbring, Anne E. James, Dalen Kambur, Ralf-Detlef Kutsche, Philippe Thiran
2001 ed.
EFIS
Ralf-Detlef Kutsche, Stefan Conrad, Wilhelm Hasselbring
2001 ed.
Föderierte Datenbanken
Andreas Bauer, Susanne Busse, Ralf-Detlef Kutsche, Wolfgang Lehner
2000 J jnl
SIGMOD Rec.
Wilhelm Hasselbring, Willem-Jan van den Heuvel, Geert-Jan Houben, Ralf-Detlef Kutsche, Bodo Rieger, Mark Roantree, Kazimierz Subieta
2000 conf
EFIS
Susanne Busse, Ralf-Detlef Kutsche, Ulf Leser
1999 ed.
Föderierte Datenbanken
Ralf-Detlef Kutsche, Ulf Leser, Johann Christoph Freytag
1999 conf
MD
Ralf-Detlef Kutsche, Asuman Sünbül
1999 J jnl
SIGMOD Rec.
Stefan Conrad, Wilhelm Hasselbring, Uwe Hohenstein, Ralf-Detlef Kutsche, Mark Roantree, Gunter Saake, Fèlix Saltor
1999 conf
German-Argentinian Workshop on Information Technology
Herbert Weber, Marcus Klar, Stefan Mann, Ralf-Detlef Kutsche, Stefan Jähnichen, Robert Büssow, Hartmut Ehrig, Robert Geisler, Gabriel Baum, Claudia Pons, Miguel Felder, Sergio Waldoke
1998 conf
SCCC
Ralf-Detlef Kutsche, Asuman Sünbül
1995 J jnl
Datenbank Rundbr.
Ralf-Detlef Kutsche
1994
Ralf-Detlef Kutsche
1993 conf
Open Distributed Processing
Horst Hansen, Ralf-Detlef Kutsche
1991 conf
Grundlagen von Datenbanken
Ralf-Detlef Kutsche
1991 Misc conf
BTW
Ralf-Detlef Kutsche
1991 conf
Open Distributed Processing
Horst Hansen, Ralf-Detlef Kutsche, Joachim Steffens
1989 book
Grundlagen des maschinellen Beweisens - eine Einführung für Informatiker und Mathematiker.
Dieter Hofbauer, Ralf-Detlef Kutsche
1988 conf
ALP
Dieter Hofbauer, Ralf-Detlef Kutsche
1988 conf
ADT
Dieter Hofbauer, Ralf-Detlef Kutsche
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("/", ".")