Makoto Nakatsuji

41 papers A* 9A 2B 3Misc 1Journal 17Unranked 9
YearRankTypeTitle / Venue / Authors
2026 B conf
EDBT
Yasuhiro Fujiwara, Ángel López García-Arias, Yu Mitsuzumi, Yasutoshi Ida, Atsutoshi Kumagai, Masahiro Nakano, Makoto Nakatsuji, Akisato Kimura
2026 conf
KDD (1)
Yasuhiro Fujiwara, Ángel López García-Arias, Yasutoshi Ida, Atsutoshi Kumagai, Masahiro Nakano, Makoto Nakatsuji, Akisato Kimura
2025 conf
ACL (1)
Makoto Nakatsuji, Shuhei Tateishi, Yasuhiro Fujiwara, Ayaka Matsumoto, Narichika Nomoto, Yoshihide Sato
2025 J jnl
IEICE Trans. Inf. Syst.
Makoto Nakatsuji, Yasuhiro Fujiwara
2025 A* conf
AAAI
Makoto Nakatsuji, Yasuhiro Fujiwara, Atsushi Otsuka, Narichika Nomoto, Yoshihide Sato
2024 J jnl
Proc. ACM Manag. Data
Yasuhiro Fujiwara, Atsutoshi Kumagai, Yasutoshi Ida, Masahiro Nakano, Makoto Nakatsuji, Akisato Kimura
2024 conf
LREC/COLING
Shuhei Tateishi, Makoto Nakatsuji, Yasuhito Osugi
2023 J jnl
World Wide Web (WWW)
Makoto Nakatsuji, Yuka Ozeki, Shuhei Tateishi, Yoshihisa Kano, Qingpeng Zhang
2020 A* conf
IJCAI
Makoto Nakatsuji, Sohei Okui
2020 J jnl
CoRR
Makoto Nakatsuji, Sohei Okui
2020 A* conf
AAAI
Makoto Nakatsuji, Sohei Okui
2019 J jnl
CoRR
Makoto Nakatsuji
2019 J jnl
CoRR
Makoto Nakatsuji, Sohei Okui
2017 J jnl
IEICE Trans. Inf. Syst.
Yasuhiro Fujiwara, Makoto Nakatsuji, Hiroaki Shiokawa, Takeshi Mishima, Makoto Onizuka
2017 J jnl
IEEE Trans. Comput. Soc. Syst.
Makoto Nakatsuji, Qingpeng Zhang, Xiaohui Lu, Bassem Makni, James A. Hendler
2016 conf
ISWC (1)
Makoto Nakatsuji
2016 J jnl
Artif. Intell.
Makoto Nakatsuji, Hiroyuki Toda, Hiroshi Sawada, Jinguang Zheng, James A. Hendler
2015 A* conf
KDD
Yasuhiro Fujiwara, Makoto Nakatsuji, Hiroaki Shiokawa, Yasutoshi Ida, Machiko Toyoda
2015 B conf
HCOMP
Mayumi Hadano, Makoto Nakatsuji, Hiroyuki Toda, Yoshimasa Koike
2014 J jnl
Artif. Intell.
Makoto Nakatsuji, Yasuhiro Fujiwara
2014 A* conf
AAAI
Makoto Nakatsuji, Yasuhiro Fujiwara, Hiroyuki Toda, Hiroshi Sawada, Jinguang Zheng, James A. Hendler
2013 conf
SIGMOD Conference
Yasuhiro Fujiwara, Makoto Nakatsuji, Hiroaki Shiokawa, Takeshi Mishima, Makoto Onizuka
2013 A* conf
ICDE
Yasuhiro Fujiwara, Makoto Nakatsuji, Hiroaki Shiokawa, Makoto Onizuka
2013 A* conf
AAAI
Yasuhiro Fujiwara, Makoto Nakatsuji, Hiroaki Shiokawa, Takeshi Mishima, Makoto Onizuka
2012 conf
ISWC (1)
Makoto Nakatsuji, Yasuhiro Fujiwara, Toshio Uchiyama, Hiroyuki Toda
2012 A* conf
KDD
Yasuhiro Fujiwara, Makoto Nakatsuji, Takeshi Yamamuro, Hiroaki Shiokawa, Makoto Onizuka
2012 J jnl
IEICE Trans. Inf. Syst.
Makoto Nakatsuji, Akimichi Tanaka, Toshio Uchiyama, Ko Fujimura
2012 J jnl
CoRR
Yasuhiro Fujiwara, Makoto Nakatsuji, Makoto Onizuka, Masaru Kitsuregawa
2012 J jnl
Proc. VLDB Endow.
Yasuhiro Fujiwara, Makoto Nakatsuji, Makoto Onizuka, Masaru Kitsuregawa
2011 A* conf
IJCAI
Makoto Nakatsuji, Yasuhiro Fujiwara, Toshio Uchiyama, Ko Fujimura
2010 A conf
CIKM
Makoto Nakatsuji, Yasuhiro Fujiwara, Akimichi Tanaka, Toshio Uchiyama, Ko Fujimura, Toru Ishida
2010 J jnl
IEICE Trans. Inf. Syst.
Makoto Nakatsuji, Akimichi Tanaka, Takahiro Madokoro, Kenichiro Okamoto, Sumio Miyazaki, Tadasu Uchiyama
2010 A conf
ECAI
Makoto Nakatsuji, Yasuhiro Fujiwara, Akimichi Tanaka, Tadasu Uchiyama, Toru Ishida
2010 B conf
LREC
Kyota Tsutsumida, Jun Okamoto, Shun Ishizaki, Makoto Nakatsuji, Akimichi Tanaka, Tadasu Uchiyama
2009 J jnl
J. Web Semant.
Makoto Nakatsuji, Makoto Yoshida, Toru Ishida
2009 conf
ICSC
Takahiro Madokoro, Makoto Nakatsuji, Kenichiro Okamoto, Sumio Miyazaki, Tsuyoshi Harada
2008 conf
ISWC (Posters & Demos)
Makoto Nakatsuji, Akimichi Tanaka, Toru Ishida
2007 J jnl
Inf. Media Technol.
Makoto Nakatsuji, Yu Miyoshi, Yoshihiro Otsuka, Miki Hirano
2007 J jnl
Syst. Comput. Jpn.
Makoto Nakatsuji, Minoru Kawahara, Hiroyuki Kawano
2006 Misc conf
ISWC
Makoto Nakatsuji, Yu Miyoshi, Yoshihiro Otsuka
2005 conf
Web Intelligence
Makoto Nakatsuji, Yu Miyoshi, Tatsuyuki Kimura
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"