Jackson Liscombe

39 papers A 21B 3Misc 2Journal 1Unranked 12
YearRankTypeTitle / Venue / Authors
2025 A conf
INTERSPEECH
Daniel Tisdale, Jackson Liscombe, David Pautler, Michael Neumann, Vikram Ramanarayanan
2025 A conf
INTERSPEECH
Emma Cathrine Liisborg Leschly, Oliver Roesler, Michael Neumann, Jackson Liscombe, Abhishek Hosamath, Lakshmi Arbatti, Line H. Clemmensen, Melanie Ganz, Vikram Ramanarayanan
2024 A conf
INTERSPEECH
Hardik Kothare, Michael Neumann, Cathy Zhang, Jackson Liscombe, Jordi W. J. van Unnik, Lianne C. M. Botman, Leonard H. van den Berg, Ruben P. A van Eijk, Vikram Ramanarayanan
2024 A conf
INTERSPEECH
Michael Neumann, Hardik Kothare, Jackson Liscombe, Emma C. L. Leschly, Oliver Roesler, Vikram Ramanarayanan
2024 A conf
INTERSPEECH
Oliver Roesler, Jackson Liscombe, Michael Neumann, Hardik Kothare, Abhishek Hosamath, Lakshmi Arbatti, Doug Habberstad, Christiane Suendermann-Oeft, Meredith Bartlett, Cathy Zhang, Nikhil Sukhdev, Kolja Wilms, Anusha Badathala, Sandrine Istas, Steve Ruhmel, Bryan Hansen, Madeline Hannan, David Henley, Arthur W. Wallace, Ira Shoulson, David Suendermann-Oeft, Vikram Ramanarayanan
2023 A conf
INTERSPEECH
Hardik Kothare, Michael Neumann, Jackson Liscombe, Jordan R. Green, Vikram Ramanarayanan
2023 A conf
INTERSPEECH
Vikram Ramanarayanan, David Pautler, Lakshmi Arbatti, Abhishek Hosamath, Michael Neumann, Hardik Kothare, Oliver Roesler, Jackson Liscombe, Andrew Cornish, Doug Habberstad, Vanessa Richter, David Fox, David Suendermann-Oeft, Ira Shoulson
2022 conf
ICMI Companion
Oliver Roesler, Hardik Kothare, William Burke, Michael Neumann, Jackson Liscombe, Andrew Cornish, Doug Habberstad, David Pautler, David Suendermann-Oeft, Vikram Ramanarayanan
2022 conf
EMBC
Hardik Kothare, Oliver Roesler, William Burke, Michael Neumann, Jackson Liscombe, Andrew Exner, Sandy Snyder, Andrew Cornish, Doug Habberstad, David Pautler, David Suendermann-Oeft, Jessica Huber, Vikram Ramanarayanan
2022 A conf
INTERSPEECH
Hardik Kothare, Michael Neumann, Jackson Liscombe, Oliver Roesler, William Burke, Andrew Exner, Sandy Snyder, Andrew Cornish, Doug Habberstad, David Pautler, David Suendermann-Oeft, Jessica Huber, Vikram Ramanarayanan
2022 conf
ICMI Companion
Vanessa Richter, Michael Neumann, Hardik Kothare, Oliver Roesler, Jackson Liscombe, David Suendermann-Oeft, Sebastian Prokop, Anzalee Khan, Christian Yavorsky, Jean-Pierre Lindenmayer, Vikram Ramanarayanan
2021 A conf
Interspeech
Hardik Kothare, Vikram Ramanarayanan, Oliver Roesler, Michael Neumann, Jackson Liscombe, William Burke, Andrew Cornish, Doug Habberstad, Alaa Sakallah, Sara Markuson, Seemran Kansara, Afik Faerman, Yasmine Bensidi-Slimane, Laura Fry, Saige Portera, David Suendermann-Oeft, David Pautler, Carly Demopoulos
2021 A conf
Interspeech
Michael Neumann, Oliver Roesler, Jackson Liscombe, Hardik Kothare, David Suendermann-Oeft, David Pautler, Indu Navar, Aria Anvar, Jochen Kumm, Raquel Norel, Ernest Fraenkel, Alexander V. Sherman, James D. Berry, Gary L. Pattee, Jun Wang, Jordan R. Green, Vikram Ramanarayanan
2021 J jnl
CoRR
Michael Neumann, Oliver Roesler, Jackson Liscombe, Hardik Kothare, David Suendermann-Oeft, David Pautler, Indu Navar, Aria Anvar, Jochen Kumm, Raquel Norel, Ernest Fraenkel, Alexander V. Sherman, James D. Berry, Gary L. Pattee, Jun Wang, Jordan R. Green, Vikram Ramanarayanan
2020 A conf
INTERSPEECH
Vikram Ramanarayanan, Oliver Roesler, Michael Neumann, David Pautler, Doug Habberstad, Andrew Cornish, Hardik Kothare, Vignesh Murali, Jackson Liscombe, Dirk Schnelle-Walka, Patrick L. Lange, David Suendermann-Oeft
2019 B conf
IVA
David Suendermann-Oeft, Amanda Robinson, Andrew Cornish, Doug Habberstad, David Pautler, Dirk Schnelle-Walka, Franziska Haller, Jackson Liscombe, Michael Neumann, Mike Merrill, Oliver Roesler, Renko Geffarth
2011 A conf
INTERSPEECH
David Suendermann, Jackson Liscombe, Jonathan Bloom, Grace Li, Roberto Pieraccini
2010 conf
SLT
David Suendermann, Jackson Liscombe, Roberto Pieraccini
2010 conf
SIGDIAL Conference
David Suendermann, Jackson Liscombe, Roberto Pieraccini
2010 A conf
INTERSPEECH
Alexander Schmitt, Michael Scholz, Wolfgang Minker, Jackson Liscombe, David Suendermann
2010 A conf
INTERSPEECH
David Suendermann, Jackson Liscombe, Roberto Pieraccini
2010 Misc conf
ICASSP
David Suendermann, Jackson Liscombe, Roberto Pieraccini
2010 B conf
LREC
Alexander Schmitt, Tim Polzehl, Wolfgang Minker, Jackson Liscombe
2010 B conf
LREC
Alexander Schmitt, Gregor Bertrand, Tobias Heinroth, Wolfgang Minker, Jackson Liscombe
2009 conf
SIGDIAL Conference
David Suendermann, Jackson Liscombe, Krishna Dayanidhi, Roberto Pieraccini
2009 conf
TSD
Roberto Pieraccini, David Suendermann, Krishna Dayanidhi, Jackson Liscombe
2009 Misc conf
ICASSP
David Suendermann, Keelan Evanini, Jackson Liscombe, Phillip Hunter, Krishna Dayanidhi, Roberto Pieraccini
2009 A conf
INTERSPEECH
David Suendermann, Jackson Liscombe, Krishna Dayanidhi, Roberto Pieraccini
2009 conf
SIGDIAL Conference
Alexander Schmitt, Tobias Heinroth, Jackson Liscombe
2008 conf
SLT
David Suendermann, Jackson Liscombe, Keelan Evanini, Krishna Dayanidhi, Roberto Pieraccini
2008 conf
SLT
Keelan Evanini, Phillip Hunter, Jackson Liscombe, David Suendermann, Krishna Dayanidhi, Roberto Pieraccini
2008 conf
PIT
Alexander Schmitt, Carolin Hank, Jackson Liscombe
2008 A conf
INTERSPEECH
Ota Herm, Alexander Schmitt, Jackson Liscombe
2006 conf
HLT-NAACL
Jackson Liscombe
2006 A conf
INTERSPEECH
Jackson Liscombe, Jennifer J. Venditti, Julia Hirschberg
2006 A conf
INTERSPEECH
Jennifer J. Venditti, Julia Hirschberg, Jackson Liscombe
2005 A conf
INTERSPEECH
Jackson Liscombe, Julia Hirschberg, Jennifer J. Venditti
2005 A conf
INTERSPEECH
Jackson Liscombe, Giuseppe Riccardi, Dilek Hakkani-Tür
2003 A conf
INTERSPEECH
Jackson Liscombe, Jennifer J. Venditti, Julia Hirschberg
redb/extractor_registry.py
← Index redb/extractor_registry.py python
"""
Extractor registry with lazy loading by file type.

Groups extractors by file type (pe, elf, macho, apk) and only imports
the relevant group when that file type is first encountered. This avoids
loading heavy dependencies (pefile, lief, androguard, etc.) into workers
that don't need them.
"""
import importlib
import logging

