Na Min An

20 papers A* 2B 1Journal 13Unranked 4
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Na Min An, Yoonna Jang, Yusuke Hirota, Ryo Hachiuma, Isabelle Augenstein, Hyunjung Shim
2025 J jnl
CoRR
NaHyeon Park, Na Min An, Kunhee Kim, Soyeon Yoon, Jiahao Huo, Hyunjung Shim
2025 J jnl
CoRR
Na Min An, Inha Kang, Minhyun Lee, Hyunjung Shim
2025 conf
ACL (1)
Zahra Bayramli, Ayhan Suleymanzade, Na Min An, Huzama Ahmad, Eunsu Kim, Junyeong Park, James Thorne, Alice Oh
2025 J jnl
CoRR
Zahra Bayramli, Ayhan Suleymanzade, Na Min An, Huzama Ahmad, Eunsu Kim, Junyeong Park, James Thorne, Alice Oh
2025 conf
ACL (1)
Na Min An, Eunki Kim, James Thorne, Hyunjung Shim
2025 A* conf
EMNLP
Sania Waheed, Na Min An
2025 J jnl
CoRR
Sania Waheed, Na Min An
2025 J jnl
CoRR
Eunki Kim, Na Min An, James Thorne, Hyunjung Shim
2025 conf
ACL (1)
Wan Ju Kang, Eunki Kim, Na Min An, Sangryul Kim, Haemin Choi, Ki Hoon Kwak, James Thorne
2025 J jnl
CoRR
Wan Ju Kang, Eunki Kim, Na Min An, Sangryul Kim, Haemin Choi, Ki Hoon Kwak, James Thorne
2025 J jnl
CoRR
Sania Waheed, Na Min An, Michael Milford, Sarvapali D. Ramchurn, Shoaib Ehsan
2025 J jnl
CoRR
Jun Seong Kim, Ye Kyaw Thu, Javad Ismayilzada, Junyeong Park, Eunsu Kim, Huzama Ahmad, Na Min An, James Thorne, Alice Oh
2025 J jnl
CoRR
Eunsu Kim, Junyeong Park, Na Min An, Junseong Kim, Hitesh Laxmichand Patel, Jiho Jin, Julia Kruk, Amit Agarwal, Srikant Panda, Fenal Ashokbhai Ilasariya, Hyunjung Shim, Alice Oh
2024 conf
EACL (Findings)
Na Min An, Sania Waheed, James Thorne
2024 J jnl
CoRR
Na Min An, Eunki Kim, James Thorne, Hyunjung Shim
2024 A* conf
EMNLP
Woojin Chung, Jiwoo Hong, Na Min An, James Thorne, Se-Young Yun
2024 J jnl
CoRR
Woojin Chung, Jiwoo Hong, Na Min An, James Thorne, Se-Young Yun
2023 J jnl
CoRR
Noah Lee, Na Min An, James Thorne
2023 B conf
IJCNN
Na Min An, Hyeonhee Roh, Sein Kim, Jae Hun Kim, Maesoon Im
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())