Malak Baslyman

42 papers A* 1A 1Journal 20Unranked 20
YearRankTypeTitle / Venue / Authors
2025 J jnl
J. Softw. Evol. Process.
Malek Al zeibak, Mohammad R. Alshayeb, Malak Baslyman, Mahmood Khan Niazi
2025 conf
ASEW
Haifa Abdullah Al-Shammare, Mohammad R. Alshayeb, Malak Baslyman
2025 conf
AIware
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 J jnl
CoRR
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 conf
REW
Asma Z. Yamani, Nadeen AlAmoudi, Salma Albelali, Malak Baslyman, Jameleddine Hassine
2025 J jnl
CoRR
Asma Z. Yamani, Nadeen AlAmoudi, Salma Albilali, Malak Baslyman, Jameleddine Hassine
2025 conf
PROMISE
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 J jnl
CoRR
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 conf
REW
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 J jnl
CoRR
Asma Z. Yamani, Malak Baslyman, Moataz A. Ahmed
2025 J jnl
Comput. Stand. Interfaces
Haifa Abdullah Al-Shammare, Mohammad R. Alshayeb, Malak Baslyman
2025 J jnl
IEEE Access
Mashail N. Alkhomsan, Malak Baslyman, Mohammad R. Alshayeb
2025 J jnl
Softw. Pract. Exp.
Haifa Abdullah Al-Shammare, Mohammad R. Alshayeb, Malak Baslyman
2024 J jnl
PeerJ Comput. Sci.
Mashail N. Alkhomsan, Malak Baslyman, Mohammad R. Alshayeb
2024 conf
MO2RE@ICSE
Mashail N. Alkhomsan, Malak Baslyman, Mohammad R. Alshayeb
2024 A* conf
CHI
Asma Z. Yamani, Haifa Abdullah Al-Shammare, Malak Baslyman
2024 J jnl
CoRR
Asma Z. Yamani, Haifa Abdullah Al-Shammare, Malak Baslyman
2024 J jnl
Requir. Eng.
Nadeen AlAmoudi, Jameleddine Hassine, Malak Baslyman
2024 J jnl
CoRR
Asma Z. Yamani, Malak Baslyman
2024 J jnl
Sci. Comput. Program.
Mashail N. Alkhomsan, Mohammad R. Alshayeb, Malak Baslyman
2023 conf
REFSQ Workshops
Mashail N. Alkhomsan, Malak Baslyman, Mohammad R. Alshayeb
2023 J jnl
J. King Saud Univ. Comput. Inf. Sci.
Mashail N. Alkhomsan, Nouf Alturayeif, Sahar Alwadei, Malak Baslyman
2022 J jnl
Enterp. Model. Inf. Syst. Archit.
Daniel Amyot, Okhaide Akhigbe, Malak Baslyman, Sepideh Ghanavati, Mahdi Ghasemi, Jameleddine Hassine, Lysanne Lessard, Gunter Mussbacher, Kai Shen, Eric Yu
2022 J jnl
IEEE Access
Malak Baslyman
2022 conf
RE Workshops
Nadeen AlAmoudi, Malak Baslyman, Motaz Ahmed
2022 J jnl
Algorithms
Malak Baslyman, Daniel Amyot, John Mylopoulos
2022 conf
RE Workshops
Mashail N. Alkhomsan, Malak Baslyman, Mohammad R. Alshayeb
2021 conf
ASE Workshops
Nouf Alturaief, Hamoud Aljamaan, Malak Baslyman
2021 J jnl
IEEE Softw.
Meira Levy, Lin Liu, Daniel Amyot, Eric S. K. Yu, Muneef Alshammari, Malak Baslyman, Elizabeth Bjarnason, Christopher Bull, Carlos Henrique C. Duarte, Eduard C. Groen, Sami Jantunen, Sylwia Kopczynska, Lysanne Lessard, Ita Richardson, Jens H. Weber, Ziqi Wei
2020 conf
MoDRE@RE
Malak Baslyman, Azzah AlGhamdi, Sarah AlMuhaysh
2019 conf
SAM
Malak Baslyman, Daniel Amyot
2019 conf
SEH@ICSE
Malak Baslyman, Daniel Amyot, Yasser Alshalahi
2017 conf
RE Workshops
Malak Baslyman, Daniel Amyot
2017 conf
MCETECH
Malak Baslyman, Basmah Almoaber, Daniel Amyot, El Mostafa Bouattane
2017 J jnl
Int. J. Heal. Inf. Syst. Informatics
Raoufeh Rezaee, Malak Baslyman, Daniel Amyot, Alain Mouttham, Rana Chreyh, Glen Geiger
2017 conf
EUSPN/ICTH
Nihan Çatal, Daniel Amyot, Wojtek Michalowski, Mounira Kezadri-Hamiaz, Malak Baslyman, Szymon Wilk, Randy Giffen
2017 conf
EUSPN/ICTH
Malak Baslyman, Basmah Almoaber, Daniel Amyot, El Mostafa Bouattane
2016 conf
eCrime
Malak Baslyman, Sonia Chiasson
2016 A conf
RE
Daniel Amyot, Amal Ahmed Anda, Malak Baslyman, Lysanne Lessard, Jean-Michel Bruel
2015 J jnl
Pers. Ubiquitous Comput.
Malak Baslyman, Raoufeh Rezaee, Daniel Amyot, Alain Mouttham, Rana Chreyh, Glen Geiger, Alan Stewart, Samer Sader
2014 conf
EUSPN/ICTH
Raoufeh Rezaee, Malak Baslyman, Daniel Amyot, Alain Mouttham, Rana Chreyh, Glen Geiger
2014 conf
EUSPN/ICTH
Malak Baslyman, Raoufeh Rezaee, Daniel Amyot, Alain Mouttham, Rana Chreyh, Glen Geiger
redb/extractors/pe_extractors/pe_overlay.py
← Index redb/extractors/pe_extractors/pe_overlay.py python
from hashlib import md5, sha1, sha256
import inspect
from datetime import datetime, timezone
from typing import Any