logger = logging.getLogger(__name__)

# Registry: group name -> list of (module_path, class_names)
_REGISTRY = {
    "pe": [
        ("redb.extractors.pe_extractors", [
            "PEFeaturesExtractor",
            "PEImportExtractor",
            "PEResourceExtractor",
            "PEOverlayExtractor",
            "PESectionExtractor",
            "PESignatureExtractor",
            "PEExtraFindings",
            "PEInconstistencyTestsExtractor",
            "PEDotNetExtractor",
        ]),
    ],
    "elf": [
        ("redb.extractors.elf_extractors", [
            "ELFFeaturesExtractor",
            "ELFSegmentExtractor",
            "ELFSectionExtractor",
            "ELFDependencyExtractor",
            "ELFSymbolExtractor",
            "ELFImportExtractor",
            "ELFExportExtractor",
            "ELFRelocationExtractor",
            "ELFNotesExtractor",
        ]),
    ],
    "macho": [
        ("redb.extractors.macho_extractors", [
            "MachOFeaturesExtractor",
            "MachOSegmentExtractor",
            "MachOImportExtractor",
            "MachOExportExtractor",
            "MachODylibExtractor",
            "MachOSignatureExtractor",
        ]),
    ],
    "apk": [
        ("redb.extractors.apk_extractors", [
            "APKFeaturesExtractor",
            "APKManifestExtractor",
            "APKPermissionsExtractor",
            "APKSignatureExtractor",
            "APKDexExtractor",
            "APKResourceExtractor",
            "APKNativeLibExtractor",
            "APKInconsistencyTestsExtractor",
        ]),
        ("redb.extractors.decompiler.DecompileAPK", [
            "DecompileAPK",
        ]),
    ],
    "js": [
        ("redb.extractors.js_extractors", [
            "JSFeaturesExtractor",
            "JSSuspiciousAPIsExtractor",
            "JSStringsExtractor",
            "JSDeobfuscationExtractor",
            "JSContentExtractor",
        ]),
    ],
}

