Haiyan Cen

35 papers C 1Journal 32Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
Comput. Electron. Agric.
Ziheng Feng, Ke Wu, Bo Xu, Haiyan Cen, Yuan Zhang, Xiangtai Jiang, Hanyu Xue, Heguang Sun, Hao Yang, Haikuan Feng, Huiling Long, Xingang Xu, Yuanyuan Fu, Changbin Liu, Xiangyuan Wan, Guijun Yang
2025 J jnl
Comput. Electron. Agric.
Yutao Shen, Hongyu Zhou, Xin Yang, Xuqi Lu, Ziyue Guo, Lixi Jiang, Yong He, Haiyan Cen
2025 J jnl
Comput. Electron. Agric.
Alwaseela Abdalla, Yueming Zhu, Fangfang Qu, Haiyan Cen
2025 J jnl
CoRR
Xin Yang, Ruiming Du, Hanyang Huang, Jiayang Xie, Pengyao Xie, Leisen Fang, Ziyue Guo, Nanjun Jiang, Yu Jiang, Haiyan Cen
2025 J jnl
CoRR
Ziyue Guo, Xin Yang, Yutao Shen, Yang Zhu, Lixi Jiang, Haiyan Cen
2025 J jnl
Comput. Electron. Agric.
Pengyao Xie, Leisen Fang, Yong He, Haiyan Cen
2024 J jnl
CoRR
Yutao Shen, Hongyu Zhou, Xin Yang, Xuqi Lu, Ziyue Guo, Lixi Jiang, Yong He, Haiyan Cen
2024 J jnl
IEEE Trans. Geosci. Remote. Sens.
Alwaseela Abdalla, Mengqi Lyu, Marye Belete, Haiyan Cen
2024 J jnl
Comput. Electron. Agric.
Zhaoyu Rui, Zhao Zhang, Man Zhang, Afshin Azizi, C. Igathinathane, Haiyan Cen, Stavros Vougioukas, Haigang Li, J. Zhang, Y. Jiang, X. Jiao, M. Wang, Yiannis Ampatzidis, O. I. Oladele, Mahdi Ghasemi-Varnamkhasti, Radi
2024 J jnl
Remote. Sens.
Yu-an Zhou, Zichen Huang, Weijun Zhou, Haiyan Cen
2024 J jnl
CoRR
Xin Yang, Xuqi Lu, Pengyao Xie, Ziyue Guo, Hui Fang, Haowei Fu, Xiaochun Hu, Zhenbiao Sun, Haiyan Cen
2023 J jnl
Comput. Electron. Agric.
Shuobo Chen, Li Zhai, Yu-an Zhou, Jiayang Xie, Yiwen Shao, Wen Wang, Hongye Li, Yong He, Haiyan Cen
2023 J jnl
CoRR
Pengyao Xie, Zhihong Ma, Ruiming Du, Mengqi Lv, Yutao Shen, Xuqi Lu, Jiangpeng Zhu, Haiyan Cen
2023 J jnl
Comput. Electron. Agric.
Sashuang Sun, Lijun Zhu, Ning Liang, Yiyin He, Zhao Wang, Si Chen, Jiangang Liu, Haiyan Cen, Yong He, Zhenjiang Zhou
2023 J jnl
Comput. Electron. Agric.
Liang Wan, Yufei Liu, Yong He, Haiyan Cen
2023 J jnl
Comput. Electron. Agric.
Li Zhai, Alwaseela Abdalla, Dawei Sun, Yu-an Zhou, Weijun Zhou, Haiyan Cen
2023 J jnl
Comput. Electron. Agric.
Bo Xu, Xiangyuan Wan, Hao Yang, Haikuan Feng, Yuanyuan Fu, Haiyan Cen, Binbin Wang, Zhoufeng Zhang, Siyuan Li, Chunjiang Zhao, Guijun Yang
2022 J jnl
Comput. Electron. Agric.
Sashuang Sun, Zhiyu Zuo, Wenjun Yue, Julien Morel, David Parsons, Jian Liu, Junxiang Peng, Haiyan Cen, Yong He, Jiang Shi, Xiaolong Li, Zhenjiang Zhou
2022 J jnl
Comput. Electron. Agric.
Ahmed El-manawy, Dawei Sun, Alwaseela Abdalla, Yueming Zhu, Haiyan Cen
2022 J jnl
CoRR
Ruiming Du, Zhihong Ma, Pengyao Xie, Haiyan Cen, Yong He
2021 J jnl
Remote. Sens.
Fa Zhao, Guijun Yang, Xiaodong Yang, Haiyan Cen, Yaohui Zhu, Shaoyu Han, Hao Yang, Yong He, Chunjiang Zhao
2021 J jnl
IEEE Trans. Ind. Informatics
Alwaseela Abdalla, Haiyan Cen, Liang Wan, Khalid Mehmood, Yong He
2021 J jnl
Sensors
Zhihong Ma, Dawei Sun, Haixia Xu, Yueming Zhu, Yong He, Haiyan Cen
2021 J jnl
Comput. Electron. Agric.
Liang Wan, Jiafei Zhang, Xiaoya Dong, Xiaoyue Du, Jiangpeng Zhu, Dawei Sun, Yufei Liu, Yong He, Haiyan Cen
2020 J jnl
Comput. Electron. Agric.
Zhao Zhang, C. Igathinathane, J. Li, Haiyan Cen, Y. Lu, Joao Paulo Flores
2019 J jnl
Comput. Electron. Agric.
Yanchao Zhang, Junfeng Gao, Haiyan Cen, Yongliang Lu, Xiaoyue Yu, Yong He, Jan G. Pieters
2019 J jnl
Remote. Sens.
Alwaseela Abdalla, Haiyan Cen, Elfatih M. Abdel-Rahman, Liang Wan, Yong He
2019 J jnl
Comput. Electron. Agric.
Alwaseela Abdalla, Haiyan Cen, Liang Wan, Reem Rashid, Haiyong Weng, Weijun Zhou, Yong He
2019 J jnl
Comput. Electron. Agric.
Alwaseela Abdalla, Haiyan Cen, Ahmed El-manawy, Yong He
2019 J jnl
Sensors
Dawei Sun, Yueming Zhu, Haixia Xu, Yong He, Haiyan Cen
2018 J jnl
Remote. Sens.
Liang Wan, Yijian Li, Haiyan Cen, Jiangpeng Zhu, Wenxin Yin, Weikang Wu, Hongyan Zhu, Dawei Sun, Weijun Zhou, Yong He
2018 J jnl
Comput. Electron. Agric.
Yanchao Zhang, Yijian Li, Yong He, Fei Liu, Haiyan Cen, Hui Fang
2009 conf
ICNC (3)
Chunhua Jin, Haiyan Cen, Fei Liu, Yong He
2006 C conf
ADMA
Haiyan Cen, Yidan Bao, Min Huang, Yong He
2006 conf
SSPR/SPR
Haiyan Cen, Yidan Bao, Min Huang, Yong He
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"