Weihao Liu

30 papers A* 1B 2Misc 2Journal 16Unranked 9
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Weihao Liu, Dehai Min, Lu Cheng
2025 J jnl
CoRR
Weihao Liu, Ning Wu, Shiping Yang, Wenbiao Ding, Shining Liang, Ming Gong, Dongmei Zhang
2025 B conf
COLING
Weihao Liu, Ning Wu, Wenbiao Ding, Shining Liang, Ming Gong, Dongmei Zhang
2025 J jnl
IEEE Wirel. Commun. Lett.
Weihao Liu, Zhiwei Chen, Junliang Ye, Xiaohu Ge
2025 J jnl
CoRR
Zicong He, Boxuan Zhang, Weihao Liu, Ruixiang Tang, Lu Cheng
2024 conf
LREC/COLING
Feng Jiang, Weihao Liu, Xiaomin Chu, Peifeng Li, Qiaoming Zhu, Haizhou Li
2024 conf
ACL (1)
Yanming Liu, Xinyue Peng, Tianyu Du, Jianwei Yin, Weihao Liu, Xuhong Zhang
2024 J jnl
CoRR
Yanming Liu, Xinyue Peng, Tianyu Du, Jianwei Yin, Weihao Liu, Xuhong Zhang
2024 J jnl
CoRR
Tongxu Luo, Jiahe Lei, Fangyu Lei, Weihao Liu, Shizhu He, Jun Zhao, Kang Liu
2024 conf
ITSC
Hongyu Song, Wei ShangGuan, Weihao Liu, Weizhi Qiu, Junjie Chen, Baigen Cai, Yongqiang Liu
2024 conf
ACL (Findings)
Yanming Liu, Xinyue Peng, Xuhong Zhang, Weihao Liu, Jianwei Yin, Jiannan Cao, Tianyu Du
2024 J jnl
CoRR
Yanming Liu, Xinyue Peng, Xuhong Zhang, Weihao Liu, Jianwei Yin, Jiannan Cao, Tianyu Du
2024 conf
PRICAI (2)
Yanming Liu, Xinyue Peng, Jiannan Cao, Le Dai, Xingzu Liu, Ruilin Nong, Weihao Liu, Songhang Deng
2024 J jnl
CoRR
Yanming Liu, Xinyue Peng, Jiannan Cao, Le Dai, Xingzu Liu, Weihao Liu, Mingbang Wang
2024 J jnl
CoRR
Weihao Liu, Ning Wu, Wenbiao Ding, Shining Liang, Ming Gong, Dongmei Zhang
2023 conf
ICDAR (1)
Weihao Liu, Feng Jiang, Yaxin Fan, Xiaomin Chu, Peifeng Li, Qiaoming Zhu
2023 J jnl
CoRR
Feng Jiang, Weihao Liu, Xiaomin Chu, Peifeng Li, Qiaoming Zhu, Haizhou Li
2023 B conf
IJCNN
Weihao Liu, Yaxin Fan, Xiaomin Chu, Peifeng Li, Qiaoming Zhu
2023 J jnl
CoRR
Tongxu Luo, Fangyu Lei, Jiahe Lei, Weihao Liu, Shizhu He, Jun Zhao, Kang Liu
2023 J jnl
CoRR
Weihao Liu, Fangyu Lei, Tongxu Luo, Jiahe Lei, Shizhu He, Jun Zhao, Kang Liu
2023 A* conf
ICCV
Hao Yu, Xu Cheng, Wei Peng, Weihao Liu, Guoying Zhao
2023 J jnl
CoRR
Hao Yu, Xu Cheng, Wei Peng, Weihao Liu, Guoying Zhao
2023 J jnl
CoRR
Fangyu Lei, Tongxu Luo, Pengqi Yang, Weihao Liu, Hanwen Liu, Jiahe Lei, Yiming Huang, Yifan Wei, Shizhu He, Jun Zhao, Kang Liu
2022 conf
PRICAI (2)
Longwang He, Feng Jiang, Xiaoyi Bao, Yaxin Fan, Weihao Liu, Peifeng Li, Xiaomin Chu
2021 conf
CSDM Asia / CSDM
Weihao Liu, Yuqiang Guo, Qipeng Chen, Hui Zhao
2021 conf
AIAM (ACM)
Weihao Liu, Gaofeng Ren, Fucheng Wang, Qiguang Duan, Qingfeng Liu, Zhongchun Hu
2014 Misc conf
ACSSC
Weihao Liu, Zhengyuan Xu
2014 J jnl
Wirel. Pers. Commun.
Weihao Liu, Xuefei Liao, Yong Bai
2012 Misc conf
WISA
Jie Zhang, Xuerui Ma, Weihao Liu, Yong Bai
2012 J jnl
Sci. China Inf. Sci.
Renbin Zhong, Jun Zhou, Weihao Liu, Shenggang Liu
redb/extractors/pe_extractor.py
← Index redb/extractors/pe_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

import magic
import pefile
from dotnetfile import DotNetPE

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class PEExtractor(Extractor, metaclass=ABCMeta):

    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
        )
        self.pe = pe if pe else self._generate_pefile_object()
        self.dotnet = None

    def _generate_pefile_object(self):
        pe = None
        try:
            pe = pefile.PE(self.filepath)
            if not pe:
                raise pefile.PEFormatError("Empty file?")
        except pefile.PEFormatError as e:
            self.log.error(f"Format error {self.hash.sha256} Full error : {e}")
        return pe

    def _generate_dotnetfile_object(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        dotnet = None
        error = None
        try:
            dotnet = DotNetPE(self.filepath)
            if not dotnet:
                raise Exception("Empty file?")
        except Exception as e:
            self.log.error(
                f"Format error dotnet file {self.hash.sha256} Full error : {e}"
            )
            error = e
        return dotnet, error

    def _check_dotnet(self):
        try:
            file_type = magic.from_buffer(self.binary)
            if ".Net" in file_type:
                return True
            for entry in self.pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                if (
                    entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                    and entry.Size > 0
                ):
                    return True
            return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def _is_signed(self):
        address = self.pe.OPTIONAL_HEADER.DATA_DIRECTORY[
            pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
        ].VirtualAddress
        if address == 0:
            return False
        return True

    def _has_overlay(self):
        return bool(self.pe.get_overlay())