# Map filetype labels (from Magika) to registry group names
FILETYPE_TO_GROUP = {
    "pebin": "pe",
    "elf": "elf",
    "macho": "macho",
    "apk": "apk",
    "javascript": "js",
}

# Cache: group name -> {class_name: class}
_group_cache = {}


def _load_group(group_name):
    """Import all extractors for a group. Cached after first call."""
    if group_name in _group_cache:
        return _group_cache[group_name]

    logger.debug(f"Loading extractor group: {group_name}")

    # Suppress androguard logging before importing APK extractors
    if group_name == "apk":
        from loguru import logger as loguru_logger
        loguru_logger.disable("androguard")

    classes = {}
    for module_path, class_names in _REGISTRY[group_name]:
        mod = importlib.import_module(module_path)
        for name in class_names:
            classes[name] = getattr(mod, name)

    _group_cache[group_name] = classes
    return classes


def get_filetype_modules(filetype):
    """Get the list of format-specific extractor classes for a filetype.

    Returns only analysis extractors (excludes decompilers like DecompileAPK).
    """
    group = FILETYPE_TO_GROUP.get(filetype)
    if not group:
        return []
    classes = _load_group(group)
    return [cls for name, cls in classes.items() if not name.startswith("Decompile")]


def get_extractor_class(name):
    """Look up a single extractor class by name across all groups.

    Checks cached groups first, then loads groups on demand.
    """
    # Check already-loaded groups first
    for group_classes in _group_cache.values():
        if name in group_classes:
            return group_classes[name]

    # Search all groups (triggers lazy loading)
    for group_name in _REGISTRY:
        classes = _load_group(group_name)
        if name in classes:
            return classes[name]

    return None