Ioannis Ioakimidis

19 papers B 1C 1Journal 7Unranked 10
YearRankTypeTitle / Venue / Authors
2020 J jnl
Comput. Methods Programs Biomed.
Christos Maramis, Ioannis Moulos, Ioannis Ioakimidis, Vasileios Papapanagiotou, Billy Langlet, Irini Lekka, Cecilia Bergh, Nicos Maglaveras
2020 conf
EMBC
Christos Diou, Ioannis A. Sarafis, Vasileios Papapanagiotou, Leonidas Alagialoglou, Irini Lekka, Dimitrios Filos, Leandros Stefanopoulos, Vasileios Kilintzis, Christos Maramis, Youla Karavidopoulou, Nikolaos Maglaveras, Ioannis Ioakimidis, Evangelia Charmandari, Penio Kassari, Athanasia Tragomalou, Monica Mars, Thien-An Ngoc Nguyen, M. Tahar Kechadi, Shane O' Donnell, Gerardine Doyle, Sarah Browne, Grace O' Malley, Rachel Heimeier, Katerina Riviou, Evangelia Koukoula, Konstantinos Filis, Maria Hassapidou, Ioannis Pagkalos, Daniel Ferri, Isabel Pérez, Anastasios Delopoulos
2020 J jnl
CoRR
Christos Diou, Ioannis A. Sarafis, Vassilis Papapanagiotou, Leonidas Alagialoglou, Irini Lekka, Dimitrios Filos, Leandros Stefanopoulos, Vasileios Kilintzis, Christos Maramis, Youla Karavidopoulou, Nicos Maglaveras, Ioannis Ioakimidis, Evangelia Charmandari, Penio Kassari, Athanasia Tragomalou, Monica Mars, Thien-An Ngoc Nguyen, M. Tahar Kechadi, Shane O' Donnell, Gerardine Doyle, Sarah Browne, Grace O' Malley, Rachel Heimeier, Katerina Riviou, Evangelia Koukoula, Konstantinos Filis, Maria Hassapidou, Ioannis Pagkalos, Daniel Ferri, Isabel Pérez, Anastasios Delopoulos
2020 conf
EMBC
Vasileios Papapanagiotou, Ioannis A. Sarafis, Christos Diou, Ioannis Ioakimidis, Evangelia Charmandari, Anastasios Delopoulos
2020 J jnl
CoRR
Vasileios Papapanagiotou, Ioannis A. Sarafis, Christos Diou, Ioannis Ioakimidis, Evangelia Charmandari, Anastasios Delopoulos
2020 conf
EMBC
Konstantinos Kyritsis, Petter Fagerberg, Ioannis Ioakimidis, Lisa Klingelhöfer, Heinz Reichmann, Anastasios Delopoulos
2019 C conf
ICVS
Dimitrios Konstantinidis, Kosmas Dimitropoulos, Ioannis Ioakimidis, Billy Langlet, Petros Daras
2019 J jnl
CoRR
Christos Diou, Ioannis A. Sarafis, Vasileios Papapanagiotou, Ioannis Ioakimidis, Anastasios Delopoulos
2019 conf
EMBC
Ioannis A. Sarafis, Christos Diou, Ioannis Ioakimidis, Anastasios Delopoulos
2019 J jnl
IEEE J. Biomed. Health Informatics
Vasileios Papapanagiotou, Christos Diou, Ioannis Ioakimidis, Per Södersten, Anastasios Delopoulos
2019 conf
MobiHealth
Christos Maramis, Ioannis Ioakimidis, Vassilis Kilintzis, Leandros Stefanopoulos, Eirini Lekka, Vasileios Papapanagiotou, Christos Diou, Anastasios Delopoulos, Penio Kassari, Evangelia Charmandari, Nikolaos Maglaveras
2017 conf
BHI
Christos Diou, Ioannis A. Sarafis, Ioannis Ioakimidis, Anastasios Delopoulos
2017 B conf
CBMS
Leandros Stefanopoulos, Christos Maramis, Ioannis Moulos, Ioannis Ioakimidis, Nicos Maglaveras
2017 J jnl
Behav. Inf. Technol.
Billy Langlet, Anna Anvret, Christos Maramis, Ioannis Moulos, Vasileios Papapanagiotou, Christos Diou, Eirini Lekka, Rachel Heimeier, Anastasios Delopoulos, Ioannis Ioakimidis
2016 conf
TISHW
Stelios Hadjidimitriou, Vasileios S. Charisis, Konstantinos Kyritsis, Evdokimos I. Konstantinidis, Anastasios Delopoulos, Panagiotis D. Bamidis, Sevasti Bostantjopoulou, Alexandra Rizos, Dhaval Trivedi, Kallol Ray Chaudhuri, Lisa Klingelhöfer, Heinz Reichmann, Julia Wadoux, Nathalie De Craecker, Fotis Karagiannis, Petter Fagerberg, Ioannis Ioakimidis, Michael Stadtschnitzer, Alexander M. Esser, Nikolaos Grammalidis, Kosmas Dimitropoulos, Sofia B. Dias, José A. Diniz, Hugo Plácido da Silva, George L. Lyberopoulos, Eleni Theodoropoulou, Leontios J. Hadjileontiadis
2015 conf
EMBC
Vasileios Papapanagiotou, Christos Diou, Billy Langlet, Ioannis Ioakimidis, Anastasios Delopoulos
2015 conf
IWBBIO (2)
Vasileios Papapanagiotou, Christos Diou, Billy Langlet, Ioannis Ioakimidis, Anastasios Delopoulos
2015 conf
ICIAP Workshops
Ioannis Moulos, Christos Maramis, Ioannis Ioakimidis, Janet van den Boer, Jenny Nolstam, Monica Mars, Cecilia Bergh, Nicos Maglaveras
2012 J jnl
Neurocomputing
Ioannis Ioakimidis, Modjtaba Zandian, Florian Ulbl, Carina Ålund, Cecilia Bergh, Per Södersten
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())