Ralf Veit

22 papers B 1Journal 21
YearRankTypeTitle / Venue / Authors
2025 J jnl
NeuroImage
Lorenzo Semeia, Ralf Veit, Sixiu Zhao, Shan Luo, Brendan Angelo, Andreas L. Birkenfeld, Hubert Preissl, Anny H. Xiang, Stephanie Kullmann, Kathleen A. Page
2021 J jnl
NeuroImage
Amelie Haugg, Fabian M. Renz, Andrew A. Nicholson, Cindy Lor, Sebastian J. Götzendorfer, Ronald Sladky, Stavros Skouras, Amalia McDonald, R. Cameron Craddock, Lydia Hellrung, Matthias Kirschner, Marcus Herdener, Yury Koush, Marina Papoutsi, Nimrod Jakob Keynan, Talma Hendler, Kathrin Cohen Kadosh, Catharina Zich, Simon H. Kohl, Manfred Hallschmid, Jeff MacInnes, R. Alison Adcock, Kathryn C. Dickerson, Nan-kuei Chen, Kymberly D. Young, Jerzy Bodurka, Michael Marxen, Shuxia Yao, Benjamin Becker, Tibor Auer, Renate Schweizer, Gustavo S. P. Pamplona, Ruth A. Lanius, Kirsten Emmert, Sven Haller, Dimitri Van De Ville, Dong-Youl Kim, Jong-Hwan Lee, Theo Marins, Fukuda Megumi, Bettina Sorger, Tabea Kamp, Sook-Lei Liew, Ralf Veit, Maartje S. Spetter, Nikolaus Weiskopf, Frank Scharnowski, David Steyrl
2019 J jnl
NeuroImage
Simon H. Kohl, Ralf Veit, Maartje S. Spetter, Astrid Günther, Andriani Rina, Michael Lührs, Niels Birbaumer, Hubert Preissl, Manfred Hallschmid
2016 J jnl
NeuroImage
Kirsten Emmert, Rotem Kopel, James S. Sulzer, Annette B. Brühl, Brian D. Berman, David E. J. Linden, Silvina G. Horovitz, Markus Breimhorst, Andrea Caria, Sabine Frank, Stephen J. Johnston, Zhi-ying Long, Christian Paret, Fabien Robineau, Ralf Veit, Andreas J. Bartsch, Christian F. Beckmann, Dimitri Van De Ville, Sven Haller
2016 J jnl
NeuroImage
Stephanie Kullmann, Martina F. Callaghan, Martin Heni, Nikolaus Weiskopf, Klaus Scheffler, Hans-Ulrich Häring, Andreas Fritsche, Ralf Veit, Hubert Preissl
2016 J jnl
NeuroImage
Boris Kleber, Ralf Veit, Christina Valérie Moll, Christian Gaser, Niels Birbaumer, Martin Lotze
2014 J jnl
NeuroImage
Emma J. Lawrence, Li Su, Gareth J. Barker, Nick Medford, Jeffrey Dalton, Steven C. R. Williams, Niels Birbaumer, Ralf Veit, Ranganatha Sitaram, Jerzy Bodurka, Michael J. Brammer, Vincent Giampietro, Anthony S. David
2013 B conf
ACII
Giulia Liberati, Ralf Veit, Sunjung Kim, Niels Birbaumer, Christine von Arnim, Anne Jenner, Dorothée Lulé, Albert Christian Ludolph, Antonino Raffone, Marta Olivetti Belardinelli, Josue Dalboni da Rocha, Ranganatha Sitaram
2013 J jnl
NeuroImage
Linda van der Heiden, Sigrid Scherpiet, Lilian Konicar, Niels Birbaumer, Ralf Veit
2011 J jnl
NeuroImage
Sebastian Halder, D. Agorastos, Ralf Veit, Eva M. Hammer, S. Lee, B. Varkuti, Martin Bogdan, Wolfgang Rosenstiel, Niels Birbaumer, Andrea Kübler
2011 J jnl
NeuroImage
Ranganatha Sitaram, Sangkyun Lee, Sergio Ruiz, Mohit Rana, Ralf Veit, Niels Birbaumer
2010 J jnl
NeuroImage
Ralf Veit, Martin Lotze, Sven Sewing, Heiner Missenhardt, Tilman Gaber, Niels Birbaumer
2008 J jnl
IEEE Signal Process. Mag.
Ranganatha Sitaram, Nikolaus Weiskopf, Andrea Caria, Ralf Veit, Michael Erb, Niels Birbaumer
2007 J jnl
NeuroImage
Martin Lotze, Ralf Veit, S. Anders, Niels Birbaumer
2007 J jnl
NeuroImage
Boris Kleber, Niels Birbaumer, Ralf Veit, T. Trevorrow, Martin Lotze
2007 J jnl
NeuroImage
Andrea Caria, Ralf Veit, Ranganatha Sitaram, Martin Lotze, Nikolaus Weiskopf, Wolfgang Grodd, Niels Birbaumer
2007 J jnl
Comput. Intell. Neurosci.
Ranganatha Sitaram, Andrea Caria, Ralf Veit, Tilman Gaber, Giuseppina Rota, Andrea Kübler, Niels Birbaumer
2006 J jnl
NeuroImage
A. M. R. Di Gangi Herms, Ralf Veit, C. Reisenauer, A. Herms, Wolfgang Grodd, Paul Enck, Arnulf Stenzl, Niels Birbaumer
2006 J jnl
NeuroImage
Katarína Porubská, Ralf Veit, Hubert Preissl, Andreas Fritsche, Niels Birbaumer
2004 J jnl
IEEE Trans. Biomed. Eng.
Thilo Hinterberger, Nikolaus Weiskopf, Ralf Veit, Barbara Wilhelm, Elena Betta, Niels Birbaumer
2004 J jnl
IEEE Trans. Biomed. Eng.
Nikolaus Weiskopf, Klaus Mathiak, Simon W. Bock, Frank Scharnowski, Ralf Veit, Wolfgang Grodd, Rainer Goebel, Niels Birbaumer
2003 J jnl
NeuroImage
Nikolaus Weiskopf, Ralf Veit, Michael Erb, Klaus Mathiak, Wolfgang Grodd, Rainer Goebel, Niels Birbaumer
redb/extractors/pe_extractors/pe_imports.py
← Index redb/extractors/pe_extractors/pe_imports.py python
import inspect
from typing import Any, List, Tuple
from datetime import datetime, timezone

