Maher E. Rizkalla

57 papers B 1C 16Misc 5Journal 15Unranked 20
YearRankTypeTitle / Venue / Authors
2025 J jnl
Circuits Syst. Signal Process.
Linknath Surya Balasubramanian, Elijah Racz, Anoop Gopinath, Maher E. Rizkalla, John J. Lee, Trond Ytterdal, Mukesh Kumar
2024 C conf
ISCAS
Haitham M. Kanakri, Euzeli Cipriano dos Santos, Maher E. Rizkalla
2024 conf
MWSCAS
Elijah Racz, Arthur Thomas, Maher E. Rizkalla, Trond Ytterdal, John J. Lee
2023 conf
ICIT
Haitham M. Kanakri, Euzeli Cipriano dos Santos, Maher E. Rizkalla
2023 C conf
ISCAS
Haitham M. Kanakri, Maher E. Rizkalla, Euzeli Cipriano dos Santos
2023 conf
MWSCAS
Anoop Gopinath, Trond Ytterdal, Avinash Yadav, John J. Lee, Maher E. Rizkalla, Mukesh Kumar
2023 conf
MWSCAS
Linknath Surya Balasubramanian, Maher E. Rizkalla, Jaehwan Lee, Trond Ytterdal, Mukesh Kumar
2022 J jnl
Internet Things
Mohammad Moshiur Rahman, Gahangir Hossain, Rajab Challoo, Maher E. Rizkalla
2021 C conf
ISCAS
George Mekhael, Nathaniel Morgan, Mounica Patnala, Trond Ytterdal, Maher E. Rizkalla
2021 conf
MWSCAS
Nikhil Advaith Gudala, Trond Ytterdal, John J. Lee, Maher E. Rizkalla
2021 J jnl
Genom. Proteom. Bioinform.
Zhi Huang, Zhi Han, Tongxin Wang, Wei Shao, Shunian Xiang, Paul Salama, Maher E. Rizkalla, Kun Huang, Jie Zhang
2020 conf
MWSCAS
Kyle Whittaker, Maher E. Rizkalla, Trond Ytterdal
2020 C conf
ISCAS
Zachary Cochran, Trond Ytterdal, Akul Madan, Maher E. Rizkalla
2019 C conf
FIE
Seemein Shayesteh, Zachary Cochran, Raj Dhavalikar, Ian Huelsman, Akul Madan, Taylor Peters, Ahmed Yago, Grant Wible, Maher E. Rizkalla
2018 C conf
FIE
Seemein Shayesteh, Maryam Rahmani, Lauren A. Christopher, Maher E. Rizkalla
2018 conf
MWSCAS
Neeraj Rathi, Monika Kakani, Maher E. Rizkalla, Mohamed El-Sharkawy
2017 C conf
FIE
Justin L. Hess, Anthony Chase, Dan Minner, Maher E. Rizkalla, Mangilal Agarwal
2017 C conf
FIE
Mohamed El-Sharkawy, Seemein Shayesteh, Maher E. Rizkalla
2017 conf
MWSCAS
Neeraj Rathi, Ashok Kumar Thella, Monika Kakani, Maher E. Rizkalla
2016 conf
MIAR
Mark Inlow, Shan Cong, Shannon L. Risacher, John D. West, Maher E. Rizkalla, Paul Salama, Andrew J. Saykin, Li Shen
2016 conf
MWSCAS
Shan Cong, Maher E. Rizkalla, Paul Salama, Shannon L. Risacher, John D. West, Yu-Chien Wu, Liana G. Apostolova, Eileen F. Tallman, Andrew J. Saykin, Li Shen
2016 C conf
FIE
Mangilal Agarwal, Brandon Sorge, Grant Fore, Dan Minner, Charles Feldhaus, Maher E. Rizkalla
2015 C conf
FIE
Mangilal Agarwal, Qurat-ul-Ann Mirza, Joseph Bondi, Brandon Sorge, Maher E. Rizkalla, Richard Ward, Corbin Feldhaus, Amy Hinshaw, Kody Varahramyan
2015 C conf
FIE
Maher E. Rizkalla, Mangilal Agarwal
2015 conf
MWSCAS
Shan Cong, Maher E. Rizkalla, Paul Salama, John D. West, Shannon L. Risacher, Andrew J. Saykin, Li Shen
2014 conf
MWSCAS
Alfredo Lopez-Yunez, Diana Vasquez, Luis A. Palacio, Nikhil Tiwari, Vinay Kumar Suryadevara, Mobin Anandwala, Maher E. Rizkalla
2014 conf
MWSCAS
Shan Cong, Maher E. Rizkalla, Eliza Y. Du, John D. West, Shannon L. Risacher, Andrew J. Saykin, Li Shen
2013 conf
MWSCAS
Romil Verma, K. Said, J. Salim, E. Kimathi, Maher E. Rizkalla, Sudhir Shrestha, Mangilal Agarwal, Kody Varahramyan
2013 conf
MWSCAS
Penghua Sun, Maher E. Rizkalla
2012 conf
MWSCAS
Ajay Kumar Bandi, Maher E. Rizkalla, Paul Salama
2012 J jnl
IET Inf. Secur.
An Feng, Michael Knieser, Maher E. Rizkalla, Brian King, Paul Salama, Francis Bowen
2010 J jnl
J. Softw. Eng. Appl.
Alon Hayim, Michael Knieser, Maher E. Rizkalla
2010 J jnl
J. Softw. Eng. Appl.
Mohamed Nasr Haggag, Mohamed El-Sharkawy, Gamal Fahmy, Maher E. Rizkalla
2010 J jnl
Circuits Syst.
Michael Tammen, Mohamed El-Sharkawy, Hisham Sliman, Maher E. Rizkalla
2010 J jnl
Wirel. Sens. Netw.
Rondia Mack, Maher E. Rizkalla, Paul Salama, Mohamed El-Sharkawy
2009 conf
IPCV
Mohammad Afaneh, Jeff Mulligan, Mohamed El-Sharkawy, Maher E. Rizkalla
2009 conf
IPCV
Hisham Sliman, Mohamed El-Sharkawy, Maher E. Rizkalla, Paul Salama, Salwa El-Ramly
2009 J jnl
J. Signal Process. Syst.
Robert Meagher, Modukuri Sushmitha, Maher E. Rizkalla, Paul Salama, Mohamed El-Sharkawy
2008 J jnl
IEEE Trans. Biomed. Eng.
Ahdy Helmy, Michael Holdmann, Maher E. Rizkalla
2008 Misc conf
CATA
Amer Ibrahim, Dan Chappell, Mohamed El-Sharkawy, Dongsoo Kim, Maher E. Rizkalla
2007 C conf
IPAS
Francis Ryals Bowen, Yingzi Du, Shuo Li, Yi Jiang, Tommy Nantung, Samy Noureldin, Michael Knieser, Maher E. Rizkalla
2007 J jnl
J. VLSI Signal Process.
Maher E. Rizkalla, Paul Salama, Mohamed El-Sharkawy, Modukuri Sushmitha
2006 Misc conf
CATA
Manjari Mishra, Mohamed El-Sharkawy, Maher E. Rizkalla, Paul Salama
2006 J jnl
J. VLSI Signal Process.
Paul Salama, Maher E. Rizkalla, Michael Eckbauer
2002 B conf
FUZZ-IEEE
Akhouri S. C. Sinha, Ramana Pidaparti, Maher E. Rizkalla, Mohamed A. El-Sharkawy
2002 Misc conf
CATA
Maher E. Rizkalla, Mark M. Budnik, Mohamed El-Sharkawy, Akhouri S. C. Sinha, Harry C. Gundrum
2002 Misc conf
CATA
Maher E. Rizkalla, Mark M. Budnik, Mohamed El-Sharkawy, Akhouri S. C. Sinha, Harry C. Gundrum
2002 Misc conf
CATA
Maher E. Rizkalla, Ebtsam R. Rizkalla, Harry C. Gundrum
2000 C conf
ACC
Sergey Edward Lyshevski, A. S. C. Sinha, Maher E. Rizkalla, Mohamed El-Sharkawy, Alexander I. Nazarov, Peter C. Cho, William Wylam, Jerry Mitchell, Milo Friesen
2000 C conf
ACC
Sergey Edward Lyshevski, Alexander I. Nazarov, Ahmed El-Antably, Akhouri S. C. Sinha, Maher E. Rizkalla, Mohamed El-Sharkawy
2000 C conf
ACC
Sergey Edward Lyshevski, Arpita S. C. Sinha, Maher E. Rizkalla
1997 J jnl
Int. J. Syst. Sci.
Akhouri S. C. Sinha, Mohamed El-Sharkawy, Maher E. Rizkalla
1996 conf
Great Lakes Symposium on VLSI
Maher E. Rizkalla, Richard L. Aldridge, Nadeem A. Khan, Harry C. Gundrum
1996 J jnl
Int. J. Syst. Sci.
Akhouri S. C. Sinha, Mohamed A. El-Sharkawy, Maher E. Rizkalla, David A. Suzuki
1996 conf
ICECS
Harry C. Gundrum, Maher E. Rizkalla
1994 J jnl
J. Circuits Syst. Comput.
David A. Brown, Maher E. Rizkalla
1993 C conf
ISCAS
Miklos T. Kara, Maher E. Rizkalla
redb/extractors/pe_extractors/pe_sections.py
← Index redb/extractors/pe_extractors/pe_sections.py python
import base64
import hashlib
import inspect
from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PESection
from datetime import datetime, timezone
from typing import Any


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

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

    def _extract_sections(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        sections = []
        for section in self.pe.sections:
            try:
                name = self.process_binary_string(section.Name)
            except Exception as e:
                name = "UnableToDecode"
                self.log.warning(
                    f'Unable to store section Name "{section.Name}" for {self.hash.sha256}'
                    f" exception {e}"
                )
            sec_sha256 = section.get_hash_sha256()
            sec_md5 = section.get_hash_md5()
            # sec_entropy = "%.2f" % section.get_entropy()
            sec_entropy = section.get_entropy()
            pe_section = PESection(
                _id=hashlib.sha256(
                    name.encode()
                ).hexdigest(),  # usecase 8e035beb02a411f8a9e92d4cf184ad34f52bbd0a81a50c222cdd4706e4e45104, all section have same sha256
                section_name=name,
                section_name_b64=base64.b64encode(
                    section.Name.rstrip(b'\x00')
                ).decode(),  # base64.b64decode(b64) to decode
                section_v_addr=section.VirtualAddress,
                section_v_addr_hex=hex(section.VirtualAddress),
                section_v_size=section.Misc_VirtualSize,
                section_size=section.SizeOfRawData,
                section_pointer_to_raw_data=hex(section.PointerToRawData),
                section_md5=sec_md5,
                section_sha256=sec_sha256,
                section_entropy=sec_entropy,
            )
            sections.append(pe_section)
        return sections

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

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            sections = self.extract()
            if sections is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            for section in sections:
                data.append([
                    self.sha256,                          # sha256
                    self.md5,                             # md5
                    self.sha1,                            # sha1
                    section.section_name,                 # section_name
                    section.section_name_b64,             # section_name_b64
                    section.section_entropy,              # section_entropy
                    section.section_sha256,               # section_sha256
                    section.section_md5,                  # section_md5
                    section.section_size,                 # section_size
                    section.section_v_addr,               # section_v_addr
                    section.section_v_size,               # section_v_size
                    int(section.section_pointer_to_raw_data, 16),  # section_pointer_to_raw_data - convert from hex
                    current_time                          # analysis_date
                ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'section_name', 'section_name_b64',
                'section_entropy', 'section_sha256', 'section_md5', 'section_size',
                'section_v_addr', 'section_v_size', 'section_pointer_to_raw_data',
                'analysis_date'
            ]
            
            if not data:
                return None

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

            return (data, column_names, column_type_names)

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