James K. Archibald

66 papers A* 3A 2B 9C 2Journal 34Unranked 14
YearRankTypeTitle / Venue / Authors
2016 J jnl
SIGBED Rev.
James K. Archibald, Doran Wilde
2016 J jnl
J. Real Time Image Process.
Beau J. Tippetts, Dah-Jye Lee, Kirt D. Lillywhite, James K. Archibald
2016 B conf
ARES
Christopher Hansen, James K. Archibald
2015 J jnl
J. Real Time Image Process.
Beau J. Tippetts, Dah-Jye Lee, Kirt D. Lillywhite, James K. Archibald
2015 conf
WESE
James K. Archibald, Doran Wilde
2014 J jnl
Int. J. Reconfigurable Comput.
Beau J. Tippetts, Dah-Jye Lee, Kirt D. Lillywhite, James K. Archibald
2014 J jnl
Int. J. Reconfigurable Comput.
Spencer G. Fowers, Alok Desai, Dah-Jye Lee, Dan Ventura, James K. Archibald
2013 J jnl
Pattern Recognit.
Kirt D. Lillywhite, Dah-Jye Lee, Beau J. Tippetts, James K. Archibald
2013 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Wade S. Fife, James K. Archibald
2013 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Spencer G. Fowers, Dah-Jye Lee, Dan A. Ventura, James K. Archibald
2012 J jnl
Mach. Vis. Appl.
Beau J. Tippetts, Dah-Jye Lee, James K. Archibald
2011 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Beau J. Tippetts, Dah-Jye Lee, James K. Archibald, Kirt D. Lillywhite
2011 J jnl
IEEE Trans Autom. Sci. Eng.
Dah-Jye Lee, James K. Archibald, Guangming Xiong
2010 conf
FECS
Doran Wilde, James K. Archibald, Dah-Jye Lee, Spencer G. Fowers
2010 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Zhaoyi Wei, Dah-Jye Lee, Brent E. Nelson, James K. Archibald
2009 B conf
CBMS
Meher T. Shaikh, Chia-Chi Teng, James K. Archibald, L. Rebecca Sperry, Marc D. H. Hansen
2009 J jnl
IEEE Trans. Control. Syst. Technol.
Whitney Weyerman, Brian Neyenhuis, James K. Archibald, Matthew Washburn, Dallin Durfee, Sean Warnick
2009 J jnl
J. Aerosp. Comput. Inf. Commun.
Beau J. Tippetts, Dah-Jye Lee, Spencer G. Fowers, James K. Archibald
2009 J jnl
Neurocomputing
Xiaoqian Xu, Dah-Jye Lee, Sameer K. Antani, L. Rodney Long, James K. Archibald
2008 J jnl
J. Multim.
Yuchou Chang, Dah-Jye Lee, Yi Hong, James K. Archibald, Dong Liang
2008 J jnl
IEEE Trans. Syst. Man Cybern. Part C
James K. Archibald, Jared C. Hill, N. A. Jepsen, Wynn C. Stirling, Richard L. Frost
2008 conf
CASE
Dah-Jye Lee, Yuchou Chang, James K. Archibald, Christopher R. Greco
2008 ch.
Applications of Computational Intelligence in Biology
Dah-Jye Lee, James K. Archibald, Robert B. Schoenberger, Aaron W. Dennis, Dennis K. Shiozawa
2008 conf
ISVC (2)
Yuchou Chang, Dah-Jye Lee, Yi Hong, James K. Archibald
2008 J jnl
Int. J. Reconfigurable Comput.
Zhaoyi Wei, Dah-Jye Lee, Brent E. Nelson, James K. Archibald, Barrett Edwards
2008 J jnl
EURASIP J. Adv. Signal Process.
Dah-Jye Lee, Jonathan D. Anderson, James K. Archibald
2008 conf
CASE
Dah-Jye Lee, Yuchou Chang, James K. Archibald, Clint Pitzak
2008 B conf
ICPR
Zhaoyi Wei, Dah-Jye Lee, Brent E. Nelson, James K. Archibald
2008 J jnl
EURASIP J. Image Video Process.
Yuchou Chang, Dah-Jye Lee, Yi Hong, James K. Archibald
2008 conf
ISVC (1)
Yuchou Chang, Dah-Jye Lee, Yi Hong, James K. Archibald
2008 B conf
ICPR
Yuchou Chang, Dah-Jye Lee, James K. Archibald, Yi Hong
2008 B conf
ICPR
Yuchou Chang, Dah-Jye Lee, James K. Archibald, Yi Hong
2007 J jnl
Int. J. Robotics Autom.
James K. Archibald, Richard L. Frost
2007 conf
CIRA
Barrett Edwards, James K. Archibald, Wade S. Fife, Dah-Jye Lee
2007 J jnl
Comput. Sci. Educ.
James K. Archibald, Wade S. Fife
2007 C conf
CCA
Whitney Weyerman, Brian Neyenhuis, James K. Archibald, Matthew Washburn, Dallin Durfee, Sean Warnick
2007 conf
ISVC (1)
Beau J. Tippetts, Spencer G. Fowers, Kirt D. Lillywhite, Dah-Jye Lee, James K. Archibald
2007 conf
CIRA
Jonathan D. Anderson, Dah-Jye Lee, Barrett Edwards, James K. Archibald, Christopher R. Greco
2007 J jnl
EURASIP J. Embed. Syst.
Wade S. Fife, James K. Archibald
2007 J jnl
Mach. Vis. Appl.
Dah-Jye Lee, James K. Archibald, Xiaoqian Xu, Pengcheng Zhan
2007 conf
CIRA
Spencer G. Fowers, Dah-Jye Lee, Beau J. Tippetts, Kirt D. Lillywhite, Aaron W. Dennis, James K. Archibald
2006 B conf
CBMS
Joshua Proulx, Ryan Clifford, Sarah Sorensen, Dah-Jye Lee, James K. Archibald
2006 J jnl
IEEE Trans. Syst. Man Cybern. Part C
James K. Archibald, Jared C. Hill, F. Ryan Johnson, Wynn C. Stirling
2005 A conf
AAMAS
Jared C. Hill, F. Ryan Johnson, James K. Archibald, Richard L. Frost, Wynn C. Stirling
2005 B conf
SMC
Jared C. Hill, Matthew S. Nokleby, James K. Archibald, Richard L. Frost, Wynn C. Stirling
2004 J jnl
IEEE Robotics Autom. Mag.
James K. Archibald, Randal W. Beard
2004 A* conf
ICRA
Matthew A. Blake, Gerrit A. Sorensen, James K. Archibald, Randal W. Beard
2002 conf
ISIC
Peter B. Jones, Matthew A. Blake, James K. Archibald
2002 C conf
ACC
Randal W. Beard, James K. Archibald, Steven A. Olson
2001 J jnl
Perform. Evaluation
Mohammad Al-Rousan, James K. Archibald, LeRoy Bearnson
2000 A* conf
ICRA
Timothy B. Gold, James K. Archibald, Richard L. Frost
1998 J jnl
Microprocess. Microsystems
J. Kelly Flanagan, James K. Archibald, Jun Su
1996 J jnl
IEEE Trans. Computers
Knuth Stener Grimsrud, James K. Archibald, Richard L. Frost, Brent E. Nelson
1996 B conf
MASCOTS
J. Kelly Flanagan, Brent E. Nelson, James K. Archibald, Gregory D. Thompson
1996 conf
HICSS (1)
Mohammad Al-Rousan, LeRoy Bearnson, James K. Archibald
1994 conf
Computer Performance Evaluation
Knuth Stener Grimsrud, James K. Archibald, Richard L. Frost, Brent E. Nelson
1993 J jnl
Microprocess. Microsystems
Knuth Stener Grimsrud, James K. Archibald, M. Ripley, J. Kelly Flanagan, Brent E. Nelson
1993 J jnl
SIGMETRICS Perform. Evaluation Rev.
Robert B. Smith, James K. Archibald, Brent E. Nelson
1993 B conf
MASCOTS
J. Kelly Flanagan, Brent E. Nelson, James K. Archibald, Knuth Stener Grimsrud
1993 J jnl
IEEE Trans. Knowl. Data Eng.
Knuth Stener Grimsrud, James K. Archibald, Brent E. Nelson
1991 conf
SPDP
Brent E. Nelson, James K. Archibald, J. Kelly Flanagan
1988 A conf
ICS
James K. Archibald
1987 J jnl
SIGARCH Comput. Archit. News
G. B. Shippen, James K. Archibald
1987
James K. Archibald
1986 J jnl
ACM Trans. Comput. Syst.
James K. Archibald, Jean-Loup Baer
1984 A* conf
ISCA
James K. Archibald, Jean-Loup Baer
redb/extractors/basicproperties.py
← Index redb/extractors/basicproperties.py python
from dataclasses import asdict
import inspect
import os
import magic
from magika import Magika
from datetime import datetime, timezone
from typing import Any, List, Tuple

