Xianglin Zuo

26 papers A* 2B 1C 1Journal 17Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Neural Networks
Xianglin Zuo, Baohang Wei, Hao Yuan, Ying Wang
2025 J jnl
Neural Networks
Ying Wang, Xianglin Zuo, Xinglin Liu, Fuyuan Ma, Junhe Zhang, Bo Yang
2025 J jnl
J. Artif. Intell. Res.
Xianglin Zuo, Xin He, Tianhao Jia, Ying Wang
2023 J jnl
Neurocomputing
Xianglin Zuo, Shining Liang, Xiaosong Yuan, Shuang Yu, Bo Yang
2023 J jnl
Inf. Sci.
Xianglin Zuo, Hao Yuan, Bo Yang, Hongji Wang, Ying Wang
2023 J jnl
Inf. Sci.
Xianglin Zuo, Wenqi Chen, Song Xianduo, Xin Wang, Ying Wang
2022 J jnl
Entropy
Yu Zhao, Wanli Zuo, Shining Liang, Xiaosong Yuan, Yijia Zhang, Xianglin Zuo
2022 J jnl
Neurocomputing
Shining Liang, Wanli Zuo, Zhenkun Shi, Sen Wang, Junhu Wang, Xianglin Zuo
2022 J jnl
Entropy
Xianglin Zuo, Tianhao Jia, Xin He, Bo Yang, Ying Wang
2022 J jnl
Inf. Sci.
Song Xianduo, Xin Wang, Yuyuan Song, Xianglin Zuo, Ying Wang
2022 A* conf
EMNLP
Shining Liang, Linjun Shou, Jian Pei, Ming Gong, Wanli Zuo, Xianglin Zuo, Daxin Jiang
2022 J jnl
CoRR
Shining Liang, Linjun Shou, Jian Pei, Ming Gong, Wanli Zuo, Xianglin Zuo, Daxin Jiang
2022 J jnl
KSII Trans. Internet Inf. Syst.
Wajid Ali, Wanli Zuo, Rahman Ali, Gohar Rahman, Xianglin Zuo, Inam Ullah
2021 J jnl
Inf. Sci.
Zhenkun Shi, Sen Wang, Lin Yue, Lixin Pang, Xianglin Zuo, Wanli Zuo, Xue Li
2021 A* conf
KDD
Shining Liang, Ming Gong, Jian Pei, Linjun Shou, Wanli Zuo, Xianglin Zuo, Daxin Jiang
2021 J jnl
CoRR
Shining Liang, Ming Gong, Jian Pei, Linjun Shou, Wanli Zuo, Xianglin Zuo, Daxin Jiang
2020 B conf
COLING
Jinghang Xu, Wanli Zuo, Shining Liang, Xianglin Zuo
2020 J jnl
IEEE Access
Zhenkun Shi, Wanli Zuo, Shining Liang, Xianglin Zuo, Lin Yue, Xue Li
2019 conf
KSEM (1)
Xing Wei, Xianglin Zuo, Bo Yang
2018 J jnl
IEEE Access
Xianglin Zuo, Xueyan Liu, Bo Yang
2018 conf
KSEM (2)
Xianglin Zuo, Xing Wei, Bo Yang
2017 conf
ICDM Workshops
Xianglin Zuo, Bo Yang, Wanli Zuo
2013 conf
ICICA (1)
Xu-Ming Wang, Wanli Zuo, Ying Wang, Xianglin Zuo
2013 conf
ICDM Workshops
Junhua Wang, Xianglin Zuo, Wanli Zuo, Tao Peng
2013 C conf
ICCC
Qian Zhang, Tianyi Zhang, Xianglin Zuo, Yuan Yao, Baoping Feng, Junhua Wang, Wanli Zuo
2012 J jnl
J. Softw.
Mengmeng Wang, Xianglin Zuo, Wanli Zuo, Ying Wang
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())