James H. Aylor

56 papers A* 3A 4B 2C 5Misc 3Journal 31Unranked 7
YearRankTypeTitle / Venue / Authors
2024 J jnl
IEEE Trans. Dependable Secur. Comput.
Xugui Zhou, Bulbul Ahmed, James H. Aylor, Philip Asare, Homa Alemzadeh
2021 A conf
DSN
Xugui Zhou, Bulbul Ahmed, James H. Aylor, Philip Asare, Homa Alemzadeh
2021 J jnl
CoRR
Xugui Zhou, Bulbul Ahmed, James H. Aylor, Philip Asare, Homa Alemzadeh
2009 J jnl
Computer
Mark A. Hanson, Harry C. Powell Jr., Adam T. Barth, Kyle Ringgenberg, Benton H. Calhoun, James H. Aylor, John C. Lach
2006 J jnl
IEEE Trans. Instrum. Meas.
Zachary D. Buckner, Michael L. Reed, James H. Aylor
2006 J jnl
Computer
Doris L. Carver, Ronald G. Hoelzeman, James H. Aylor, Michael G. Hinchey
2005 J jnl
Parallel Process. Lett.
Murali K. Nethi, James H. Aylor
2004 J jnl
IEEE Trans. Mob. Comput.
Yong Ma, James H. Aylor
2003 conf
MSE
Robert H. Klenke, James H. Aylor
2003 conf
MSE
Jason J. Hein, James H. Aylor, Robert H. Klenke
2003 J jnl
IEEE Trans. Educ.
Ronald D. Williams, Robert H. Klenke, James H. Aylor
2002 J jnl
Computer
James H. Aylor
2002 J jnl
Computer
James H. Aylor
2001 J jnl
Computer
James H. Aylor
2001 J jnl
J. Syst. Archit.
Robert H. Klenke, James H. Aylor, Moshe Meyassed, William W. Dungan
2001 J jnl
Computer
James H. Aylor
2001 J jnl
IEEE Trans. Computers
Gang Han, Robert H. Klenke, James H. Aylor
2000 J jnl
IEEE Trans. Computers
Sally A. McKee, William A. Wulf, James H. Aylor, Robert H. Klenke, Maximo H. Salinas, Sung I. Hong, Dee A. B. Weikle
2000 J jnl
Computer
James H. Aylor
2000 conf
HLDVT
Tianjing Jiang, Robert H. Klenke, James H. Aylor, Gang Han
1999 A* conf
HPCA
Sung I. Hong, Sally A. McKee, Maximo H. Salinas, Robert H. Klenke, James H. Aylor, William A. Wulf
1999 J jnl
Computer
James H. Aylor
1999 ch.
The VLSI Handbook
James H. Aylor, Robert H. Klenke
1999 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Moshe Meyassed, Robert H. Klenke, James H. Aylor
1998 A* conf
DAC
Robert M. McGraw, James H. Aylor, Robert H. Klenke
1998 J jnl
Computer
Sally A. McKee, Robert H. Klenke, Kenneth L. Wright, William A. Wulf, Maximo H. Salinas, James H. Aylor, Alan P. Batson
1997 A* conf
DAC
Robert H. Klenke, Moshe Meyassed, James H. Aylor, Barry W. Johnson, Ramesh Rao, Anup Ghosh
1997 conf
MSE
Robert H. Klenke, James H. Aylor
1996 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Joseph M. Wolf, Lori M. Kaufman, Robert H. Klenke, James H. Aylor, Ronald Waxman
1996 Misc conf
VTS
Robert H. Klenke, James H. Aylor, Joseph M. Wolf
1996 A conf
International Conference on Supercomputing
Sally A. McKee, Assaji Aluwihare, Benjamin H. Clark, Robert H. Klenke, Trevor C. Landon, Christopher W. Oliver, Maximo H. Salinas, Adam E. Szymkowiak, Kenneth L. Wright, William A. Wulf, James H. Aylor
1995 B conf
ICECCS
Robert M. McGraw, Moshe Meyassed, Robert H. Klenke, James H. Aylor, Ronald D. Williams
1994 conf
ICPP (3)
Sanjay Srinivasan, James H. Aylor
1994 conf
HICSS (1)
Sally A. McKee, Robert H. Klenke, Andrew J. Schwab, William A. Wulf, Steven A. Moyer, James H. Aylor, Charles Y. Hitchcock
1994 J jnl
Computer
Sanjaya Kumar, James H. Aylor, Barry W. Johnson, William A. Wulf
1993 J jnl
Computer
Sanjaya Kumar, James H. Aylor, Barry W. Johnson, William A. Wulf
1993 Misc conf
VTS
Sanjay Srinivasan, Gnanasekaran Swaminathan, James H. Aylor, M. Ray Mercer
1993 J jnl
IEEE Des. Test Comput.
Maximo H. Salinas, Barry W. Johnson, James H. Aylor
1993 Misc conf
VTS
Robert H. Klenke, Ronald D. Williams, James H. Aylor
1993 A conf
ITC
Robert H. Klenke, Lori M. Kaufman, James H. Aylor, Ronald Waxman, Padmini Narayan
1992 J jnl
IEEE Trans. Ind. Electron.
James H. Aylor, Alfred Thieme, Barry W. Johnson
1992 C conf
RSP
Richard MacDonald, Sanjay Srinivasan, Ronald D. Williams, James H. Aylor
1992 J jnl
Computer
Robert H. Klenke, Ronald D. Williams, James H. Aylor
1992 C conf
ICCD
James H. Aylor, Raul Camposano, Michael A. Schuette, Wayne H. Wolf, Nam Sung Woo
1991 C conf
ICCD
Maximo H. Salinas, Barry W. Johnson, James H. Aylor
1991 J jnl
Computer
James H. Aylor, Roy L. Russo, Bruce D. Shriver
1990 C conf
ICCD
James H. Aylor, James P. Cohoon, E. L. Feldhousen, Barry W. Johnson
1990 C conf
ICCD
Gnanasekaran Swaminathan, James H. Aylor, Barry W. Johnson
1989 A conf
ICCAD
F. T. Hady, James H. Aylor, Ronald D. Williams, Ronald Waxman
1988 J jnl
IEEE J. Solid State Circuits
Barry W. Johnson, James H. Aylor, Haytham H. Hana
1988 B conf
CBMS
Barry W. Johnson, James H. Aylor
1988 conf
COMPCON
Ronald Waxman, James H. Aylor, Erich Marschner
1986 J jnl
IEEE Micro
James H. Aylor, Barry W. Johnson, Bruce J. Rector
1986 J jnl
IEEE Des. Test
James H. Aylor, Ronald Waxman, Charles Scarratt
1981 J jnl
Computer
James H. Aylor, Barry W. Johnson, Robert L. Ramey
1979 J jnl
Computer
Robert L. Ramey, James H. Aylor, Ronald D. Williams
redb/extractors/pe_extractors/pe_imports.py
← Index redb/extractors/pe_extractors/pe_imports.py python
import inspect
from typing import Any, List, Tuple
from datetime import datetime, timezone

