Hanae Koiso

19 papers A 1B 11Journal 2Unranked 5
YearRankTypeTitle / Venue / Authors
2022 B conf
LREC
Hanae Koiso, Haruka Amatani, Yasuharu Den, Yuriko Iseki, Yuichi Ishimoto, Wakako Kashino, Yoshiko Kawabata, Ken'ya Nishikawa, Yayoi Tanaka, Yasuyuki Usuda, Yuka Watanabe
2020 B conf
LREC
Teruaki Oka, Yuichi Ishimoto, Yutaka Yagi, Takenori Nakamura, Masayuki Asahara, Kikuo Maekawa, Toshinobu Ogiso, Hanae Koiso, Kumiko Sakoda, Nobuko Kibe
2018 B conf
LREC
Hanae Koiso, Yasuharu Den, Yuriko Iseki, Wakako Kashino, Yoshiko Kawabata, Ken'ya Nishikawa, Yayoi Tanaka, Yasuyuki Usuda
2016 B conf
LREC
Hanae Koiso, Tomoyuki Tsuchiya, Ryoko Watanabe, Daisuke Yokomori, Masao Aizawa, Yasuharu Den
2015 conf
ICPhS
Yasuharu Den, Hanae Koiso
2014 J jnl
Lang. Resour. Evaluation
Kikuo Maekawa, Makoto Yamazaki, Toshinobu Ogiso, Takehiko Maruyama, Hideki Ogura, Wakako Kashino, Hanae Koiso, Masaya Yamaguchi, Makiro Tanaka, Yasuharu Den
2014 B conf
LREC
Hanae Koiso, Yasuharu Den, Ken'ya Nishikawa, Kikuo Maekawa
2014 B conf
LREC
Yuichi Ishimoto, Tomoyuki Tsuchiya, Hanae Koiso, Yasuharu Den
2013 conf
DiSS
Hanae Koiso, Yasuharu Den
2012 B conf
LREC
Yasuharu Den, Hanae Koiso, Katsuya Takanashi, Nao Yoshida
2012 A conf
INTERSPEECH
Yosuke Igarashi, Hanae Koiso
2011 conf
ICPhS
Hanae Koiso, Yasuharu Den
2010 B conf
LREC
Kikuo Maekawa, Makoto Yamazaki, Takehiko Maruyama, Masaya Yamaguchi, Hideki Ogura, Wakako Kashino, Toshinobu Ogiso, Hanae Koiso, Yasuharu Den
2010 conf
DiSS-LPSS
Hanae Koiso, Yasuharu Den
2010 B conf
LREC
Yasuharu Den, Hanae Koiso, Takehiko Maruyama, Kikuo Maekawa, Katsuya Takanashi, Mika Enomoto, Nao Yoshida
2002 J jnl
Speech Commun.
Atsushi Shimojima, Yasuhiro Katagiri, Hanae Koiso, Marc Swerts
2000 B conf
LREC
Kikuo Maekawa, Hanae Koiso, Sadaoki Furui, Hitoshi Isahara
1998 conf
ICSLP
Marc Swerts, Hanae Koiso, Atsushi Shimojima, Yasuhiro Katagiri
1998 B conf
LREC
Akira Ichikawa, Masahiro Araki, Massato Ishizaki, Shuichi Itabashi, Toshihiko Itoh, Hideki Kashioka, Keiji Kato, Hideaki Kikuchi, Tomoko Kumagai, Akira Kurematsu, Hanae Koiso, Masafumi Tamoto, Syun Tutiya, Shu Nakazato, Yasuo Horiuchi, Kikuo Maekawa, Yoichi Yamashita, Takashi Yoshimnra
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())