Weijia Han

41 papers B 1C 1Misc 2Journal 26Unranked 11
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Wirel. Commun. Lett.
Wei Teng, Hanchi Shi, Weijia Han, Weihua Wu, Xiao Ma, Kun Guo
2026 J jnl
IEEE Wirel. Commun. Lett.
Wei Teng, Weijia Han, Weihua Wu, Xiao Ma, Kun Guo
2025 J jnl
IEEE Trans. Mob. Comput.
Weijia Han, Chuan Huang, Yanjie Dong, Yangyingzi Zhang, Yuxiang Yue, Wei Teng
2025 J jnl
IEEE Internet Things J.
Liang Wang, Qiong Bai, Yuan Zhang, Weijia Han, Wenqing Sun
2025 conf
VTC2025-Spring
Weijia Han, Yujia Wang, Nan Zhao, Caifeng Qiao, Xiao Ma, Xiangren Xin
2025 J jnl
IEEE Internet Things J.
Yangyingzi Zhang, Weijia Han, Yanjie Dong, Xiao Ma, Victor C. M. Leung
2023 J jnl
CoRR
Weihua Wu, Peng Wang, Yuan Zhang, Weijia Han, He Yi, Tony Q. S. Quek
2023 J jnl
IEEE Trans. Veh. Technol.
Weijia Han, Xiao Ma, Liang Wang, Xijun Wang, Leifang Hui
2023 conf
ICCC Workshops
Weijia Han, Yangyingzi Zhang, Yanan Chong, Hu Wang, Zihao Li, Wei He, Xiao Ma
2022 conf
VTC Fall
Weijia Han, Fengsen Chen, Xiao Ma, Chao Xu
2022 J jnl
Symmetry
Yu Wang, Weijia Han, Xiao Ma, Qiuzhi Wang, Fengsen Chen
2022 J jnl
IEEE Trans. Wirel. Commun.
Weijia Han, Xiao Ma, Xijun Wang, Di Tang, Yan Zhang
2021 J jnl
IEICE Electron. Express
Weijia Han, Yongsheng Wang, Jinxiang Wang
2021 J jnl
Microelectron. J.
Weijia Han, Yongsheng Wang, Jinxiang Wang
2021 J jnl
IEEE Trans. Veh. Technol.
Weijia Han, Xiao Ma, Di Tang, Nan Zhao
2020 conf
INFOCOM Workshops
Di Tang, Jian Gu, Weijia Han, Xiao Ma
2018 Misc conf
ICNC
Di Tang, Jian Gu, You Yu, Yuanyuan Yang, Weijia Han, Xiao Ma
2018 conf
ICCC Workshops
Weijia Han, Yu Wang, Di Tang, Ronghui Hou, Xiao Ma
2017 Misc conf
ICNC
Di Tang, Jian Gu, Weijia Han, Xiao Ma
2017 J jnl
IEEE J. Sel. Areas Commun.
Weijia Han, Chuan Huang, Jiandong Li, Xiao Ma, Liang Wang
2017 J jnl
IEEE Trans. Veh. Technol.
Weijia Han, Huiyan Sang, Xiao Ma, Jiandong Li, Yanyan Zhang, Shuguang Cui
2016 J jnl
IEEE J. Sel. Areas Commun.
Weijia Han, Yan Zhang, Xijun Wang, Jiandong Li, Min Sheng, Xiao Ma
2016 C conf
ICCC
Weijia Han, Xiao Ma
2015 J jnl
IEEE J. Sel. Areas Commun.
Weijia Han, Chuan Huang, Jiandong Li, Zan Li, Shuguang Cui
2015 conf
ICC
Weijia Han, Huiyan Sang, Min Sheng, Jiandong Li, Shuguang Cui
2015 conf
ICC Workshops
Yanting Wang, Min Sheng, Xijun Wang, Liang Wang, Weijia Han, Yan Zhang, Yan Shi
2015 J jnl
IEEE Trans. Signal Process.
Yanyan Zhang, Weijia Han, Di Li, Ping Zhang, Shuguang Cui
2015 J jnl
CoRR
Yanyan Zhang, Weijia Han, Di Li, Ping Zhang, Shuguang Cui
2015 conf
ICC Workshops
Yanyan Zhang, Weijia Han, Di Li, Ping Zhang, Shuguang Cui
2015 J jnl
IEEE Wirel. Commun.
Min Sheng, Weijia Han, Chuan Huang, Jiandong Li, Shuguang Cui
2014 J jnl
CoRR
Weijia Han, Huiyan Sang, Min Sheng, Jiandong Li, Shuguang Cui
2014 J jnl
IEEE Trans. Commun.
Min Sheng, Chao Xu, Xijun Wang, Yan Zhang, Weijia Han, Jiandong Li
2013 J jnl
IEEE Trans. Signal Process.
Weijia Han, Jiandong Li, Zan Li, Jiangbo Si, Yan Zhang
2013 J jnl
IEEE Trans. Signal Process.
Weijia Han, Jiandong Li, Zan Li, Jiangbo Si, Yan Zhang
2013 conf
GlobalSIP
Zhe Sun, Weijia Han, Zan Li, Yan Zhang, Meilu Lin
2013 conf
GlobalSIP
Weijia Han, Jiandong Li, Shuguang Cui
2012 conf
ICC
Leifang Hui, Jiandong Li, Weijia Han
2011 J jnl
IEEE Trans. Wirel. Commun.
Weijia Han, Jiandong Li, Zhi Tian, Yan Zhang
2011 J jnl
IEEE Commun. Lett.
Weijia Han, Jiandong Li, Qin Liu, Linjing Zhao
2010 J jnl
IEEE Trans. Wirel. Commun.
Weijia Han, Jiandong Li, Zhi Tian, Yan Zhang
2008 B conf
PIMRC
Weijia Han, Jiandong Li, Zhao Li, Junliang Yao, Dong Chen
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"