Nariyoshi Yamai

103 papers B 7C 6Misc 3Journal 30Unranked 55
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEICE Trans. Commun.
Satoru Sunahara, Yong Jin, Katsuyoshi Iida, Nariyoshi Yamai, Yoshiaki Takai
2025 J jnl
IEICE Trans. Inf. Syst.
Yong Jin, Kazuya Iguchi, Nariyoshi Yamai, Rei Nakagawa, Toshio Murakami
2025 C conf
ICBC
Tatsuya Sato, Taku Shimosawa, Nariyoshi Yamai
2025 J jnl
IEEE Access
Rei Nakagawa, Satoshi Ohzahata, Ryo Yamamoto, Nariyoshi Yamai
2024 J jnl
J. Inf. Process.
Tatsuya Sato, Taku Shimosawa, Nariyoshi Yamai
2024 conf
ICOIN
Tomoya Kawana, Rei Nakagawa, Nariyoshi Yamai
2024 B conf
COMPSAC
Satoru Sunahara, Yong Jin, Katsuyoshi Iida, Nariyoshi Yamai, Yoshiaki Takai
2024 conf
ICACT
Akihiro Takai, Yusei Katsura, Nariyoshi Yamai, Rei Nakagawa, Vasaka Visoottiviseth
2024 conf
ICTC
Yutaro Furuichi, Nariyoshi Yamai, Rei Nakagawa
2024 C conf
APCC
Katsuya Sugizaki, Rei Nakagawa, Nariyoshi Yamai, Shinta Sato, Takeshi Mitamura
2024 conf
ICTC
Xiuyuan Chen, Nariyoshi Yamai, Rei Nakagawa, Tomoaki Tsutsumi, Yong Jin
2023 B conf
COMPSAC
Tatsuya Sato, Taku Shimosawa, Nariyoshi Yamai
2023 conf
QRS Companion
Perakorn Nimitkul, Akihiro Takai, Nariyoshi Yamai, Rei Nakagawa, Songpon Teerakanok
2023 conf
ICEIC
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2023 B conf
COMPSAC
Toshio Murakami, Kenta Shimabukuro, Nao Sato, Rei Nakagawa, Yong Jin, Nariyoshi Yamai
2023 B conf
COMPSAC
Nariyoshi Yamai, Yong Jin, Toshio Murakami, Rei Nakagawa
2022 conf
ICACT
Yong Jin, Kazuya Iguchi, Nariyoshi Yamai, Masahiko Tomoishi
2022 conf
ICCCM
Yong Jin, Zhengxu Jin, Nariyoshi Yamai, Rei Nakagawa
2022 conf
AINTEC
Akihiro Takai, Nariyoshi Yamai, Rei Nakagawa
2022 conf
AINTEC
Tomoya Nakano, Rei Nakagawa, Nariyoshi Yamai
2022 conf
ICACT
Nay Myat Min, Vasaka Visoottiviseth, Songpon Teerakanok, Nariyoshi Yamai
2022 conf
ICACT
Yusei Katsura, Pranpariya Sakarin, Nariyoshi Yamai, Hiroyuki Kimiyama, Vasaka Visoottiviseth
2021 conf
ICHMI
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2021 J jnl
J. Inf. Process.
Kenta Yokogi, Naoya Kitagawa, Nariyoshi Yamai
2021 Misc conf
SIGUCCS
Hiroki Kashiwazaki, Takuro Ozaki, Hajime Shimada, Yusuke Komiya, Eisaku Sakane, Kazuhiro Mishima, Shiu Sakashita, Nariyoshi Yamai, Yoshiaki Kitaguchi, Kensuke Miyashita
2021 conf
ICCBDC
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2020 C conf
ISNCC
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2020 J jnl
J. Inf. Process.
Nariyoshi Yamai
2020 Misc conf
ICISS
Kanako Konno, Naoya Kitagawa, Nariyoshi Yamai
2020 J jnl
IEICE Trans. Commun.
Kazuhiko Kinoshita, Masahiko Aihara, Nariyoshi Yamai, Takashi Watanabe
2019 ed.
COMPSAC (1)
Vladimir Getov, Jean-Luc Gaudiot, Nariyoshi Yamai, Stelvio Cimato, J. Morris Chang, Yuuichi Teranishi, Ji-Jiang Yang, Hong Va Leong, Hossain Shahriar, Michiharu Takemoto, Dave Towey, Hiroki Takakura, Atilla Elçi, Susumu Takeuchi, Satish Puri
2019 ed.
COMPSAC (2)
Vladimir Getov, Jean-Luc Gaudiot, Nariyoshi Yamai, Stelvio Cimato, J. Morris Chang, Yuuichi Teranishi, Ji-Jiang Yang, Hong Va Leong, Hossain Shahriar, Michiharu Takemoto, Dave Towey, Hiroki Takakura, Atilla Elçi, Susumu Takeuchi, Satish Puri
2019 conf
COMPSAC (1)
Ryuji Asakura, Reido Horigome, Nariyoshi Yamai, Naoya Kitagawa, Satoshi Ohzahata
2019 conf
PACRIM
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2019 conf
COMPSAC (1)
Kenya Dan, Naoya Kitagawa, Shuji Sakuraba, Nariyoshi Yamai
2019 J jnl
IEEE Access
Takahiro Shimizu, Naoya Kitagawa, Kohta Ohshima, Nariyoshi Yamai
2018 C conf
CW
Yong Jin, Kunitaka Kakoi, Nariyoshi Yamai, Naoya Kitagawa, Masahiko Tomoishi
2018 conf
ICTC
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2018 conf
COMPSAC (2)
Kenta Yokogi, Naoya Kitagawa, Nariyoshi Yamai
2018 conf
COMPSAC (1)
Reido Horigome, Nariyoshi Yamai, Naoya Kitagawa, Satoshi Ohzahata
2018 J jnl
IEICE Trans. Inf. Syst.
Hiroya Ikarashi, Yong Jin, Nariyoshi Yamai, Naoya Kitagawa, Kiyohiko Okayama
2018 J jnl
IEICE Trans. Commun.
Kazuhiko Kinoshita, Masahiko Aihara, Shiori Kono, Nariyoshi Yamai, Takashi Watanabe
2018 conf
COMPSAC (1)
Behrooz A. Shirazi, Nariyoshi Yamai
2018 conf
COMPSAC (2)
Masami Fukuyama, Nariyoshi Yamai, Satoshi Ohzahata, Naoya Kitagawa
2017 J jnl
IEICE Trans. Inf. Syst.
Yong Jin, Kunitaka Kakoi, Nariyoshi Yamai, Naoya Kitagawa, Masahiko Tomoishi
2017 conf
COMPSAC (2)
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2017 conf
COMPSAC (2)
Kunitaka Kakoi, Yong Jin, Nariyoshi Yamai, Naoya Kitagawa, Masahiko Tomoishi
2017 conf
ICTC
Yong Jin, Kunitaka Kakoi, Masahiko Tomoishi, Nariyoshi Yamai
2017 Misc conf
ICISC
Takuya Kusaka, Sho Joichi, Ken Ikuta, Md. Al-Amin Khandaker, Yasuyuki Nogami, Satoshi Uehara, Nariyoshi Yamai, Sylvain Duquesne
2016 conf
ICTC
Yong Jin, Masahiko Tomoishi, Nariyoshi Yamai
2016 conf
COMPSAC Workshops
Kunitaka Kakoi, Yong Jin, Nariyoshi Yamai, Naoya Kitagawa, Masahiko Tomoishi
2016 B conf
NOMS
Masahiko Aihara, Shiori Kono, Kazuhiko Kinoshita, Nariyoshi Yamai, Takashi Watanabe
2015 C conf
APNOMS
Kensuke Saito, Kazuhiko Kinoshita, Nariyoshi Yamai, Takashi Watanabe
2015 conf
COMPSAC Workshops
Tomokazu Otsuka, Gada, Nariyoshi Yamai, Kiyohiko Okayama, Yong Jin
2015 J jnl
J. Inf. Process.
Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2015 J jnl
J. Inf. Process.
Nariyoshi Yamai
2015 conf
COMPSAC Workshops
Nariyoshi Yamai, Mario Köppen, Youngseok Lee
2015 J jnl
J. Inf. Process.
Daisuke Okamoto, Keita Kawano, Nariyoshi Yamai, Tokumi Yokohira
2014 J jnl
IEICE Trans. Commun.
Kazuhiko Kinoshita, Nariyoshi Yamai, Koso Murakami
2014 J jnl
J. Inf. Process.
Keita Kawano, Daisuke Okamoto, Masanori Fujiwara, Nariyoshi Yamai
2014 J jnl
J. Inf. Process.
Nariyoshi Yamai, Masayuki Matsuoka, Kiyohiko Okayama, Keita Kawano, Motonori Nakamura, Masato Minda
2014 B conf
COMPSAC
Koki Okamoto, Nariyoshi Yamai, Kiyohiko Okayama, Keita Kawano, Motonori Nakamura, Tokumi Yokohira
2013 J jnl
Inf. Media Technol.
Yoshihiro Ohsumi, Kiyohiko Okayama, Nariyoshi Yamai
2013 J jnl
J. Inf. Process.
Yoshihiro Ohsumi, Kiyohiko Okayama, Nariyoshi Yamai
2013 J jnl
Inf. Media Technol.
Yong Jin, Takuya Yamaguchi, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2013 J jnl
J. Inf. Process.
Yong Jin, Takuya Yamaguchi, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2013 conf
COMPSAC Workshops
Takuya Yamaguchi, Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Koki Okamoto, Motonori Nakamura
2013 conf
COMPSAC Workshops
Masayuki Matsuoka, Nariyoshi Yamai, Kiyohiko Okayama, Keita Kawano, Motonori Nakamura, Masato Minda
2013 conf
COMPSAC Workshops
Gada, Nariyoshi Yamai, Kiyohiko Okayama, Keita Kawano, Motonori Nakamura
2013 conf
COMPSAC Workshops
Daisuke Okamoto, Masanori Fujiwara, Keita Kawano, Nariyoshi Yamai
2012 conf
SAINT
Yoshihiro Ohsumi, Kiyohiko Okayama, Nariyoshi Yamai, Takaoki Fujiwara, Takashi Hieda
2012 J jnl
Inf. Media Technol.
Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2012 J jnl
J. Inf. Process.
Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2012 conf
SAINT
Masanori Fujiwara, Keita Kawano, Nariyoshi Yamai
2012 conf
SAINT
Takuya Yamaguchi, Yong Jin, Ryoichi Tokumoto, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2012 conf
SAINT
Shuji Suwa, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura, Keita Kawano, Gada
2011 J jnl
IEICE Trans. Commun.
Kazuhiko Kinoshita, Atsushi Narishige, Yusuke Hara, Nariyoshi Yamai, Koso Murakami
2011 conf
SAINT
Yoshiki Ishikawa, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2011 conf
SAINT
Shuji Suwa, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2011 conf
SAINT
Yong Jin, Nariyoshi Yamai
2010 conf
SAINT
Sho Jitsuto, Yong Jin, Kiyohiko Okayama, Nariyoshi Yamai
2010 conf
SAINT
Ryo Murakami, Nariyoshi Yamai, Kiyohiko Okayama
2010 conf
SAINT
Takumi Seike, Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Keita Kawano, Motonori Nakamura
2010 conf
SAINT
Yong Jin, Nariyoshi Yamai, Kiyohiko Okayama, Motonori Nakamura
2009 conf
CCNC
Hiroki Okada, Tran Nguyen Trung, Kazuhiko Kinoshita, Koso Murakami, Nariyoshi Yamai
2009 C conf
ISADS
Yusuke Hara, Kazuhiko Kinoshita, Nariyoshi Yamai, Koso Murakami
2008 J jnl
IEICE Trans. Commun.
Keita Kawano, Kazuhiko Kinoshita, Nariyoshi Yamai
2008 B conf
LCN
Keita Kawano, Kazuhiko Kinoshita, Nariyoshi Yamai
2008 J jnl
IEICE Trans. Commun.
Tran Nguyen Trung, Hideo Kamada, Kazuhiko Kinoshita, Nariyoshi Yamai, Tetsuya Takine, Koso Murakami
2007 conf
COMSWARE
Vijitha Ranatunga, Akira Hosokawa, Kazuhiko Kinoshita, Nariyoshi Yamai, Koso Murakami
2007 conf
COMSWARE
Kiyohiko Okayama, Nariyoshi Yamai, Hayato Ishibashi, Kota Abe, Toshio Matsuura
2007 J jnl
IEICE Trans. Commun.
Hui Wang, Shigeyuki Osada, Tokumi Yokohira, Kiyohiko Okayama, Nariyoshi Yamai
2006 conf
SAINT
Shin Maruyama, Motonori Nakamura, Yasuo Okabe, Nariyoshi Yamai, Kiyohiko Okayama, Takuya Miyashita
2005 conf
ICN (2)
Kazuhiko Kinoshita, Nariyoshi Yamai, Koso Murakami
2005 conf
SAINT
Nariyoshi Yamai, Kiyohiko Okayama, Takuya Miyashita, Shin Maruyama, Motonori Nakamura
2005 conf
SAINT
Hideo Kamada, Kazuhiko Kinoshita, Nariyoshi Yamai, Hideki Tode, Koso Murakami
2003 conf
ICOIN
Akira Hosokawa, Kazuhiko Kinoshita, Nariyoshi Yamai, Koso Murakami
2003 conf
ICOIN
Hayato Ishibashi, Kiyohiko Okayama, Nariyoshi Yamai, Kota Abe, Toshio Matsuura
2002 J jnl
Syst. Comput. Jpn.
Nariyoshi Yamai, Kou Nakayoshi, Hayato Ishibashi, Kota Abe, Koso Murakami, Toshio Matsuura
2001 conf
ICC
Nariyoshi Yamai, Kiyohiko Okayama, Hiroshi Shimamoto, Takuji Okamoto
1995 J jnl
Syst. Comput. Jpn.
Nariyoshi Yamai, Susumu Wakabayashi, Shinji Shimojo, Hideo Miyahara
1990 J jnl
Syst. Comput. Jpn.
Nariyoshi Yamai, Shinji Shimojo, Hideo Miyahara
1989 conf
IWPT
Nariyoshi Yamai, Tadashi Seko, Noboru Kubo, Toru Kawata
redb/extractors/macho_extractors/macho_dylibs.py
← Index redb/extractors/macho_extractors/macho_dylibs.py python
import hashlib
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor
from redb.models.dataclasses import MachODylib


