Chang S. Nam

42 papers B 4Journal 23Unranked 13
YearRankTypeTitle / Venue / Authors
2025 conf
HCI (13)
Heegyu Kim, Sung Chan Jun, Chang S. Nam
2024 J jnl
Comput. Hum. Behav.
Jiali Huang, Zachary Pugh, Sangyeon Kim, Chang S. Nam
2024 J jnl
IEEE Trans. Learn. Technol.
Yalda Ghasemi, Allison Bayro, Justin MacDonald, Heejin Jeong, Joel Reynolds, Chang S. Nam
2024 J jnl
Neural Networks
Sanghyun Choo, Hoonseok Park, Jae-Yoon Jung, Kevin Flores, Chang S. Nam
2023 J jnl
Int. J. Hum. Comput. Stud.
Sangyeon Kim, Sanghyun Choo, Donghyun Park, Hoonseok Park, Chang S. Nam, Jae-Yoon Jung, Sangwon Lee
2023 J jnl
Expert Syst. Appl.
Sanghyun Choo, Hoonseok Park, Sangyeon Kim, Donghyun Park, Jae-Yoon Jung, Sangwon Lee, Chang S. Nam
2023 conf
VR Workshops
Yalda Ghasemi, Allison Bayro, Justin MacDonald, Heejin Jeong, Joel Reynolds, Chang S. Nam
2023 J jnl
AI Ethics
Michael Pflanzer, Zachary Traylor, Joseph B. Lyons, Veljko Dubljevic, Chang S. Nam
2023 B conf
SMC
Hoonseok Park, Donghyun Park, Sangyeon Kim, Sanghyun Choo, Chang S. Nam, Sangwon Lee, Jae-Yoon Jung
2022 B conf
SMC
Yein Song, Myung Hwan Yun, Soo Yeon Kim, Chang S. Nam, Joong Hee Lee
2022 J jnl
IEEE Trans. Hum. Mach. Syst.
Sanghyun Choo, Chang S. Nam
2022 J jnl
Frontiers Neurorobotics
Giacinto Barresi, Chang S. Nam, Ehsan Tarkesh Esfahani, Michela Balconi
2022 J jnl
Hum. Factors
Jiali Huang, Sanghyun Choo, Zachary Pugh, Chang S. Nam
2021 J jnl
Frontiers Neurorobotics
Chang S. Nam, Zachary Traylor, Mengyue Chen, Xiaoning Jiang, Wuwei Feng, Pratik Yashvant Chhatbar
2021 J jnl
Hum. Factors
Joseph B. Lyons, Thy Vo, Kevin T. Wynne, Sean Mahoney, Chang S. Nam, Darci Gallimore
2020 conf
HCI (43)
Zachary Pugh, Jiali Huang, Kristen A. Lindquist, Chang S. Nam
2020 conf
ICHMS
Joseph B. Lyons, Chang S. Nam, Sarah A. Jessup, Thy Q. Vo, Kevin T. Wynne
2019 ch.
Brain Art
Rainbow Tin Hung Ho, Sunee H. Markosov, Nathan Sanders, Chang S. Nam
2019 J jnl
Data Technol. Appl.
Wonjoon Kim, Byungki Jin, Sanghyun Choo, Chang S. Nam, Myung Hwan Yun
2019 J jnl
IEEE Trans. Cybern.
Yu Zhang, Chang S. Nam, Guoxu Zhou, Jing Jin, Xingyu Wang, Andrzej Cichocki
2018 conf
EMBC
Farrokh Mohammadzadeh, Chang S. Nam, Edgar J. Lobaton
2018 J jnl
Comput. Hum. Behav.
Shijing Liu, Chang S. Nam, Edward P. Fitts
2018 conf
BCI
Nayoung Kim, Chang S. Nam
2017 J jnl
IEEE Trans. Haptics
Julia A. Griffin, Weihang Zhu, Chang S. Nam
2017 ch.
Brain-Computer Interface Research (6)
Christoph Guger, Damien Coyle, Donatella Mattia, Marzia De Lucia, Leigh R. Hochberg, Brian L. Edlow, Betts Peters, Brandon Eddy, Chang S. Nam, Quentin Noirhomme, Brendan Z. Allison, Jitka Annen
2016 B conf
SMC
Inchul Choi, Kyle Bond, Chang S. Nam
2016 J jnl
IEEE Comput. Intell. Mag.
Yueqing Li, Chang S. Nam
2016 J jnl
Int. J. Hum. Comput. Interact.
Brendan Corbett, Chang S. Nam, Takehiko Yamaguchi
2015 B conf
SMC
Inchul Choi, Kyle Bond, Dean J. Krusienski, Chang S. Nam
2014 J jnl
Int. J. Hum. Comput. Interact.
Yueqing Li, Sangwoo Bahn, Chang S. Nam, Jungnyun Lee
2013 J jnl
Int. J. Hum. Comput. Interact.
Chang S. Nam, Sangwoo Bahn, Raney Lee
2013 conf
HCI (4)
Wooram Jeon, Yueqing Li, Sangwoo Bahn, Chang S. Nam
2013 conf
HCI (4)
Shijing Liu, Sangwoo Bahn, Heesun Choi, Chang S. Nam
2013 J jnl
Int. J. Hum. Comput. Interact.
Hyung Nam Kim, Tonya L. Smith-Jackson, Chang S. Nam
2013 conf
HCI (4)
Brendan Corbett, Takehiko Yamaguchi, Shijing Liu, Lixiao Huang, Sangwoo Bahn, Chang S. Nam
2013 conf
HCI (4)
Ja Young Lee, Sangwoo Bahn, Chang S. Nam
2011 J jnl
Int. J. Hum. Comput. Interact.
Chang S. Nam, Gerwin Schalk, Melody Moore Jackson
2009 J jnl
Adv. Hum. Comput. Interact.
Shin'ichi Konomi, Chang S. Nam
2008 J jnl
Comput. Hum. Behav.
Chang S. Nam, Joseph Shu, Donghun Chung
2007 conf
HCI (1)
Jan Söeffner, Chang S. Nam
2007 conf
HCI (5)
David Arnim, Benito S. Piuzzi, Chang S. Nam, Donghun Chung
2007 conf
HCI (1)
Donghun Chung, Brahm Daniel deBuys, Chang S. Nam
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())