Xiaojiang Ren

25 papers A* 1B 11Journal 13
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Internet Things J.
Keyin Wang, Guoqiang Mao, Xiaojiang Ren, Haoyuan Du, Baoqi Huang, Tianxuan Fu, Zhaozhong Zhang
2026 J jnl
IEEE Trans. Veh. Technol.
Adnan A. Qaseem, Lei Ao, Kai Sheng, Dejene M. Sime, Qing Cai, Jianzhao Li, Xiaojiang Ren
2026 J jnl
IEEE Trans. Ind. Informatics
Dejene M. Sime, Nan Ouyang, Kai Sheng, Getu T. Fellek, Wenkang Wan, Adnan A. Qaseem, Xiaojiang Ren, Shehui Bu
2025 B conf
WCNC
Guoqiang Mao, Keyin Wang, Haoyuan Du, Xiaojiang Ren
2025 J jnl
IEEE Trans. Intell. Transp. Syst.
Guoqiang Mao, Tianxuan Fu, Xiaojiang Ren, Keyin Wang, Zhaozhong Zhang, Zhong Wu, Dahai Xu
2025 B conf
WCNC
Guoqiang Mao, Tianxuan Fu, Xiaojiang Ren
2025 J jnl
IEEE Trans. Intell. Transp. Syst.
Nan Ouyang, Lei Ao, Qing Cai, Wenkang Wan, Xiaojiang Ren, Xin He, Kai Sheng
2025 J jnl
IEEE Trans. Intell. Transp. Syst.
Guoqiang Mao, Keyin Wang, Haoyuan Du, Baoqi Huang, Xiaojiang Ren, Tianxuan Fu, Zhaozhong Zhang
2025 B conf
GLOBECOM
Guoqiang Mao, Tianxuan Fu, Xiaojiang Ren, Keyin Wang
2022 J jnl
CoRR
Xiaojiang Ren, Hui Guo, Changxin Gao, Sheng Kai, Guoqiang Mao
2022 J jnl
IEEE Intell. Transp. Syst. Mag.
Guoqiang Mao, Yilong Hui, Xiaojiang Ren, Changle Li, Yongjun Shao
2022 J jnl
CoRR
Xiaojiang Ren, Yuanfa Tu, Yingfan Geng, Changle Li, Guoqiang Mao
2021 A* conf
INFOCOM
Junqi Zhang, Zheng Li, Wenzheng Xu, Jian Peng, Weifa Liang, Zichuan Xu, Xiaojiang Ren, Xiaohua Jia
2016 J jnl
ACM Trans. Sens. Networks
Weifa Liang, Wenzheng Xu, Xiaojiang Ren, Xiaohua Jia, Xiaola Lin
2015 J jnl
IEEE Trans. Computers
Xiaojiang Ren, Weifa Liang, Wenzheng Xu
2015 J jnl
IEEE Trans. Emerg. Top. Comput.
Xiaojiang Ren, Weifa Liang, Wenzheng Xu
2014 B conf
PIMRC
Xiaojiang Ren, Weifa Liang
2014 B conf
LCN
Weifa Liang, Wenzheng Xu, Xiaojiang Ren, Xiaohua Jia, Xiaola Lin
2014 B conf
ICCCN
Xiaojiang Ren, Weifa Liang, Wenzheng Xu
2014 B conf
PIMRC
Wenzheng Xu, Weifa Liang, Xiaojiang Ren, Xiaola Lin
2014 B conf
ICPP
Wenzheng Xu, Weifa Liang, Xiaola Lin, Guoqiang Mao, Xiaojiang Ren
2013 J jnl
IEEE Trans. Parallel Distributed Syst.
Weifa Liang, Xiaojiang Ren, Xiaohua Jia, Xu Xu
2013 B conf
WCNC
Xiaojiang Ren, Weifa Liang
2013 B conf
ICPP
Xiaojiang Ren, Weifa Liang, Wenzheng Xu
2012 B conf
GLOBECOM
Xiaojiang Ren, Weifa Liang
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())