Kaipu Wang

23 papers Journal 23
YearRankTypeTitle / Venue / Authors
2026 J jnl
Appl. Soft Comput.
Zenan Tan, Shunsheng Guo, Jun Guo, Baigang Du, Kaipu Wang
2026 J jnl
Robotics Comput. Integr. Manuf.
Wei Zhang, Yibing Li, Kaipu Wang, Wenjun Xu, Liang Gao
2026 J jnl
Comput. Oper. Res.
Haiqi Zou, Kaipu Wang, Zhuhao Hou, Yibing Li, Jun Guo, Liang Gao
2026 J jnl
Adv. Eng. Informatics
Zhijie Yang, Xinkai Hu, Yibing Li, Kaipu Wang, Shunsheng Guo, Zao Liu
2026 J jnl
Reliab. Eng. Syst. Saf.
Zeqiang Zhang, Yue Han, Yan Li, Yanqing Zeng, Qiqi Xia, Kaipu Wang
2025 J jnl
Swarm Evol. Comput.
Yibing Li, Xin Tong, Haiqi Zou, Jun Guo, Lei Wang, Hongtao Tang, Kaipu Wang, Xinyu Li
2025 J jnl
Expert Syst. Appl.
Xin Chen, Yibing Li, Lei Wang, Kaipu Wang, Jun Guo, Jie Liu
2024 J jnl
Int. J. Prod. Res.
Xiang Sun, Shunsheng Guo, Jun Guo, Baigang Du, Zhijie Yang, Kaipu Wang
2024 J jnl
Eng. Appl. Artif. Intell.
Fei Yu, Chao Lu, Jiajun Zhou, Lvjiang Yin, Kaipu Wang
2024 J jnl
Expert Syst. Appl.
Mengzhen Zhuang, Wei Zhang, Hongtao Tang, Xinyu Li, Kaipu Wang
2024 J jnl
Adv. Eng. Informatics
Jun Guo, Yang Li, Baigang Du, Xiang Sun, Kaipu Wang
2024 J jnl
IEEE Trans. Ind. Informatics
Kaipu Wang, Yibing Li, Jun Guo, Liang Gao, Xinyu Li
2024 J jnl
Expert Syst. Appl.
Jun Guo, Yang Li, Baigang Du, Kaipu Wang
2023 J jnl
Comput. Ind. Eng.
Kaipu Wang, Jun Guo, Baigang Du, Yibing Li, Hongtao Tang, Xinyu Li, Liang Gao
2023 J jnl
Comput. Ind. Eng.
Jun Guo, Junfeng Zou, Baigang Du, Kaipu Wang
2022 J jnl
IEEE Trans. Cybern.
Kaipu Wang, Xinyu Li, Liang Gao, Peigen Li, John W. Sutherland
2022 J jnl
IEEE Trans Autom. Sci. Eng.
Kaipu Wang, Liang Gao, Xinyu Li, Peigen Li
2022 J jnl
IEEE Trans. Cybern.
Kaipu Wang, Xinyu Li, Liang Gao, Peigen Li
2021 J jnl
Appl. Soft Comput.
Kaipu Wang, Xinyu Li, Liang Gao, Peigen Li, Surendra M. Gupta
2020 J jnl
Neural Comput. Appl.
Kaipu Wang, Liang Gao, Xinyu Li
2019 J jnl
Comput. Ind. Eng.
Kaipu Wang, Xinyu Li, Liang Gao
2019 J jnl
Robotics Comput. Integr. Manuf.
Kaipu Wang, Xinyu Li, Liang Gao, Akhil Garg
2017 J jnl
Expert Syst. Appl.
Zeqiang Zhang, Kaipu Wang, Lixia Zhu, Yi 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())