Carsten Buschmann

33 papers A 3B 2C 4Misc 1Journal 10Unranked 11
YearRankTypeTitle / Venue / Authors
2015 J jnl
J. Sens. Actuator Networks
Michael Niedermeier, Xiaobing He, Hermann de Meer, Carsten Buschmann, Klaus Hartmann, Benjamin Langmann, Michael Koch, Stefan Fischer, Dennis Pfisterer
2013 conf
NEW2AN
Benjamin Langmann, Michael Niedermeier, Hermann de Meer, Carsten Buschmann, Michael Koch, Dennis Pfisterer, Stefan Fischer, Klaus Hartmann
2013 conf
REALWSN
Richard Mietz, Carsten Buschmann, Dennis Boldt, Kay Römer, Stefan Fischer
2011 conf
NTMS
Daniela Krüger, Dennis Pfisterer, Carsten Buschmann
2009 ch.
Ausgezeichnete Informatikdissertationen
Carsten Buschmann
2009 conf
ISWCS
Daniela Krüger, Carsten Buschmann, Stefan Fischer
2009 C conf
WEBIST
Nils Glombitza, Dennis Pfisterer, Stefan Fischer, Carsten Buschmann, Horst Pahl
2008 conf
ECOWS
Stephan Pöhlsen, Carsten Buschmann, Christian Werner
2008 conf
EuroSSC
Daniela Krüger, Carsten Buschmann, Stefan Fischer
2008 J jnl
Int. J. Web Serv. Res.
Christian Werner, Carsten Buschmann, Ylva Brandt, Stefan Fischer
2008
Zeitliches und räumliches Kontextbewusstsein in drahtlosen Sensornetzen.
Carsten Buschmann
2007 C conf
ETFA
Carsten Buschmann, Daniela Krüger, Stefan Fischer
2007 conf
KiVS
Carsten Buschmann, Christian Werner, Horst Hellbrück, Stefan Fischer
2007 B conf
EWSN
Carsten Buschmann, Horst Hellbrück, Stefan Fischer, Alexander Kröller, Sándor P. Fekete
2006 J jnl
Int. J. Web Serv. Res.
Christian Werner, Carsten Buschmann, Tobias Jäcker, Stefan Fischer
2006 A conf
ICWS
Christian Werner, Carsten Buschmann, Ylva Brandt, Stefan Fischer
2006 C conf
ETFA
Carsten Buschmann, Dennis Pfisterer, Stefan Fischer
2006 conf
Geometric Networks and Metric Space Embeddings
Sándor P. Fekete, Alexander Kröller, Carsten Buschmann, Stefan Fischer
2006 conf
InterSense
Dennis Pfisterer, Martin Lipphardt, Carsten Buschmann, Horst Hellbrück, Stefan Fischer, Jan Hendrik Sauselin
2006 B conf
IWCMC
Jan Blumenthal, Dirk Timmermann, Carsten Buschmann, Stefan Fischer, Jochen Koberstein, Norbert Luttenberger
2005 A conf
ICWS
Christian Werner, Carsten Buschmann, Tobias Jäcker
2005 conf
GI Jahrestagung (2)
Carsten Buschmann, Dennis Pfisterer, Stefan Fischer
2005 J jnl
Prax. Inf.verarb. Kommun.
Carsten Buschmann, Dennis Pfisterer, Stefan Fischer
2005 J jnl
CoRR
Alexander Kröller, Sándor P. Fekete, Carsten Buschmann, Stefan Fischer, Dennis Pfisterer
2005 J jnl
it Inf. Technol.
Sándor P. Fekete, Alexander Kröller, Carsten Buschmann, Stefan Fischer, Dennis Pfisterer
2005 J jnl
CoRR
Alexander Kröller, Dennis Pfisterer, Carsten Buschmann, Sándor P. Fekete, Stefan Fischer
2005 J jnl
SIGBED Rev.
Carsten Buschmann, Dennis Pfisterer, Stefan Fischer, Sándor P. Fekete, Alexander Kröller
2005 J jnl
Int. J. Web Serv. Res.
Christian Werner, Carsten Buschmann, Stefan Fischer
2004 A conf
ICWS
Christian Werner, Carsten Buschmann, Stefan Fischer
2004 J jnl
CoRR
Sándor P. Fekete, Alexander Kröller, Dennis Pfisterer, Stefan Fischer, Carsten Buschmann
2004 C conf
ALGOSENSORS
Sándor P. Fekete, Alexander Kröller, Dennis Pfisterer, Stefan Fischer, Carsten Buschmann
2004 conf
GI Jahrestagung (2)
Jochen Koberstein, Norbert Luttenberger, Carsten Buschmann, Stefan Fischer
2004 Misc conf
SenSys
Carsten Buschmann, Dennis Pfisterer, Stefan Fischer, Sándor P. Fekete, Alexander Kröller
redb/extractors/pe_extractor.py
← Index redb/extractors/pe_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

import magic
import pefile
from dotnetfile import DotNetPE

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class PEExtractor(Extractor, metaclass=ABCMeta):

    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
        )
        self.pe = pe if pe else self._generate_pefile_object()
        self.dotnet = None

    def _generate_pefile_object(self):
        pe = None
        try:
            pe = pefile.PE(self.filepath)
            if not pe:
                raise pefile.PEFormatError("Empty file?")
        except pefile.PEFormatError as e:
            self.log.error(f"Format error {self.hash.sha256} Full error : {e}")
        return pe

    def _generate_dotnetfile_object(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        dotnet = None
        error = None
        try:
            dotnet = DotNetPE(self.filepath)
            if not dotnet:
                raise Exception("Empty file?")
        except Exception as e:
            self.log.error(
                f"Format error dotnet file {self.hash.sha256} Full error : {e}"
            )
            error = e
        return dotnet, error

    def _check_dotnet(self):
        try:
            file_type = magic.from_buffer(self.binary)
            if ".Net" in file_type:
                return True
            for entry in self.pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                if (
                    entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                    and entry.Size > 0
                ):
                    return True
            return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def _is_signed(self):
        address = self.pe.OPTIONAL_HEADER.DATA_DIRECTORY[
            pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
        ].VirtualAddress
        if address == 0:
            return False
        return True

    def _has_overlay(self):
        return bool(self.pe.get_overlay())