Manh Anh Do

34 papers C 5Journal 21Unranked 8
YearRankTypeTitle / Venue / Authors
2013 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Dandan Chen, Kiat Seng Yeo, Xiaomeng Shi, Manh Anh Do, Chirn Chye Boon, Wei Meng Lim
2012 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Yung Sern Tan, Kiat Seng Yeo, Chirn Chye Boon, Manh Anh Do
2012 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Manthena Vamshi Krishna, Manh Anh Do, Chirn Chye Boon, Kiat Seng Yeo
2012 J jnl
Microelectron. J.
Juan Xie, Manthena Vamshi Krishna, Manh Anh Do, Chirn Chye Boon, Kiat Seng Yeo
2012 conf
APCCAS
Fanyi Meng, Kaixue Ma, Shanshan Xu, Kiat Seng Yeo, Chirn Chye Boon, Wei Meng Lim, Manh Anh Do
2011 C conf
ISCAS
Ali Meaamar, Chirn Chye Boon, Xiaomeng Shi, Wei Meng Lim, Kiat Seng Yeo, Manh Anh Do
2010 conf
VLSI-SoC (Selected Papers)
Aaron V. T. Do, Chirn Chye Boon, Manthena Vamshi Krishna, Manh Anh Do, Kiat Seng Yeo
2010 C conf
VLSI-SoC
Aaron V. T. Do, Chirn Chye Boon, Manh Anh Do, Kiat Seng Yeo, Alper Cabuk
2010 conf
VLSI-SoC (Selected Papers)
Manthena Vamshi Krishna, Xuan Jie, Manh Anh Do, Chirn Chye Boon, Kiat Seng Yeo, Aaron V. T. Do
2010 C conf
VLSI-SoC
Manthena Vamshi Krishna, Juan Xie, Manh Anh Do, Chirn Chye Boon, Kiat Seng Yeo, Aaron V. T. Do
2010 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Ali Meaamar, Chirn Chye Boon, Kiat Seng Yeo, Manh Anh Do
2010 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Aaron V. T. Do, Chirn Chye Boon, Manh Anh Do, Kiat Seng Yeo, Alper Cabuk
2010 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Manthena Vamshi Krishna, Manh Anh Do, Kiat Seng Yeo, Chirn Chye Boon, Wei Meng Lim
2010 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Zhenghao Lu, Kiat Seng Yeo, Wei Meng Lim, Manh Anh Do, Chirn Chye Boon
2008 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Shan Jiang, Manh Anh Do, Kiat Seng Yeo, Wei Meng Lim
2008 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Xiaomeng Shi, Kiat Seng Yeo, Jianguo Ma, Manh Anh Do, Erping Li
2007 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Zhenghao Lu, Kiat Seng Yeo, Jianguo Ma, Manh Anh Do, Wei Meng Lim, Xueying Chen
2007 J jnl
Microelectron. J.
Xiaomeng Shi, Kiat Seng Yeo, Jianguo Ma, Manh Anh Do
2006 C conf
VLSI-SoC
Shan Jiang, Manh Anh Do, Kiat Seng Yeo
2006 conf
VLSI-SoC (Selected Papers)
Shan Jiang, Manh Anh Do, Kiat Seng Yeo
2006 C conf
VLSI-SoC
Xiaopeng Yu, Manh Anh Do, Jianguo Ma, Kiat Seng Yeo
2006 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Yang Lu, Kiat Seng Yeo, Alper Cabuk, Jianguo Ma, Manh Anh Do, Zhenghao Lu
2006 J jnl
J. Circuits Syst. Comput.
J. J. Liu, Manh Anh Do, Xiaopeng Yu, Kiat Seng Yeo, Shan Jiang, Jianguo Ma
2005 conf
ISCAS (5)
Wei Meng Lim, Han Guo Ma, Manh Anh Do, Kiat Seng Yeo
2005 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Shouxian Mou, Jianguo Ma, Kiat Seng Yeo, Manh Anh Do
2005 conf
ISCAS (5)
Xiaopeng Yu, Manh Anh Do, Jianguo Ma, Kiat Seng Yeo
2005 conf
ISCAS (1)
Lin Jia, Jianguo Ma, Kiat Seng Yeo, Manh Anh Do
2005 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Xiaopeng Yu, Manh Anh Do, Lin Jia, Jianguo Ma, Kiat Seng Yeo
2005 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Xiaomeng Shi, Jianguo Ma, Kiat Seng Yeo, Manh Anh Do, Erping Li
2005 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Chirn Chye Boon, Manh Anh Do, Kiat Seng Yeo, Jianguo Ma
2004 conf
SLIP
Beng Hwee Ong, Choon Beng Sia, Kiat Seng Yeo, Jianguo Ma, Manh Anh Do, Erping Li
2004 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Chirn Chye Boon, Manh Anh Do, Kiat Seng Yeo, Jianguo Ma, Xiaoling Zhang
2001 J jnl
Wirel. Pers. Commun.
Wanshi Chen, Manh Anh Do
2000 J jnl
IEEE Trans. Veh. Technol.
Wanshi Chen, Manh Anh Do
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())