James S. Magnuson

40 papers A* 1A 1B 21Journal 14Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
PLoS Comput. Biol.
Christian Brodbeck, Thomas Hannagan, James S. Magnuson
2025 B conf
CogSci
Jonathan Mitchell, Kevin S. Brown, James S. Magnuson, Thomas Hannagan
2024 J jnl
Cogn. Sci.
Sahil Luthra, Anne Marie Crinnion, David Saltzman, James S. Magnuson
2024 B conf
CogSci
Ihintza Malharin, Simona Mancini, James S. Magnuson
2024 B conf
CogSci
Qihui Xu, Guro Stensby Sjuls, Marina Kalashnikova, James S. Magnuson
2024 B conf
CogSci
Kevin S. Brown, Jay G. Rueckl, Elliot Saltzman, James S. Magnuson, Ken McRae, Eiling Yee
2023 J jnl
Cogn. Sci.
Kevin S. Brown, Eiling Yee, Gitte Joergensen, Melissa Troyer, Elliot Saltzman, Jay G. Rueckl, James S. Magnuson, Ken McRae
2022 B conf
CogSci
James S. Magnuson, Samantha Grubb, Anne Marie Crinnion, Sahil Luthra, Phoebe Gaston
2021 B conf
CogSci
Christian Brodbeck, Sahil Luthra, Phoebe Gaston, James S. Magnuson
2021 B conf
CogSci
Kevin S. Brown, Nicholas Monto, Jay G. Rueckl, James S. Magnuson
2021 B conf
CogSci
Sahil Luthra, Giovanni Peraza-Santiago, David Saltzman, Anne Marie Crinnion, James S. Magnuson
2021 J jnl
Cogn. Sci.
Sahil Luthra, Giovanni Peraza-Santiago, Keia'na Beeson, David Saltzman, Anne Marie Crinnion, James S. Magnuson
2020 J jnl
Cogn. Sci.
James S. Magnuson, Heejo You, Sahil Luthra, Monica Li, Hosung Nam, Monty Escabi, Kevin S. Brown, Paul D. Allopenna, Rachel M. Theodore, Nicholas Monto, Jay G. Rueckl
2020 J jnl
Cogn. Sci.
Sahil Luthra, Heejo You, Jay G. Rueckl, James S. Magnuson
2020 B conf
CogSci
James S. Magnuson, Elizabeth Simmons
2020 B conf
CogSci
Kevin S. Brown, Eiling Yee, Elliot Saltzman, James S. Magnuson, Ken McRae
2019 B conf
CogSci
James S. Magnuson, Monica Li, Sahil Luthra, Heejo You, Rachael Steiner
2019 B conf
CogSci
James S. Magnuson, Heejo You, Jay G. Rueckl, Paul D. Allopenna, Monica Li, Sahil Luthra, Rachael Steiner, Hosung Nam, Monty Escabi, Kevin S. Brown, Rachel M. Theodore, Nicholas Monto
2018 B conf
CogSci
James S. Magnuson
2018 B conf
CogSci
Sahil Luthra, James S. Magnuson
2018 J jnl
Entropy
Kevin S. Brown, Paul D. Allopenna, William R. Hunt, Rachael Steiner, Elliot Saltzman, Ken McRae, James S. Magnuson
2018 B conf
CogSci
Elizabeth Simmons, James S. Magnuson
2017 B conf
CogSci
Sahil Luthra, James S. Magnuson
2016 J jnl
Cogn. Sci.
Jasmin Sadat, Clara D. Martin, James S. Magnuson, Francois-Xavier Alario, Albert Costa
2016 J jnl
NeuroImage
Caicai Zhang, Kenneth R. Pugh, W. Einar Mencl, Peter J. Molfese, Stephen J. Frost, James S. Magnuson, Gang Peng, William S.-Y. Wang
2014 B conf
CogSci
James S. Magnuson
2014 B conf
CogSci
James S. Magnuson
2013 B conf
CogSci
Alexis R. Johns, Heather K. J. van der Lely, James S. Magnuson
2013 B conf
CogSci
Beverly Collisson, Bernard Grela, Tammie Spaulding, Jay G. Rueckl, James S. Magnuson
2011 B conf
CogSci
Ashlee Shaw, Alexander P. Demos, Dana Arthur, James S. Magnuson
2010 J jnl
Cogn. Sci.
Daniel Mirman, Ted J. Strauss, James A. Dixon, James S. Magnuson
2008 J jnl
Cogn. Sci.
Daniel Mirman, James L. McClelland, Lori L. Holt, James S. Magnuson
2007 J jnl
Cogn. Sci.
James S. Magnuson, James A. Dixon, Michael K. Tanenhaus, Richard N. Aslin
2006 A conf
INTERSPEECH
Navin Viswanathan, James S. Magnuson, Carol A. Fowler
2003 J jnl
Cogn. Sci.
James S. Magnuson, Bob McMurray, Michael K. Tanenhaus, Richard N. Aslin
2003 J jnl
Cogn. Sci.
James S. Magnuson, Bob McMurray, Michael K. Tanenhaus, Richard N. Aslin
1996 conf
ICSLP
James S. Magnuson, Reiko Akahane-Yamada
1996 A* conf
ACL
Michael K. Tanenhaus, Julie C. Sedivy, Michael J. Spivey-Knowlton, Paul D. Allopenna, Kathleen M. Eberhard, James S. Magnuson
1994 conf
ICSLP
James S. Magnuson, Reiko Akahane-Yamada, Howard C. Nusbaum
1994 conf
ICSLP
Reiko Akahane-Yamada, Winifred Strange, James S. Magnuson, John S. Pruitt, William D. Clarke
redb/extractors/pe_extractors/pe_overlay.py
← Index redb/extractors/pe_extractors/pe_overlay.py python
from hashlib import md5, sha1, sha256
import inspect
from datetime import datetime, timezone
from typing import Any

