Xianbo Xiang

50 papers A 3Journal 36Unranked 11
YearRankTypeTitle / Venue / Authors
2026 J jnl
Eng. Appl. Artif. Intell.
Chaicheng Jiang, Xianbo Xiang, Jihong Zhu, Zhigang Zeng
2026 J jnl
IEEE Trans. Veh. Technol.
Yiming Zhong, Caoyang Yu, Kaicheng Shen, Xianbo Xiang, Lian Lian
2025 J jnl
J. Field Robotics
Yu Duan, Xiawei Guan, Yifan Liu, Shaolong Yang, Xianbo Xiang, Hong Chen
2025 J jnl
J. Field Robotics
Yiming Zhong, Caoyang Yu, Xianbo Xiang, Lian Lian
2025 J jnl
Trans. Inst. Meas. Control
Donglei Dong, Xianbo Xiang, Jinjiang Li, Shaolong Yang
2025 J jnl
Neural Comput. Appl.
Jialei Zhang, Xianbo Xiang, Qin Zhang, Bo Tao
2025 J jnl
Robotics Auton. Syst.
Zhao Wang, Xianbo Xiang, Xinyang Xiong, Shaolong Yang
2024 J jnl
Complex Intell. Syst.
Chaicheng Jiang, Xianbo Xiang, Gong Xiang
2024 J jnl
J. Field Robotics
Chuan Liu, Xianbo Xiang, Yu Duan, Lichun Yang, Shaolong Yang
2024 J jnl
IEEE Trans. Ind. Electron.
Xinyang Xiong, Xianbo Xiang, Yu Duan, Shaolong Yang
2024 J jnl
Eng. Appl. Artif. Intell.
Zhao Wang, Xianbo Xiang, Yu Duan, Shaolong Yang
2024 conf
ICIRA (6)
Donglei Dong, Xianbo Xiang, Jinjiang Li, Shaolong Yang
2024 conf
ASCC
Yanji Zhu, Shaolong Yang, Jiahao Zou, Xianbo Xiang
2024 J jnl
IEEE Trans. Veh. Technol.
Jialei Zhang, Xianbo Xiang, Qin Zhang, Bo Tao
2024 J jnl
IEEE Trans. Intell. Transp. Syst.
Jinjiang Li, Xianbo Xiang, Donglei Dong, Shaolong Yang
2024 conf
ICIRA (6)
Zhao Wang, Xianbo Xiang, Xinyang Xiong, Shaolong Yang
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jialei Zhang, Xianbo Xiang, Weijia Li, Qin Zhang
2023 J jnl
Int. J. Intell. Robotics Appl.
Fumin Zhang, Xianbo Xiang, YangQuan Chen, Shaohui Foong, Francesco Maurelli
2023 J jnl
Int. J. Fuzzy Syst.
Chuan Liu, Jinjiang Li, Shaolong Yang, Xianbo Xiang
2023 conf
CACRE
Yu Duan, Xianbo Xiang, Yifan Liu, Lichun Yang
2022 J jnl
Int. J. Intell. Robotics Appl.
Francesco Maurelli, Szymon Krupinski, Xianbo Xiang, Yvan R. Petillot
2022 J jnl
Neurocomputing
Jinjiang Li, Xianbo Xiang, Shaolong Yang
2021 J jnl
Frontiers Robotics AI
Shaolong Yang, Chuan Liu, Ya Liu, Jinxin An, Xianbo Xiang
2020 J jnl
Biomed. Signal Process. Control.
Qin Zhang, Yang Meng, Linhui Wu, Xianbo Xiang, Caihua Xiong
2020 conf
ICSSE
Guangzhao Zhou, Xianbo Xiang, Chuan Liu, Shaolong Yang
2020 J jnl
Int. J. Intell. Robotics Appl.
Shaohui Foong, Xianbo Xiang
2020 J jnl
IEEE Trans. Cybern.
Caoyang Yu, Xianbo Xiang, Philip A. Wilson, Qin Zhang
2019 J jnl
IEEE Access
Yingkai Xia, Kan Xu, Ye Li, Guohua Xu, Xianbo Xiang
2019 conf
CACRE
Jialei Zhang, Xianbo Xiang
2019 conf
ICIRA (3)
Zongtong Luo, Xianbo Xiang, Qin Zhang
2019 conf
ICIRA (3)
Donglei Dong, Xianbo Xiang, Jinrong Zheng, Qin Zhang
2019 J jnl
Int. J. Intell. Robotics Appl.
Xianbo Xiang, Garrett M. Clayton, Shaohui Foong, Francesco Maurelli, Fumin Zhang
2018 J jnl
Int. J. Fuzzy Syst.
Zhenzhong Chu, Xianbo Xiang, Daqi Zhu, Chaomin Luo, De Xie
2018 J jnl
Int. J. Fuzzy Syst.
Caoyang Yu, Xianbo Xiang, Qin Zhang, Guohua Xu
2018 J jnl
IEEE Access
Yingkai Xia, Kan Xu, Ye Li, Guohua Xu, Xianbo Xiang
2018 J jnl
Complex.
Xianbo Xiang, Caoyang Yu, He Xu, Stuart X. Zhu
2018 J jnl
Int. J. Fuzzy Syst.
Xianbo Xiang, Caoyang Yu, Lionel Lapierre, Jialei Zhang, Qin Zhang
2018 J jnl
Complex.
Qin Zhang, Jialei Zhang, Ahmed Chemori, Xianbo Xiang
2017 J jnl
Comput. Oper. Res.
Xianbo Xiang, Caoyang Yu, Qin Zhang
2017 J jnl
CoRR
Lei Zhang, Huaxi (Yulin) Zhang, Zheng Fang, Xianbo Xiang, Marianne Huchard, René Zapata
2016 J jnl
Sensors
Xianbo Xiang, Caoyang Yu, Zemin Niu, Qin Zhang
2015 J jnl
Robotics Auton. Syst.
Xianbo Xiang, Lionel Lapierre, Bruno Jouvencel
2013 conf
ICONS
Xianbo Xiang
2013 J jnl
IEEE Trans. Ind. Informatics
Qin Zhang, Lionel Lapierre, Xianbo Xiang
2012 J jnl
J. Syst. Sci. Complex.
Xianbo Xiang, Chao Liu, Lionel Lapierre, Bruno Jouvencel
2011 A conf
IROS
Xianbo Xiang, Lionel Lapierre, Chao Liu, Bruno Jouvencel
2010 A conf
IROS
Xianbo Xiang, Lionel Lapierre, Bruno Jouvencel
2009 A conf
IROS
Xianbo Xiang, Lionel Lapierre, Bruno Jouvencel, Olivier Parodi
2007 conf
ROBIO
Xianbo Xiang, Guohua Xu, Qin Zhang, Zhihu Xiao, Xinhan Huang
2007 conf
ROBIO
Guohua Xu, Zhihu Xiao, Ying Guo, Xianbo Xiang
redb/extractors/apk_extractors/apk_native_libs.py
← Index redb/extractors/apk_extractors/apk_native_libs.py python
import fnmatch
import hashlib
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.apk_extractor import APKExtractor
from redb.models.dataclasses import APKNativeLib