from redb.extractors.enum import Tag
from redb.models.dataclasses import BasicProperties
from redb.extractors.extractor import Extractor


class BasicPropertiesExtractor(Extractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        parent_sha256=None,
        precomputed_hashes=None,
        is_fat=None,
        child_sha256=None,
        child_architecture=None,
        child_filetype=None,
        first_seen=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters=exporters,
            index_prefix=index_prefix,
            elastic_index=elastic_index,
            known_benign=known_benign,
            known_malicious=known_malicious,
            precomputed_hashes=precomputed_hashes,
        )
        self.basic_properties = None
        self.elastic_index = self.index_prefix + "-basic_properties"
        self.is_packed = None
        self.parent_sha256 = parent_sha256  # For FAT Mach-O slices, points to container hash
        self.is_fat = is_fat  # True for FAT Mach-O containers, None otherwise
        self.child_sha256 = child_sha256  # SHA256 hashes of children (FAT slices, zip contents)
        self.child_architecture = child_architecture  # Architecture names for FAT Mach-O slices
        self.child_filetype = child_filetype  # Magika filetypes for children (useful for zip archives)
        self.first_seen = first_seen  # From catalog_samples, None for local files

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

    def _extract_basic_properties(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        filename = None  # Reserved for future use
        sample_name = os.path.basename(self.filepath)
        file_entropy = round(self.calculate_entropy(self.binary), 3)
        type_ = magic.from_buffer(self.binary)
        type_mime = magic.from_buffer(self.binary, mime=True)
        type_magika = Magika().identify_bytes(self.binary).output.label
        size = len(self.binary)
        self.basic_properties = BasicProperties(
            filename, sample_name, size, type_, type_mime, type_magika,
            file_entropy, self.is_packed, self.is_fat, self.child_sha256,
            self.child_architecture, self.child_filetype,
            first_seen=str(self.first_seen) if self.first_seen else None,
        )
        self.log.debug(f"Basic Properties dump: {asdict(self.basic_properties)}")

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            self._extract_basic_properties()
            # self.export_to_elastic([self.basic_properties])
            return self.basic_properties
        except Exception as e:
            self.log.error(f"Extract basic properties error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.basic_properties
        elif exporter_type == "ClickHouseExporter":
            data = [[
                self.sha256,
                self.md5,
                self.sha1,
                self.parent_sha256,  # NULL for standalone/FAT, fat_hash for slices
                self.basic_properties.child_sha256 or [],  # SHA256 hashes of children
                self.basic_properties.child_architecture or [],  # Architecture names for FAT slices
                self.basic_properties.child_filetype or [],  # Magika filetypes for children
                self.basic_properties.is_fat,  # True for FAT Mach-O containers, NULL otherwise
                self.basic_properties.filename,
                self.basic_properties.sample_name,
                self.basic_properties.filesize,
                self.basic_properties.file_entropy,
                self.basic_properties.filetype,
                self.basic_properties.filetype_mime,
                self.basic_properties.filetype_magika,
                self.first_seen or datetime(1970, 1, 1, tzinfo=timezone.utc),  # From catalog_samples, epoch zero for local files (uses original datetime, not string)
                datetime.now(timezone.utc)
            ]]

            column_names = [
                'sha256', 'md5', 'sha1', 'parent_sha256', 'child_sha256', 'child_architecture', 'child_filetype',
                'is_fat', 'filename', 'sample_name',
                'filesize', 'file_entropy', 'filetype', 'filetype_mime',
                'filetype_magika', 'first_seen', 'analysis_date'
            ]

            column_type_names = [
                'String', 'String', 'String', 'Nullable(String)',
                'Array(FixedString(64))', 'Array(LowCardinality(String))', 'Array(LowCardinality(String))',
                'Nullable(UInt8)', 'Nullable(String)', 'String',
                'UInt64', 'Float64', 'LowCardinality(String)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'DateTime64(3, \'UTC\')',
                'DateTime64(3, \'UTC\')'
            ]

            return data, column_names, column_type_names

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