Kai-Cheng Yang

50 papers A* 1A 7Misc 1Journal 37Unranked 4
YearRankTypeTitle / Venue / Authors
2025 conf
WebSci
Kai-Cheng Yang, Filippo Menczer
2025 J jnl
CoRR
Kai-Cheng Yang, Pranav Goel, Alexi Quintana Mathé, Luke Horgan, Stefan D. McCabe, Nir Grinberg, Kenneth Joseph, David Lazer
2025 A conf
ICWSM
Stephen Scarano, Vijayalakshmi Vasudevan, Mattia Samory, Kai-Cheng Yang, JungHwan Yang, Przemyslaw A. Grabowicz
2025 J jnl
CoRR
Matthew R. DeVerna, Kai-Cheng Yang, Harry Yaojun Yan, Filippo Menczer
2025 J jnl
CoRR
Kai-Cheng Yang
2025 J jnl
CoRR
Kayo Mimizuka, Megan A. Brown, Kai-Cheng Yang, Josephine Lukito
2024 A conf
IEEE VIS
Jason Alexander, Priyal Nanda, Kai-Cheng Yang, Ali Sarvghad
2024 J jnl
CoRR
Jason Alexander, Priyal Nanda, Kai-Cheng Yang, Ali Sarvghad
2024 J jnl
CoRR
Kai-Cheng Yang, Danishjeet Singh, Filippo Menczer
2024 J jnl
EPJ Data Sci.
Francesco Pierri, Matthew R. DeVerna, Kai-Cheng Yang, Jeremy Blackburn, Ugur Kursuncu
2024 J jnl
CoRR
Stephen Scarano, Vijayalakshmi Vasudevan, Mattia Samory, Kai-Cheng Yang, JungHwan Yang, Przemyslaw A. Grabowicz
2023 A conf
ICWSM
Rachith Aiyappa, Matthew R. DeVerna, Manita Pote, Bao Tran Truong, Wanying Zhao, David Axelrod, Aria Pessianzadeh, Zoher Kachwala, Munjung Kim, Ozgur Can Seckin, Minsuk Kim, Sunny Gandhi, Amrutha Manikonda, Francesco Pierri, Filippo Menczer, Kai-Cheng Yang
2023 J jnl
CoRR
Matthew R. DeVerna, Rachith Aiyappa, Wanying Zhao, Manita Pote, Bao Tran Truong, David Axelrod, Aria Pessianzadeh, Zoher Kachwala, Munjung Kim, Ozgur Can Seckin, Minsuk Kim, Sunny Gandhi, Amrutha Manikonda, Francesco Pierri, Filippo Menczer, Kai-Cheng Yang
2023 J jnl
CoRR
Kai-Cheng Yang, Filippo Menczer
2023 J jnl
CoRR
Matthew R. DeVerna, Harry Yaojun Yan, Kai-Cheng Yang, Filippo Menczer
2023 J jnl
CoRR
Zening Duan, Anqi Shao, Yicheng Hu, Heysung Lee, Xining Liao, Yoo Ji Suh, Jisoo Kim, Kai-Cheng Yang, Kaiping Chen, Sijia Yang
2023 conf
WWW (Companion Volume)
Ugur Kursuncu, Kai-Cheng Yang, Francesco Pierri, Matthew R. DeVerna, Yelena Mejova, Jeremy Blackburn
2023 J jnl
CoRR
Kai-Cheng Yang, Filippo Menczer
2023 J jnl
CoRR
Kai-Cheng Yang, Onur Varol, Alexander C. Nwala, Mohsen Sayyadiharikandeh, Emilio Ferrara, Alessandro Flammini, Filippo Menczer
2022 J jnl
CoRR
Kai-Cheng Yang, Emilio Ferrara, Filippo Menczer
2022 J jnl
J. Comput. Soc. Sci.
Kai-Cheng Yang, Emilio Ferrara, Filippo Menczer
2022 J jnl
PeerJ Comput. Sci.
Kai-Cheng Yang, Pik-Mai Hui, Filippo Menczer
2022 J jnl
CoRR
Francesco Pierri, Matthew R. DeVerna, Kai-Cheng Yang, David Axelrod, John Bryden, Filippo Menczer
2022 A conf
ICWSM
Christopher Torres-Lugo, Kai-Cheng Yang, Filippo Menczer
2021 J jnl
New Media Soc.
Harry Yaojun Yan, Kai-Cheng Yang, Filippo Menczer, James Shanahan
2021 A conf
ICWSM
Matthew R. DeVerna, Francesco Pierri, Bao Tran Truong, John Bollenbacher, David Axelrod, Niklas Loynes, Christopher Torres-Lugo, Kai-Cheng Yang, Filippo Menczer, John Bryden
2021 J jnl
CoRR
Matthew DeVerna, Francesco Pierri, Bao Tran Truong, John Bollenbacher, David Axelrod, Niklas Loynes, Christopher Torres-Lugo, Kai-Cheng Yang, Filippo Menczer, John Bryden
2021 J jnl
PeerJ Comput. Sci.
Jisung Yoon, Kai-Cheng Yang, Woo-Sung Jung, Yong-Yeol Ahn
2021 J jnl
CoRR
Yi-Jiao Zhang, Kai-Cheng Yang, Filippo Radicchi
2021 J jnl
Big Data Soc.
Kai-Cheng Yang, Francesco Pierri, Pik-Mai Hui, David Axelrod, Christopher Torres-Lugo, John Bryden, Filippo Menczer
2021 J jnl
CoRR
Francesco Pierri, Brea L. Perry, Matthew R. DeVerna, Kai-Cheng Yang, Alessandro Flammini, Filippo Menczer, John Bryden
2020 J jnl
J. Open Source Softw.
Kai-Cheng Yang, Brian Aronson, Yong-Yeol Ahn
2020 A conf
ICWSM
Pik-Mai Hui, Kai-Cheng Yang, Christopher Torres-Lugo, Filippo Menczer
2020 A conf
CIKM
Mohsen Sayyadiharikandeh, Onur Varol, Kai-Cheng Yang, Alessandro Flammini, Filippo Menczer
2020 J jnl
CoRR
Mohsen Sayyadiharikandeh, Onur Varol, Kai-Cheng Yang, Alessandro Flammini, Filippo Menczer
2020 J jnl
CoRR
Kai-Cheng Yang, Pik-Mai Hui, Filippo Menczer
2020 J jnl
CoRR
Wen Chen, Diogo Pacheco, Kai-Cheng Yang, Filippo Menczer
2020 J jnl
CoRR
Jisung Yoon, Kai-Cheng Yang, Woo-Sung Jung, Yong-Yeol Ahn
2020 conf
ICWSM Workshops
Kai-Cheng Yang, Christopher Torres-Lugo, Filippo Menczer
2020 J jnl
CoRR
Kai-Cheng Yang, Christopher Torres-Lugo, Filippo Menczer
2020 A* conf
AAAI
Kai-Cheng Yang, Onur Varol, Pik-Mai Hui, Filippo Menczer
2020 J jnl
CoRR
Kai-Cheng Yang, Francesco Pierri, Pik-Mai Hui, David Axelrod, Christopher Torres-Lugo, John Bryden, Filippo Menczer
2020 J jnl
CoRR
Christopher Torres-Lugo, Kai-Cheng Yang, Filippo Menczer
2019 J jnl
CoRR
Kai-Cheng Yang, Onur Varol, Clayton A. Davis, Emilio Ferrara, Alessandro Flammini, Filippo Menczer
2019 conf
WWW (Companion Volume)
Kai-Cheng Yang, Pik-Mai Hui, Filippo Menczer
2019 J jnl
CoRR
Kai-Cheng Yang, Pik-Mai Hui, Filippo Menczer
2019 J jnl
J. Open Source Softw.
Pik-Mai Hui, Kai-Cheng Yang, Christopher Torres-Lugo, Zachary Monroe, Marc McCarty, Benjamin Serrette, Valentin Pentchev, Filippo Menczer
2019 J jnl
CoRR
Kai-Cheng Yang, Onur Varol, Pik-Mai Hui, Filippo Menczer
2018 J jnl
IEEE Trans. Parallel Distributed Syst.
Hsueh-Wen Tseng, Ting-Ting Yang, Kai-Cheng Yang, Pei-Shan Chen
2011 Misc conf
UbiComp
Ming-Chang Tsai, Fu-Chiang Chou, Yih-Feng Kao, Kai-Cheng Yang, Mike Y. Chen
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())