Ceyhun Eksin

76 papers B 1C 2Misc 8Journal 41Unranked 24
YearRankTypeTitle / Venue / Authors
2025 conf
CDC
Soham Das, Luiz F. O. Chamon, Santiago Paternain, Ceyhun Eksin
2025 conf
IEEECONF
Khaled Nakhleh, Sarper Aydin, Ceyhun Eksin, Sabit Ekin
2025 J jnl
CoRR
Soham Das, Santiago Paternain, Luiz F. O. Chamon, Ceyhun Eksin
2024 J jnl
CoRR
Sarper Aydin, Ceyhun Eksin
2024 J jnl
SIAM J. Control. Optim.
Soham Das, Ceyhun Eksin
2024 J jnl
IEEE Control. Syst. Lett.
Soham Das, Ceyhun Eksin
2024 J jnl
IEEE Trans. Autom. Control.
Furkan Sezer, Hossein Khazaei, Ceyhun Eksin
2024 J jnl
CoRR
Khaled Nakhleh, Ceyhun Eksin, Sabit Ekin
2023 J jnl
IEEE Trans. Control. Syst. Technol.
Sarper Aydin, Ceyhun Eksin
2023 Misc conf
ICASSP
Sarper Aydin, Ceyhun Eksin
2023 conf
CDC
Sarper Aydin, Ceyhun Eksin
2023 conf
L4DC
Sarper Aydin, Ceyhun Eksin
2023 J jnl
CoRR
Furkan Sezer, Ceyhun Eksin
2023 J jnl
IEEE Control. Syst. Lett.
Furkan Sezer, Ceyhun Eksin
2023 C conf
ACC
Keith Paarporn, Ceyhun Eksin
2022 J jnl
CoRR
Hossein Khazaei, Ceyhun Eksin, Roohallah Khatami, Alfredo García
2022 conf
CDC
Soham Das, Ceyhun Eksin
2022 J jnl
CoRR
Soham Das, Ceyhun Eksin
2022 conf
CDC
Sarper Aydin, Sina Arefizadeh, Ceyhun Eksin
2022 J jnl
CoRR
Sarper Aydin, Sina Arefizadeh, Ceyhun Eksin
2022 J jnl
IEEE Control. Syst. Lett.
Sarper Aydin, Sina Arefizadeh, Ceyhun Eksin
2022 J jnl
Autom.
Sarper Aydin, Ceyhun Eksin
2022 J jnl
Autom.
Lingzhou Hong, Alfredo García, Ceyhun Eksin
2022 J jnl
CoRR
Furkan Sezer, Ceyhun Eksin
2022 J jnl
IEEE Control. Syst. Lett.
Furkan Sezer, Ceyhun Eksin
2021 conf
ACSCC
Sarper Aydin, Sina Arefizadeh, Ceyhun Eksin
2021 J jnl
CoRR
Sarper Aydin, Sina Arefizadeh, Ceyhun Eksin
2021 J jnl
CoRR
Sarper Aydin, Ceyhun Eksin
2021 conf
CDC
Hossein Khazaei, Keith Paarporn, Alfredo García, Ceyhun Eksin
2021 J jnl
CoRR
Furkan Sezer, Hossein Khazaei, Ceyhun Eksin
2020 conf
CCTA
Sarper Aydin, Ceyhun Eksin
2020 J jnl
IEEE Trans. Control. Netw. Syst.
Ceyhun Eksin, Keith Paarporn
2020 conf
CDC
Sarper Aydin, Ceyhun Eksin
2020 J jnl
CoRR
Sarper Aydin, Ceyhun Eksin
2020 conf
CDC
Lingzhou Hong, Alfredo García, Ceyhun Eksin
2019 conf
CDC
Ceyhun Eksin
2019 J jnl
CoRR
Lingzhou Hong, Alfredo García, Ceyhun Eksin
2019 Misc conf
ACSSC
Sina Arefizadeh, Ceyhun Eksin
2019 J jnl
CoRR
Sina Arefizadeh, Ceyhun Eksin
2018 J jnl
CoRR
Ceyhun Eksin, Keith Paarporn
2018 J jnl
IEEE Trans. Smart Grid
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2018 J jnl
IEEE Trans. Autom. Control.
Ceyhun Eksin, Alejandro Ribeiro
2018 J jnl
IEEE Trans. Autom. Control.
Brian Swenson, Ceyhun Eksin, Soummya Kar, Alejandro Ribeiro
2018 Misc conf
ACSSC
Keith Paarporn, Ceyhun Eksin
2018 conf
CDC
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Yorai Wardi
2018 J jnl
CoRR
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Yorai Wardi
2017 J jnl
IEEE Trans. Comput. Soc. Syst.
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Jeff S. Shamma
2016 J jnl
CoRR
Ceyhun Eksin, Jeff S. Shamma, Joshua S. Weitz
2016 J jnl
CoRR
Ceyhun Eksin, Alejandro Ribeiro
2016 conf
GlobalSIP
Ceyhun Eksin, Alejandro Ribeiro
2016 J jnl
CoRR
Brian Swenson, Ceyhun Eksin, Soummya Kar, Alejandro Ribeiro
2016 conf
CDC
Ceyhun Eksin, Brian Swenson, Soummya Kar, Alejandro Ribeiro
2016 J jnl
Oper. Res.
Pooya Molavi, Ceyhun Eksin, Alejandro Ribeiro, Ali Jadbabaie
2016 J jnl
CoRR
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Jeff S. Shamma
2016 conf
CDC
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Jeff S. Shamma
2015 conf
ECC
Ceyhun Eksin, Ali Hooshmand, Ratnesh K. Sharma
2015 J jnl
IEEE Trans. Smart Grid
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2015 J jnl
CoRR
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2015 conf
CDC
Ceyhun Eksin, Alejandro Ribeiro
2015 conf
Allerton
Keith Paarporn, Ceyhun Eksin, Joshua S. Weitz, Jeff S. Shamma
2015 Misc conf
ICASSP
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2015 C conf
ACC
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2014 J jnl
IEEE Trans. Signal Process.
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2014 Misc conf
ICASSP
Ceyhun Eksin, Hakan Deliç, Alejandro Ribeiro
2014 Misc conf
ICASSP
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2013 J jnl
CoRR
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2013 Misc conf
ICASSP
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2013 conf
EUSIPCO
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2013 J jnl
IEEE Signal Process. Mag.
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2013 conf
CDC
Pooya Molavi, Ceyhun Eksin, Alejandro Ribeiro, Ali Jadbabaie
2012 J jnl
IEEE Trans. Signal Process.
Ceyhun Eksin, Alejandro Ribeiro
2012 conf
ACSCC
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2012 Misc conf
ICASSP
Ceyhun Eksin, Alejandro Ribeiro
2012 conf
Allerton Conference
Ceyhun Eksin, Pooya Molavi, Alejandro Ribeiro, Ali Jadbabaie
2012 B conf
ITS
Benjamin Nye, Gnana Bharathy, Barry G. Silverman, Ceyhun Eksin
2011 conf
ACSCC
Ceyhun Eksin, Alejandro Ribeiro
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"