Jakob Wilm

19 papers A* 1A 1Journal 7Unranked 9
YearRankTypeTitle / Venue / Authors
2025 conf
SCIA (1)
Jonathan Bøss, Jakob Wilm
2025 J jnl
Frontiers Robotics AI
Lakshadeep Naik, Thorbjørn Mosekjær Iversen, Jakob Wilm, Norbert Krüger
2022 A* conf
ICRA
Lakshadeep Naik, Thorbjørn Mosekjær Iversen, Aljaz Kramberger, Jakob Wilm, Norbert Krüger
2021 J jnl
Robotica
Lars-Peter Ellekilde, Jakob Wilm, Ole W. Nielsen, Christian Krogh, Ewa Kristiansen, Gudmundur G. Gunnarsson, T. S. Stenvang, Johnny Jakobsen, Morten Kristiansen, Jeppe Aagaard Glud, Morten Hannemose, Henrik Aanæs, J. de Kruijk, I. Sveidahl, A. Ikram, Henrik Gordon Petersen
2021 J jnl
CoRR
Dolores Messer, Jakob Wilm, Eythor R. Eiriksson, Vedrana Andersen Dahl, Anders B. Dahl
2021 J jnl
Sensors
Janus Nørtoft Jensen, Morten Hannemose, J. Andreas Bærentzen, Jakob Wilm, Jeppe Revall Frisvad, Anders Bjorholm Dahl
2021 J jnl
CoRR
Christian Krogh, Johnny Jakobsen, Jakob Wilm
2020 J jnl
CoRR
Morten Hannemose, Jakob Wilm, Jeppe Revall Frisvad
2019 A conf
IROS
Thorbjørn Mosekjær Iversen, Jakob Wilm, Dirk Kraft
2019 conf
SCIA
Morten Hannemose, Janus Nørtoft Jensen, Gudmundur Einarsson, Jakob Wilm, Anders Bjorholm Dahl, Jeppe Revall Frisvad
2017 conf
SCIA (1)
Sebastian Nesgaard Jensen, Jakob Wilm, Henrik Aanæs
2016
Jakob Wilm
2015 conf
SCIA
Jakob Wilm, Oline Vinter Olesen, Rasmus R. Paulsen, Rasmus Larsen
2015 conf
Material Appearance Modeling
Jannik Boll Nielsen, Eyþór Rúnar Eiríksson, Rasmus Lyngby Kristensen, Jakob Wilm, Jeppe Revall Frisvad, Knut Conradsen, Henrik Aanæs
2015 conf
SIGGRAPH Asia Posters
Alessandro Dal Corso, Mikkel Damgaard Olsen, Kim Steenstrup Steenstrup, Jakob Wilm, S. Jensen, Rasmus R. Paulsen, Eyþór Rúnar Eiríksson, Jannik Boll Nielsen, Jeppe Revall Frisvad, Gudmundur Einarsson, Hans Martin Kjer
2014 J jnl
IEEE Trans. Medical Imaging
Mads Fogtmann, Sharmishtaa Seshamani, Christopher D. Kroenke, Xi Cheng, Teresa Chapman, Jakob Wilm, François Rousseau, Colin Studholme
2014 conf
IPTA
Jakob Wilm, Oline Vinter Olesen, Rasmus Larsen
2013 conf
EMBC
Xi Cheng, Jakob Wilm, Sharmishtaa Seshamani, Mads Fogtmann, Christopher D. Kroenke, Colin Studholme
2011 conf
SCIA
Jakob Wilm, Oline Vinter Olesen, Rasmus R. Paulsen, Liselotte Højgaard, Bjarne Roed, Rasmus Larsen
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())