Maki Yoshida

48 papers B 8C 5Misc 5Journal 15Unranked 15
YearRankTypeTitle / Venue / Authors
2025 conf
NFM
Sumio Morioka, Satoshi Obana, Maki Yoshida
2025 B conf
ITW
Maki Yoshida
2024 conf
SAI (2)
Sumio Morioka, Satoshi Obana, Maki Yoshida
2024 B conf
ISIT
Maki Yoshida
2023 B conf
ISIT
Maki Yoshida
2023 conf
WIPHAL
Maki Yoshida, Sumio Morioka, Satoshi Obana
2022 B conf
ISIT
Maki Yoshida
2022 conf
ICL-GNSS
Maki Yoshida, Sumio Morioka, Satoshi Obana
2022 B conf
GLOBECOM
Nobuyasu Shiga, Satoshi Yasuda, Kouki Yonaga, Kenichi Takizawa, Maki Yoshida
2021 B conf
ITW
Maki Yoshida
2021 J jnl
IACR Cryptol. ePrint Arch.
Akinori Kawachi, Maki Yoshida
2020 C conf
ISITA
Maki Yoshida, Satoshi Obana
2020 conf
ICETE (2)
Satoshi Obana, Maki Yoshida
2019 J jnl
IEEE Trans. Inf. Theory
Maki Yoshida, Toru Fujiwara, Marc P. C. Fossorier
2019 J jnl
IEEE Trans. Inf. Theory
Maki Yoshida, Satoshi Obana
2018 J jnl
IACR Cryptol. ePrint Arch.
Maki Yoshida, Satoshi Obana
2018 J jnl
Des. Codes Cryptogr.
Maki Yoshida, Satoshi Obana
2017 conf
ICITS
Maki Yoshida, Satoshi Obana
2016 B conf
CANS
Satoshi Obana, Maki Yoshida
2016 conf
SSR
Hideki Sakurada, Kazuki Yoneyama, Yoshikazu Hanatani, Maki Yoshida
2016 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Maki Yoshida, Toru Fujiwara
2015 J jnl
IEICE Trans. Inf. Syst.
Maki Yoshida, Kazuya Ohkita, Toru Fujiwara
2015 Misc conf
ICISC
Maki Yoshida, Satoshi Obana
2015 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Maki Yoshida, Toru Fujiwara
2014 Misc ed.
IWSEC
Maki Yoshida, Koichi Mouri
2014 conf
IWIHC@AsiaCCS
Hironobu Tozuka, Maki Yoshida, Toru Fujiwara
2013 J jnl
IACR Cryptol. ePrint Arch.
Maki Yoshida, Satoshi Obana
2012 Misc conf
IWSEC
Itsuki Suzuki, Maki Yoshida, Toru Fujiwara
2012 C conf
ISITA
Seigo Ikeda, Maki Yoshida, Toru Fujiwara
2012 conf
ICITS
Maki Yoshida, Toru Fujiwara, Marc P. C. Fossorier
2011 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Maki Yoshida, Toru Fujiwara
2010 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Maki Yoshida, Shigeo Mitsunari, Toru Fujiwara
2009 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Maki Yoshida, Toru Fujiwara
2009 C conf
IWDW
Kazuya Ohkita, Maki Yoshida, Itaru Kitamura, Toru Fujiwara
2009 conf
IIH-MSP
Maki Yoshida, Toru Fujiwara
2008 Misc conf
ICISC
Kazuhiro Haramura, Maki Yoshida, Toru Fujiwara
2008 C conf
ICICS
Mohamed Layouni, Maki Yoshida, Shingo Okamura
2008 conf
IIH-MSP
Maki Yoshida, Toru Fujiwara
2007 conf
IIH-MSP
Maki Yoshida, Itaru Kitamura, Toru Fujiwara
2007 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Takaaki Fujita, Maki Yoshida, Toru Fujiwara
2007 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Satoshi Nakayama, Maki Yoshida, Shingo Okamura, Toru Fujiwara
2007 B conf
ISIT
Maki Yoshida, Toru Fujiwara
2006 conf
IIH-MSP
Maki Yoshida, Takaaki Fujita, Toru Fujiwara
2006 conf
WCAN@ICALP
Maki Yoshida, Toru Fujiwara
2005 Misc conf
ICISC
Maki Yoshida, Shigeo Mitsunari, Toru Fujiwara
2005 conf
ISSA
Shingo Okamura, Maki Yoshida, Toru Fujiwara
2005 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Shingo Okamura, Yoshiyuki Konishi, Maki Yoshida, Toru Fujiwara
2001 C conf
IMACC
Maki Yoshida, Toru Fujiwara
redb/extractors/decompiler/bninja/analysis/strings.py
← Index redb/extractors/decompiler/bninja/analysis/strings.py python
from collections import Counter
import math

class StringAnalysis:
    def __init__(self, bv, functions):
        self.bv = bv
        self.functions = functions

    def entropy(self, s: str) -> float:
        """Compute Shannon entropy of a string."""
        if not s:
            return 0.0
        freq = Counter(s)
        length = len(s)
        return -sum((count / length) * math.log2(count / length) for count in freq.values())

    def analyze(self):
        """
        Extract unique strings from the binary.

        Deduplicates by (string, encoding) within the same binary, keeping the
        first occurrence (lowest offset). Cross-binary deduplication and
        aggregation is handled by ClickHouse materialized views.
        """
        strings = {}

        # Sort strings by their starting address
        sorted_entries = sorted(self.bv.strings, key=lambda e: e.start)

        for entry in sorted_entries:
            # Key is the string and its encoding
            key = (entry.value, entry.type.name)

            # Skip if this string (value + encoding) was already added.
            # Because entries are sorted by address, the first one is always kept.
            if key in strings:
                continue

            # Store only the first occurrence with schema-matching field names
            # entry.length is the raw byte length, len(entry.value) is decoded string length
            string_entry = {
                "string": entry.value,
                "string_raw": entry.raw,
                "string_encoding": entry.type.name,
                "string_offset": entry.start,
                "string_length": len(entry.value),
                "string_raw_length": entry.length,
                "string_entropy": self.entropy(entry.value),
            }

            strings[key] = string_entry

        # Return as list for export compatibility
        return list(strings.values())