# Known packer/protector native library names
KNOWN_PACKER_LIBS = {
    # Jiagu (360/Qihoo)
    "libjiagu.so", "libjiagu_a64.so", "libjiagu_x86.so", "libjiagu_x64.so",
    # Bangcle/SecNeo
    "libsecexe.so", "libsecmain.so", "libSecShell.so",
    # Baidu
    "libbaiduprotect.so",
    # Tencent (Legu)
    "libtxAppProtect.so", "libBugly.so",
    # iJiami
    "libexec.so", "libexecmain.so",
    # Alibaba
    "libmobisec.so", "libaliprotect.so",
    # APKProtect
    "libAPKProtect.so",
    # Pangxie (Pangolin)
    "libdexjni.so",
    # DexProtector
    "libdexprotector.so",
    # AppSolid
    "libAppSolid.so",
    # Kiwisec
    "libkwscmm.so",
    # DingXiang
    "libx3g.so",
    # NQ Shield
    "libnqshield.so",
    # Generic / other
    "libprotectClass.so",
    "libDexHelper.so",
    "libdexloader.so",
    "libfdog.so",
}

# Glob-style patterns for packer libs (e.g. libshella-*.so)
KNOWN_PACKER_PATTERNS = [
    "libshella-*.so",
    "libshell-super.*.so",
]


def is_known_packer_lib(filename):
    """Check if a native library filename matches known packer signatures."""
    if filename in KNOWN_PACKER_LIBS:
        return True
    for pattern in KNOWN_PACKER_PATTERNS:
        if fnmatch.fnmatch(filename, pattern):
            return True
    return False


class APKNativeLibExtractor(APKExtractor):

    def __init__(
        self, filepath, log, exporters=None, index_prefix=None,
        known_benign=False, known_malicious=False,
        apk=None,
    ):
        super().__init__(
            filepath, log, exporters, index_prefix,
            known_benign, known_malicious, apk,
        )
        self.native_libs = []
        self.abis = set()
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.APK_NATIVE_LIBS.value

    def extract(self):
        if not self._is_valid_apk():
            self.log.error(f"Invalid APK for {self.hash.sha256}")
            return None

        self.native_libs = []
        self.abis = set()

        zf = self._get_zip_file()
        if not zf:
            return None

        with zf:
            for info in zf.infolist():
                if not (info.filename.startswith("lib/") and info.filename.endswith(".so")):
                    continue
                parts = info.filename.split("/")
                if len(parts) < 3:
                    continue

                abi = parts[1]
                filename = parts[-1]
                self.abis.add(abi)

                try:
                    data = zf.read(info.filename)
                    lib_sha256 = hashlib.sha256(data).hexdigest()
                except Exception as e:
                    self.log.warning(f"Error reading native lib {info.filename}: {e}")
                    continue

                self.native_libs.append(APKNativeLib(
                    abi=abi,
                    filename=filename,
                    size=info.file_size,
                    sha256=lib_sha256,
                    is_known_packer=is_known_packer_lib(filename),
                ))

        if not self.native_libs:
            return None

        return {
            "native_lib_count": len(self.native_libs),
            "abis": sorted(self.abis),
            "native_libs": self.native_libs,
            "known_packer_libs": [
                lib for lib in self.native_libs if lib.is_known_packer
            ],
        }

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ClickHouseExporter":
            if not self.native_libs:
                return None

            current_time = datetime.now(timezone.utc)
            data = []
            for lib in self.native_libs:
                data.append([
                    self.sha256,
                    lib.abi,
                    lib.filename,
                    lib.size,
                    lib.sha256,
                    int(lib.is_known_packer),
                    current_time,
                ])

            column_names = [
                'sha256', 'lib_abi', 'lib_filename', 'lib_size',
                'lib_sha256', 'lib_is_known_packer', 'analysis_date',
            ]

            column_type_names = [
                'FixedString(64)', 'LowCardinality(String)', 'String', 'UInt64',
                'FixedString(64)', 'UInt8', "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_apk_native_libs"