import magic
from magika import Magika

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


class PEOverlayExtractor(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_overlay"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_pe_overlay(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        overlay = self.pe.get_overlay()
        if overlay:
            return PEOverlay(
                _id=sha256(overlay).hexdigest(),
                overlay_size=len(overlay),
                overlay_entropy=self.calculate_entropy(overlay),
                overlay_offset=self.pe.get_overlay_data_start_offset(),
                overlay_mimetype=magic.from_buffer(overlay, mime=True),
                overlay_type=magic.from_buffer(overlay),
                overlay_magika=Magika().identify_bytes(overlay).output.ct_label,
                overlay_sha256=sha256(overlay).hexdigest(),
                overlay_sha1=sha1(overlay).hexdigest(),
                overlay_md5=md5(overlay).hexdigest(),
            )
        return None

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            overlay = self._extract_pe_overlay()
            # self.export_to_elastic([overlay])  # Let the exporters handle this
            return overlay
        except Exception as e:
            self.log.error(f"Error extracting PE overlay: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            overlay = self.extract()
            if overlay is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            data.append([
                self.sha256,              # sha256
                self.md5,                 # md5
                self.sha1,                # sha1
                overlay.overlay_size,     # overlay_size
                overlay.overlay_entropy,  # overlay_entropy
                overlay.overlay_offset,   # overlay_offset
                overlay.overlay_mimetype, # overlay_mimetype
                overlay.overlay_type,     # overlay_type
                overlay.overlay_magika,   # overlay_magika
                overlay.overlay_sha256,   # overlay_sha256
                overlay.overlay_sha1,     # overlay_sha1
                overlay.overlay_md5,      # overlay_md5
                current_time             # analysis_date
            ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'overlay_size', 'overlay_entropy',
                'overlay_offset', 'overlay_mimetype', 'overlay_type', 'overlay_magika',
                'overlay_sha256', 'overlay_sha1', 'overlay_md5',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'UInt64', 'Float64', 'UInt64',
                'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(String)',
                'FixedString(64)', 'FixedString(40)', 'FixedString(32)',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

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