from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PEImport


class PEImportExtractor(PEExtractor):

    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,
            pe,
        )
        self.elastic_index = self.index_prefix + "-pe_imports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.PE_IMPORT.value

    def _extract_imports(self):
        self.log.debug(inspect.currentframe().f_code.co_name)

        imports_symbols = []
        imports_lib = []
        imports_total = 0
        # pe_import = None
        try:
            directory_entry_import = getattr(self.pe, "DIRECTORY_ENTRY_IMPORT", [])
            imports_total = len(directory_entry_import)
            for entry in directory_entry_import:
                symbols = []
                tmp_import = {}
                libname = entry.dll.decode() if entry.dll else ""
                imports_lib.append(libname)
                # replace . with _ to avoid issues with elastic
                # entryname = entryname.replace(".", "_")
                for symbol in entry.imports:
                    if symbol.name:
                        symbols.append(symbol.name.decode())
                # imports_symbols[entryname] = symbols
                tmp_import[libname] = symbols
                imports_symbols.append(tmp_import)
            return PEImport(
                pe_imports_total=imports_total,
                pe_import_libraryName=imports_lib if imports_lib else None,
                pe_import_functions=imports_symbols if imports_symbols else None,
            )
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
        return pe_import

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            return self._extract_imports()
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            imports = self.extract()
            if (
                imports is None
                or imports.pe_imports_total == 0
                or (
                    imports.pe_import_libraryName is None
                    and imports.pe_import_functions is None
                )
            ):
                return None

            # Flatten the data - one row per function import
            data = []
            current_time = datetime.now(timezone.utc)

            for lib_funcs in imports.pe_import_functions:
                for lib, funcs in lib_funcs.items():
                    for func in funcs:
                        data.append(
                            [
                                self.sha256,  # sha256
                                self.md5,  # md5
                                self.sha1,  # sha1
                                lib,  # library_name
                                func,  # function_name
                                current_time,  # analysis_date
                            ]
                        )

            column_names = [
                "sha256",
                "md5",
                "sha1",
                "library_name",
                "function_name",
                "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)",
                "FixedString(32)",
                "FixedString(40)",
                "LowCardinality(Nullable(String))",
                "LowCardinality(Nullable(String))",
                "DateTime64(3, 'UTC')",
            ]

            if not data:
                return None

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_pe_imports"