Wanwei Huang

39 papers Journal 33Unranked 6
YearRankTypeTitle / Venue / Authors
2026 J jnl
Comput. Mater. Continua
Wanwei Huang, Huicong Yu, Jiawei Ren, Kun Wang, Yanbu Guo, Lifeng Jin
2026 J jnl
J. Parallel Distributed Comput.
Bo Wang, Jie Cao, Changhai Wang, Wanwei Huang, Ying Song
2025 J jnl
Future Internet
Sunan Wang, Rong Song, Xiangyu Zheng, Wanwei Huang, Hongchang Liu
2025 J jnl
Future Internet
Wanwei Huang, Huicong Yu, Yingying Li, Xi He, Rui Chen
2025 J jnl
Future Internet
Wanwei Huang, Hongchang Liu, Yingying Li, Linlin Ma
2025 J jnl
Comput. Mater. Continua
Haiyan Sun, Chenglong Shao, Jianwei Zhang, Kun Wang, Wanwei Huang
2025 J jnl
Algorithms
Wanwei Huang, Wenqiang Gui, Yingying Li, Qingsong Lv, Jia Zhang, Xi He
2025 J jnl
J. Vis. Commun. Image Represent.
Wanwei Huang, Xuan Xie, Yu Chen, Baotu Wang, Jian Chen, Pingping Chen
2025 J jnl
PeerJ Comput. Sci.
Shizheng Zhang, Zhihao Liu, Kunpeng Wang, Wanwei Huang, Pu Li
2025 J jnl
Future Internet
Shi Kuang, Jinyu Zheng, Shilin Liang, Yingying Li, Siyuan Liang, Wanwei Huang
2025 J jnl
PeerJ Comput. Sci.
Wanwei Huang, Haobin Tian, Lei Wang, Sunan Wang, Kun Wang, Songze Li
2025 J jnl
J. Comput. Methods Sci. Eng.
Jiantao Cui, Wanwei Huang, Rui Chen, Yihua Liu, Junpeng Cao, Shilv Liu
2025 J jnl
J. Comput. Methods Sci. Eng.
Jiantao Cui, Junpeng Cao, Wanwei Huang, Zhongzhou Du
2024 J jnl
IET Commun.
Wanwei Huang, Haobin Tian, Xiaohui Zhang, Min Huang, Song Li, Yuhua Li
2024 J jnl
Sensors
Haiyan Sun, Chaoyang Li, Jianwei Zhang, Shujun Liang, Wanwei Huang
2024 J jnl
PeerJ Comput. Sci.
Wanwei Huang, Haobin Tian, Sunan Wang, Chaoqin Zhang, Xiaohui Zhang
2024 J jnl
Comput. Mater. Continua
Wanwei Huang, Qiancheng Zhang, Tao Liu, Yaoli Xu, Dalei Zhang
2023 J jnl
Concurr. Comput. Pract. Exp.
Huanlong Zhang, Yuxing Feng, Wanwei Huang, Jie Zhang, Jianwei Zhang
2023 conf
ICNCC
Wanwei Huang, Kejian Liu, Hui Li, Jiantao Cui, Huan Ma
2023 conf
ICVIP
Guoqiang Ma, Ming Chen, Wanwei Huang, Yanfei Niu
2022 J jnl
IET Commun.
Wanwei Huang, Bo Yuan, Sunan Wang, Jianwei Zhang, Junfei Li, Xiaohui Zhang
2022 J jnl
CoRR
Jianlin Su, Ahmed Murtadha, Shengfeng Pan, Jing Hou, Jun Sun, Wanwei Huang, Bo Wen, Yunfeng Liu
2022 J jnl
PeerJ Comput. Sci.
Bo Wang, Junqiang Cheng, Jie Cao, Changhai Wang, Wanwei Huang
2022 conf
ICNCC
Xiangyu Zheng, Wanwei Huang, Xiaohui Zhang, Hui Li, Qiangyong Xiao
2021 J jnl
EURASIP J. Wirel. Commun. Netw.
Yanping Zhang, Wanwei Huang
2021 J jnl
Wirel. Commun. Mob. Comput.
Yuhua Li, Zhiqiang He, Sunan Wang, Zicheng Wang, Wanwei Huang
2021 J jnl
J. Parallel Distributed Comput.
Bo Wang, Changhai Wang, Wanwei Huang, Ying Song, Xiaoyun Qin
2021 J jnl
Digit. Signal Process.
Huanlong Zhang, Liyun Cheng, Jianwei Zhang, Wanwei Huang, Xiulei Liu, Junyang Yu
2020 J jnl
IEEE Access
Bo Wang, Ying Song, Changhai Wang, Wanwei Huang, Xiaoyun Qin
2020 J jnl
IEEE Access
Bo Wang, Changhai Wang, Wanwei Huang, Ying Song, Xiaoyun Qin
2020 conf
ICNCC
Wanwei Huang, Bo Yuan, Sunan Wang, Xiaohui Zhang
2020 J jnl
IEEE Access
Changhai Wang, Bo Wang, Hui Liang, Jianzhong Zhang, Wanwei Huang, Wangwei Zhang
2019 conf
ICBDS
Haiyan Sun, Lingling Li, Jianwei Zhang, Wanwei Huang
2018 J jnl
Wirel. Pers. Commun.
Wanwei Huang, Jianwei Zhang, Shujun Liang, Haiyan Sun
2018 J jnl
IEEE Access
Changhai Wang, Yuwei Xu, Hui Liang, Wanwei Huang, Ling Zhang
2017 J jnl
Wirel. Pers. Commun.
Wanwei Huang, Jianwei Zhang, Haiyan Sun, Huan Ma, Zengyu Cai
2014 J jnl
J. Syst. Control. Eng.
Xiaodong Liu, Yu Zhang, Sen Wang, Wanwei Huang
2010 J jnl
J. Comput.
Qiang Liu, Binqiang Wang, Wanwei Huang, Nan Jiang
2009 conf
IFITA (3)
Qiang Liu, Bingqiang Wang, Wanwei Huang, Xianhui Wang
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())