class MachODylibExtractor(MachOExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_dylibs"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_dylibs(self):
        """Extract dynamic library information from all architectures in the MachO binary."""
        self.log.debug(inspect.currentframe().f_code.co_name)
        dylibs = []

        if not self.macho:
            return dylibs

        try:
            # Get architectures using new API (already parsed in base class)
            architectures = self.macho.get_architectures()
            if not architectures:
                return dylibs

            # Process each architecture
            for arch_name in architectures:
                # Get dylib commands using new API with architecture parameter
                dylib_commands = self.macho.get_dylib_commands(arch=arch_name)
                if not dylib_commands:
                    continue

                # Extract dylib commands for this architecture
                for dylib_cmd in dylib_commands:
                    try:
                        dylib_name = dylib_cmd.get('dylib_name', 'Unknown')
                        if isinstance(dylib_name, bytes):
                            dylib_name = dylib_name.decode('utf-8', errors='replace')

                        # Create dylib dataclass with architecture info
                        macho_dylib = MachODylib(
                            dylib_name=dylib_name,
                            dylib_timestamp=dylib_cmd.get('dylib_timestamp', 0),
                            dylib_current_version=dylib_cmd.get('dylib_current_version', 0),
                            dylib_compat_version=dylib_cmd.get('dylib_compat_version', 0),
                        )
                        # Add architecture info to the dylib
                        macho_dylib.architecture = arch_name
                        dylibs.append(macho_dylib)

                    except Exception as e:
                        self.log.warning(
                            f'Unable to process dylib "{dylib_cmd.get("dylib_name", "Unknown")}" for architecture {arch_name} in {self.hash.sha256}: {e}'
                        )
                        continue

            return dylibs

        except Exception as e:
            self.log.error(f"Error extracting MachO dylibs: {e}")
            return dylibs

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            dylibs = self._extract_dylibs()
            return dylibs
        except Exception as e:
            self.log.error(f"Error extracting MachO dylibs: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            if not self.macho:
                return None

            # Get architectures (macho is already parsed in base class)
            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            data = []
            current_time = datetime.now(timezone.utc)

            # Loop through each architecture (1 for single, multiple for FAT)
            for arch_name in architectures:
                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_header_raw = self.macho.get_macho_header(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                    arch_cputype_raw = arch_header_raw.get('cputype', 0) if arch_header_raw else 0
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific data for {arch_name}: {e}")
                    arch_sha256 = self.sha256
                    arch_cputype_raw = 0

                # Get dylib commands for this architecture
                dylib_commands = self.macho.get_dylib_commands(arch=arch_name)
                if not dylib_commands:
                    continue

                # Process each dylib for this architecture
                for dylib_cmd in dylib_commands:
                    try:
                        dylib_name = dylib_cmd.get('dylib_name', 'Unknown')
                        if isinstance(dylib_name, bytes):
                            dylib_name = dylib_name.decode('utf-8', errors='replace')

                        data.append([
                            arch_sha256,                          # sha256 (architecture-specific)
                            dylib_name,                           # dylib_name
                            dylib_cmd.get('dylib_timestamp', 0), # dylib_timestamp
                            dylib_cmd.get('dylib_current_version', 0), # dylib_current_version
                            dylib_cmd.get('dylib_compat_version', 0),  # dylib_compat_version
                            current_time,                         # analysis_date
                        ])
                    except Exception as e:
                        self.log.warning(
                            f'Unable to process dylib "{dylib_cmd.get("dylib_name", "Unknown")}" for architecture {arch_name}: {e}'
                        )
                        continue

            column_names = [
                'sha256',
                'dylib_name', 'dylib_timestamp', 'dylib_current_version',
                'dylib_compat_version', 'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)',
                'String', 'UInt32', 'UInt32',
                'UInt32', 'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

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