Namjun Cho

26 papers A 1C 4Misc 1Journal 7Unranked 13
YearRankTypeTitle / Venue / Authors
2020 J jnl
Sensors
Dae-Yeon Kim, Dong-Sik Choi, Jaeyun Kim, Sung Wan Chun, Hyo-Wook Gil, Namjun Cho, Ah Reum Kang, Jiyoung Woo
2009 J jnl
IEEE J. Solid State Circuits
Namjun Cho, Joonsung Bae, Hoi-Jun Yoo
2009 conf
ISSCC
Namjun Cho, Joonsung Bae, Sunyoung Kim, Hoi-Jun Yoo
2009 J jnl
IEEE J. Solid State Circuits
Namjun Cho, Long Yan, Joonsung Bae, Hoi-Jun Yoo
2009 C conf
ISCAS
Binhee Kim, Long Yan, Jerald Yoo, Namjun Cho, Hoi-Jun Yoo
2008 conf
ISSCC
Namjun Cho, Jeabin Lee, Long Yan, Joonsung Bae, Sunyoung Kim, Hoi-Jun Yoo
2008 J jnl
IEEE J. Solid State Circuits
Sunyoung Kim, Seungjin Lee, Namjun Cho, Seong-Jun Song, Hoi-Jun Yoo
2008 conf
BODYNETS
Jerald Yoo, Namjun Cho, Hoi-Jun Yoo
2008 conf
APCCAS
Hoi-Jun Yoo, Namjun Cho
2007 J jnl
IEEE J. Solid State Circuits
Seong-Jun Song, Namjun Cho, Hoi-Jun Yoo
2007 J jnl
IEEE J. Solid State Circuits
Sunyoung Kim, Namjun Cho, Seong-Jun Song, Hoi-Jun Yoo
2007 conf
ISSCC
Seong-Jun Song, Namjun Cho, Sunyoung Kim, Jerald Yoo, Sungdae Choi, Hoi-Jun Yoo
2007 conf
ISSCC
Sunyoung Kim, Seungjin Lee, Namjun Cho, Seong-Jun Song, Hoi-Jun Yoo
2007 C conf
ISCAS
Jeabin Lee, Byeong-Gyu Nam, Seong-Jun Song, Namjun Cho, Hoi-Jun Yoo
2007 conf
CICC
Sunyoung Kim, Seungjin Lee, Namjun Cho, Seong-Jun Song, Hoi-Jun Yoo
2007 C conf
BSN
Hoi-Jun Yoo, Seong-Jun Song, Namjun Cho, Hye Jeong Kim
2006 C conf
ISCAS
Jerald Yoo, Sunyoung Kim, Namjun Cho, Seong-Jun Song, Hoi-Jun Yoo
2006 conf
ISSCC
Seong-Jun Song, Namjun Cho, Sunyoung Kim, Jerald Yoo, Hoi-Jun Yoo
2006 conf
CICC
Sungdae Choi, Seong-Jun Song, Kyomin Sohn, Hyejung Kim, Joo-Young Kim, Namjun Cho, Jeong-Ho Woo, Jerald Yoo, Hoi-Jun Yoo
2006 A conf
DATE
Se-Joong Lee, Kwanho Kim, Hyejung Kim, Namjun Cho, Hoi-Jun Yoo
2006 conf
SoC
Sungdae Choi, Kyomin Sohn, Hyejung Kim, Joo-Young Kim, Seong-Jun Song, Namjun Cho, Jerald Yoo, Hoi-Jun Yoo
2006 J jnl
IEEE J. Solid State Circuits
Sunyoung Kim, Jae-Youl Lee, Seong-Jun Song, Namjun Cho, Hoi-Jun Yoo
2006 Misc conf
ISWC
Seong-Jun Song, Seungjin Lee, Namjun Cho, Hoi-Jun Yoo
2005 conf
ISCAS (1)
Sunyoung Kim, Jae-Youl Lee, Seong-Jun Song, Namjun Cho, Hoi-Jun Yoo
2005 conf
ESSCIRC
Namjun Cho, Seong-Jun Song, Sunyoung Kim, Shiho Kim, Hoi-Jun Yoo
2005 conf
ISCAS (5)
Min-wuk Lee, Byeong-Gyu Nam, Ju-Ho Sohn, Namjun Cho, Hyejung Kim, Kwanho Kim, Hoi-Jun Yoo
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())