Nenggang Xie

28 papers Misc 2Journal 24Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
Appl. Math. Comput.
Huaihe Huang, Ye Ye, Wei Bao, Yue Zhang, Nenggang Xie
2026 J jnl
Appl. Math. Comput.
Huaihe Huang, Ye Ye, Wei Bao, Yue Zhang, Nenggang Xie
2025 J jnl
J. Supercomput.
Nuo Cheng, Anbo Tang, Shaoli Ye, Lu Wang, Nenggang Xie
2024 J jnl
Biosyst.
Ye Ye, Zhuo-yuan Zhai, Xiao-Rong Hang, Nenggang Xie
2024 J jnl
Robotica
Ye Ye, Ming-xia Zhu, Changwei Ou, Bingzhu Wang, Lu Wang, Nenggang Xie
2024 J jnl
Int. J. Mach. Learn. Cybern.
Ping Kong, Chao Wang, Liangliang Ma, Ye Ye, Lu Wang, Nenggang Xie
2024 J jnl
Appl. Math. Comput.
Xi Bai, Ye Ye, Tong Chen, Nenggang Xie
2023 J jnl
Appl. Intell.
Chao Wang, Ren-qian Xu, Lei Ma, Jie Zhao, Lu Wang, Nenggang Xie, Kang Hao Cheong
2023 J jnl
J. Comput. Sci.
Chao Wang, Songjie Li, Miao Shi, Jie Zhao, Tao Wen, U. Rajendra Acharya, Nenggang Xie, Kang Hao Cheong
2023 J jnl
Biomed. Signal Process. Control.
Qiuhao Huang, Chao Wang, Ye Ye, Lu Wang, Nenggang Xie
2023 J jnl
Comput. Biol. Medicine
Wanying Jia, Songjie Li, Shao Qian, Meng Wang, Wei Bao, Jie Zhao, Kang Hao Cheong, Nenggang Xie
2022 J jnl
IEEE Trans. Fuzzy Syst.
Jing Wang, Xuelian Wang, Nenggang Xie, Jianwei Xia, Hao Shen
2022 J jnl
Comput. Electr. Eng.
Bingzhu Wang, Changwei Ou, Nenggang Xie, Lu Wang, Tiantang Yu, Guanghui Fan, Jifa Chu
2021 J jnl
IEEE Trans. Evol. Comput.
Lu Wang, Lei Ma, Chao Wang, Nenggang Xie, Jin Ming Koh, Kang Hao Cheong
2021 J jnl
Appl. Intell.
Lei Ma, Chao Wang, Nenggang Xie, Miao Shi, Ye Ye, Lu Wang
2020 J jnl
Concurr. Comput. Pract. Exp.
Wei Bao, Chuang Ye Pan, Lu Wang, Qing Zhang, Nenggang Xie
2019 J jnl
IEEE Access
Rui Meng, Nenggang Xie
2019 J jnl
IEEE Access
Kang Hao Cheong, Kenneth Jian Wei Tang, Jin Ming Koh, Simon Ching Man Yu, U. Rajendra Acharya, Nenggang Xie
2019 J jnl
CoRR
Ye Ye, Xiao Rong Hang, Jin Ming Koh, Jaroslaw Adam Miszczak, Kang Hao Cheong, Nenggang Xie
2019 J jnl
IEEE Access
Chao Wang, Jin Ming Koh, Kang Hao Cheong, Nenggang Xie
2019 J jnl
IEEE Access
Zhangbao Xu, Lan Li, Jianyong Yao, Xiaolei Hu, Qingyun Liu, Nenggang Xie
2019 conf
COMPLEX NETWORKS (1)
Ye Ye, Xiao-Rong Hang, Lin Liu, Lu Wang, Nenggang Xie
2017 J jnl
Complex.
Shunqiang Ye, Lu Wang, Kang Hao Cheong, Nenggang Xie
2015 J jnl
Connect. Sci.
Nenggang Xie, Kaixuan Zhen, Chao Wang, Ye Ye, Lu Wang
2015 conf
BDCloud
Ye Ye, Yuwan Cen, Nenggang Xie
2013 J jnl
CoRR
Attila Szolnoki, Nenggang Xie, Ye Ye, Matjaz Perc
2010 Misc conf
ICNC
Gang Xu, Nenggang Xie, Lingang Wang, Chao Wang, Yun Chen, Ye Ye
2010 Misc conf
ICNC
Lingang Wang, Nenggang Xie, Gang Xu, Chao Wang, Yun Chen, Rui Meng
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())