import magic
from magika import Magika

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


class PEOverlayExtractor(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_overlay"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_pe_overlay(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        overlay = self.pe.get_overlay()
        if overlay:
            return PEOverlay(
                _id=sha256(overlay).hexdigest(),
                overlay_size=len(overlay),
                overlay_entropy=self.calculate_entropy(overlay),
                overlay_offset=self.pe.get_overlay_data_start_offset(),
                overlay_mimetype=magic.from_buffer(overlay, mime=True),
                overlay_type=magic.from_buffer(overlay),
                overlay_magika=Magika().identify_bytes(overlay).output.ct_label,
                overlay_sha256=sha256(overlay).hexdigest(),
                overlay_sha1=sha1(overlay).hexdigest(),
                overlay_md5=md5(overlay).hexdigest(),
            )
        return None

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            overlay = self._extract_pe_overlay()
            # self.export_to_elastic([overlay])  # Let the exporters handle this
            return overlay
        except Exception as e:
            self.log.error(f"Error extracting PE overlay: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            overlay = self.extract()
            if overlay is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            data.append([
                self.sha256,              # sha256
                self.md5,                 # md5
                self.sha1,                # sha1
                overlay.overlay_size,     # overlay_size
                overlay.overlay_entropy,  # overlay_entropy
                overlay.overlay_offset,   # overlay_offset
                overlay.overlay_mimetype, # overlay_mimetype
                overlay.overlay_type,     # overlay_type
                overlay.overlay_magika,   # overlay_magika
                overlay.overlay_sha256,   # overlay_sha256
                overlay.overlay_sha1,     # overlay_sha1
                overlay.overlay_md5,      # overlay_md5
                current_time             # analysis_date
            ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'overlay_size', 'overlay_entropy',
                'overlay_offset', 'overlay_mimetype', 'overlay_type', 'overlay_magika',
                'overlay_sha256', 'overlay_sha1', 'overlay_md5',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'UInt64', 'Float64', 'UInt64',
                'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(String)',
                'FixedString(64)', 'FixedString(40)', 'FixedString(32)',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

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