from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PEImport


class PEImportExtractor(PEExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        pe=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            pe,
        )
        self.elastic_index = self.index_prefix + "-pe_imports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.PE_IMPORT.value

    def _extract_imports(self):
        self.log.debug(inspect.currentframe().f_code.co_name)

        imports_symbols = []
        imports_lib = []
        imports_total = 0
        # pe_import = None
        try:
            directory_entry_import = getattr(self.pe, "DIRECTORY_ENTRY_IMPORT", [])
            imports_total = len(directory_entry_import)
            for entry in directory_entry_import:
                symbols = []
                tmp_import = {}
                libname = entry.dll.decode() if entry.dll else ""
                imports_lib.append(libname)
                # replace . with _ to avoid issues with elastic
                # entryname = entryname.replace(".", "_")
                for symbol in entry.imports:
                    if symbol.name:
                        symbols.append(symbol.name.decode())
                # imports_symbols[entryname] = symbols
                tmp_import[libname] = symbols
                imports_symbols.append(tmp_import)
            return PEImport(
                pe_imports_total=imports_total,
                pe_import_libraryName=imports_lib if imports_lib else None,
                pe_import_functions=imports_symbols if imports_symbols else None,
            )
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
        return pe_import

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            return self._extract_imports()
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            imports = self.extract()
            if (
                imports is None
                or imports.pe_imports_total == 0
                or (
                    imports.pe_import_libraryName is None
                    and imports.pe_import_functions is None
                )
            ):
                return None

            # Flatten the data - one row per function import
            data = []
            current_time = datetime.now(timezone.utc)

            for lib_funcs in imports.pe_import_functions:
                for lib, funcs in lib_funcs.items():
                    for func in funcs:
                        data.append(
                            [
                                self.sha256,  # sha256
                                self.md5,  # md5
                                self.sha1,  # sha1
                                lib,  # library_name
                                func,  # function_name
                                current_time,  # analysis_date
                            ]
                        )

            column_names = [
                "sha256",
                "md5",
                "sha1",
                "library_name",
                "function_name",
                "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)",
                "FixedString(32)",
                "FixedString(40)",
                "LowCardinality(Nullable(String))",
                "LowCardinality(Nullable(String))",
                "DateTime64(3, 'UTC')",
            ]

            if not data:
                return None

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_pe_imports"