Xi Zheng

66 papers A* 3A 1B 2C 2Misc 1Journal 45Unranked 11
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Fida Khandaker Safa, Yupeng Jiang, Xi Zheng
2026 J jnl
Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.
Chenhao Hong, Xi Zheng, Minhui Liang, Junqiao Qiu, Yuhan Luo
2025 J jnl
CoRR
Linfeng Liang, Chenkai Tan, Yao Deng, Yingfeng Cai, T. Y. Chen, Xi Zheng
2025 A* conf
CHI
Xi Zheng, Zhuoyang Li, Xinning Gui, Yuhan Luo
2025 J jnl
CoRR
Xi Zheng, Zhuoyang Li, Xinning Gui, Yuhan Luo
2025 conf
EUSIPCO
Hongwei Wang, Jun Fang, Xi Zheng, Hongbin Li, Jilin Wang
2025 J jnl
CoRR
Yihao Zhang, Yuankai Qi, Xi Zheng
2025 J jnl
CoRR
Siwei Luo, Yang Zhang, Yao Deng, Xi Zheng
2025 J jnl
CoRR
Ruiyang Zhao, Bingbing Zhu, Chuxuan Tong, Xiaoyi Zhou, Xi Zheng
2025 J jnl
CoRR
Shuo Chen, Yijin Li, Xi Zheng, Guofeng Zhang
2025 J jnl
CoRR
Bingsheng Peng, Shutao Zhang, Xi Zheng, Ye Xue, Xinyu Qin, Tsung-Hui Chang
2025 J jnl
IEEE Trans. Image Process.
Kunping Yang, Linying Chen, Xi Zheng, Xuanping Li, Junhui Lan, Yi Wu, Julia Y. S. Tsang, Gary M. Tse
2025 A conf
Conference on Designing Interactive Systems
Yuhan Luo, Xinning Gui, Sharon Xianghua Ding, Xi Zheng, Rie Helene (Lindy) Hernandez, Zhuoyang Li, Qiurong Song
2025 J jnl
CoRR
Yupeng Jiang, Shuaiyi Sun, Xi Zheng
2025 J jnl
CoRR
Xi Zheng, Yinghui Huang, Xiangyu Chang, Ruoxi Jia, Yong Tan
2025 J jnl
CoRR
Hoa Khanh Dam, Geeta Mahala, Rashina Hoda, Xi Zheng, Cristina Conati
2025 A* conf
IJCAI
Zhi Sheng, Daisy Yuan, Jingtao Ding, Qi Yan, Xi Zheng, Yue Sun, Yong Li
2024 J jnl
IEEE Trans. Wirel. Commun.
Shutao Zhang, Xinzhi Ning, Xi Zheng, Qingjiang Shi, Tsung-Hui Chang, Zhi-Quan Luo
2024 J jnl
Electron. Commer. Res. Appl.
Jiang Wu, Linxiu Hu, Xiuli He, Xi Zheng
2024 J jnl
Int. J. Hum. Comput. Interact.
Xin He, Xi Zheng, Huiyuan Ding, Yixuan Liu, Hongling Zhu
2024 J jnl
IEEE Trans. Veh. Technol.
Xi Zheng, Jun Fang, Hongwei Wang, Peilan Wang, Hongbin Li
2024 Misc conf
ICASSP
Hongwei Wang, Xi Zheng, Hongbin Li
2024 J jnl
Int. J. Neural Syst.
Xi Zheng, Yi Yang, Dehan Li, Yi Deng, Yuexiong Xie, Zhang Yi, Litai Ma, Lei Xu
2024 conf
ICASSP Workshops
Hongwei Wang, Xi Zheng
2024 A* conf
ICRA
Xiangyong Wen, Yingjian Wang, Xi Zheng, Kaiwei Wang, Chao Xu, Fei Gao
2024 J jnl
IEEE J. Biomed. Health Informatics
Xinsen Lian, Kunping Yang, Bingzhi Chen, Xiuhong Cai, Xinling Lu, Xinyao Xu, Jinlin Chen, Ming Tian, Pengtao Lin, Xi Zheng, Linying Chen
2023 J jnl
Adv. Comput.
Jun Peng, Shangzhu Jin, Yingxu Wang, Xi Zheng, Xiangren Wang
2023 J jnl
Int. J. Hum. Comput. Interact.
Maryam Zahabi, Xi Zheng, Azima Maredia, Farzaneh Shahini
2023 conf
MSN
Xi Zheng, Hongcheng Xie, Yu Guo, Rongfang Bie
2023 conf
SPAWC
Xinzhi Ning, Shutao Zhang, Ye Xue, Xi Zheng, Qingjiang Shi, Tsung-Hui Chang
2023 J jnl
IEEE Commun. Mag.
Zhi-Quan Luo, Xi Zheng, David López-Pérez, Qi Yan, Xin Chen, Nanbin Wang, Qingjiang Shi, Tsung-Hui Chang, Adrian García-Rodríguez
2023 J jnl
CoRR
Xiangyong Wen, Yingjian Wang, Xi Zheng, Kaiwei Wang, Chao Xu, Fei Gao
2023 J jnl
IEEE Trans. Instrum. Meas.
Chenming Zhong, Jing-Yu Deng, Xi Zheng, Chang-Dong Tong, Guo-Bao Zhao, Guo-Long Chen, Hui-Hui Meng, Lihong Zhu, Yi-Jun Lu, Zhong Chen, Wei-Jie Guo
2023 J jnl
JOCN
Mohsan Niaz Chughtai, Shabnam Noor, Ignas Laurinavicius, Philippos Assimakopoulos, Nathan J. Gomes, Huiling Zhu, Jiangzhou Wang, Xi Zheng, Qi Yan
2023 J jnl
Int. J. Hum. Comput. Interact.
Xin He, Yeyi Hong, Xi Zheng, Yong Zhang
2022 J jnl
IEEE Wirel. Commun. Lett.
Xi Zheng, Peilan Wang, Jun Fang, Hongbin Li
2022 conf
ISWCS
Xinzhi Ning, Shutao Zhang, Xi Zheng, Tsung-Hui Chang
2022 conf
ICEBE
Xi Zheng
2022 conf
BDE
Xi Zheng
2022 ch.
Handbook of Real-Time Computing
Xi Zheng
2022 conf
ICCSIE
Xi Zheng
2022 J jnl
CoRR
Shengzhe Wang, Ling Wang, Zhihao Lin, Xi Zheng
2021 J jnl
Reliab. Eng. Syst. Saf.
Matthew L. Bolton, Xi Zheng, Eunsuk Kang
2021 J jnl
Comput. Ind. Eng.
Xi Zheng, Jyun-You Chiang, Tzong-Ru Tsai, Shuai Wang
2021 J jnl
CoRR
Tiehua Zhang, Yuze Liu, Xin Chen, Xiaowei Huang, Feng Zhu, Xi Zheng
2021 conf
ESSE
Yasi Zhang, Sicheng Zhou, Xi Zheng, Yuyu Wang, Minrui Liang
2020 J jnl
Hum. Factors
Matthew L. Bolton, Xi Zheng, Meng Li, Judy Reed Edworthy, Andrew D. Boyd
2020 J jnl
Appl. Soft Comput.
Min Xia, Xi Zheng, Muhammad Imran, Muhammad Shoaib
2020 conf
AHFE (5)
Xi Zheng, Xin He
2020 J jnl
Reliab. Eng. Syst. Saf.
Xi Zheng, Matthew L. Bolton, Christopher Daly, Elliot Biltekoff
2019 conf
CSS (2)
Baochang Zhang, Juan Li, Xi Zheng, Jingjun Ge, Juan Sun
2019 J jnl
IEEE Access
Zheng Gong, Xi Zheng, Haijun Zhang, Peng Dai, Xiaojie Wu, Ming Li
2019 J jnl
CoRR
Xi Zheng
2019 J jnl
IET Image Process.
Xiaorong Zhang, Zhibin Pan, Bingliang Hu, Xi Zheng, Weihua Liu
2018 J jnl
CoRR
Xi Zheng
2018 J jnl
Multim. Tools Appl.
Xiaorong Zhang, Zhibin Pan, Xiaoqiang Lu, Bingliang Hu, Xi Zheng
2017 J jnl
IEEE Trans. Hum. Mach. Syst.
Meng Li, Jiajun Wei, Xi Zheng, Matthew L. Bolton
2017 J jnl
Innov. Syst. Softw. Eng.
Matthew L. Bolton, Xi Zheng, Kylie Molinaro, Adam Houser, Meng Li
2017 J jnl
计算机科学
Zhiguo Zhang, Xi Zheng, Jingchuan Lan
2016 J jnl
Appl. Math. Comput.
Yongfeng Zhi, Yunyi Yang, Xi Zheng, Jun Zhang, Zhen Wang
2015 J jnl
Appl. Math. Comput.
Xi Zheng, Xi Lu, Felix T. S. Chan, Yong Deng, Zhen Wang
2014 J jnl
Appl. Math. Comput.
Xinyang Deng, Xi Zheng, Xiaoyan Su, Felix T. S. Chan, Yong Hu, Rehan Sadiq, Yong Deng
2012 B conf
PIMRC
Jun Liu, Yu Zhang, Xi Zheng, Jian Song
2012 C conf
ICARCV
Bingbing Liu, Xi Zheng, Xiaojun Wu, Yiguang Liu
2011 C conf
CIS
Zhao Liu, Rui Zhang, Denghua Mei, Xi Zheng
2009 B conf
DASFAA
Todd Eavis, Xi Zheng
tests/unit/test_macho_dataclasses.py
← Index tests/unit/test_macho_dataclasses.py python
"""
Unit tests for Mach-O dataclasses.
"""
import pytest
from typing import List, Dict, Optional

pytestmark = [pytest.mark.unit, pytest.mark.dataclass, pytest.mark.macho]


class TestMachODataclass:
    """Tests for MachO dataclass."""

    def test_macho_required_fields(self):
        """Test MachO dataclass with required fields."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_NOUNDEFS", "MH_DYLDLINK", "MH_TWOLEVEL", "MH_PIE"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=True
        )

        assert macho.magic == 0xFEEDFACF
        assert macho.cputype == 0x01000007
        assert macho.is_64bit is True
        assert macho.is_signed is True
        assert macho.magic_str == "MH_MAGIC_64"
        assert macho.filetype_str == "MH_EXECUTE"

    def test_macho_optional_fields_defaults(self):
        """Test MachO dataclass optional fields default to correct values."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_NOUNDEFS"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=False
        )

        assert macho.number_of_load_commands == 0
        assert macho.load_commands_set is None
        assert macho.number_of_segments == 0
        assert macho.number_of_dylibs == 0
        assert macho.number_of_imports == 0
        assert macho.number_of_exports == 0
        assert macho.entry_point is None
        assert macho.uuid is None
        assert macho.version_info is None
        assert macho.version_info_str is None

    def test_macho_with_all_fields(self):
        """Test MachO dataclass with all fields populated."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_PIE"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=True,
            number_of_load_commands=15,
            load_commands_set=["LC_SEGMENT_64", "LC_DYLD_INFO_ONLY"],
            number_of_segments=4,
            number_of_dylibs=5,
            number_of_imports=100,
            number_of_exports=10,
            entry_point=0x100001234,
            uuid="12345678-1234-1234-1234-123456789012",
            version_info={"min_os": "10.15"},
            version_info_str={"min_os": "macOS 10.15"}
        )

        assert macho.number_of_load_commands == 15
        assert macho.uuid == "12345678-1234-1234-1234-123456789012"
        assert macho.entry_point == 0x100001234


class TestMachOSegmentDataclass:
    """Tests for MachOSegment dataclass."""

    def test_segment_creation(self):
        """Test MachOSegment dataclass creation."""
        from redb.models.dataclasses import MachOSegment

        segment = MachOSegment(
            segment_name="__TEXT",
            segment_vaddr=0x100000000,
            segment_vsize=0x1000,
            segment_offset=0,
            segment_size=0x1000,
            segment_max_vm_protection=7,
            segment_initial_vm_protection=5,
            segment_nsects=4,
            segment_flags=0,
            segment_entropy=6.5,
            segment_sha256="abc123def456789012345678901234567890123456789012345678901234"
        )

        assert segment.segment_name == "__TEXT"
        assert segment.segment_vaddr == 0x100000000
        assert segment.segment_entropy == 6.5


class TestMachOImportDataclass:
    """Tests for MachOImport dataclass."""

    def test_import_creation(self):
        """Test MachOImport dataclass creation."""
        from redb.models.dataclasses import MachOImport

        import_info = MachOImport(
            macho_imports_total=50,
            macho_import_libraryName=["libSystem.B.dylib", "CoreFoundation"],
            macho_import_functions=["_printf", "_malloc", "_free"]
        )

        assert import_info.macho_imports_total == 50
        assert len(import_info.macho_import_libraryName) == 2
        assert "_printf" in import_info.macho_import_functions

    def test_import_optional_fields(self):
        """Test MachOImport with optional fields as None."""
        from redb.models.dataclasses import MachOImport

        import_info = MachOImport(macho_imports_total=0)

        assert import_info.macho_imports_total == 0
        assert import_info.macho_import_libraryName is None
        assert import_info.macho_import_functions is None


class TestMachOExportDataclass:
    """Tests for MachOExport dataclass."""

    def test_export_creation(self):
        """Test MachOExport dataclass creation."""
        from redb.models.dataclasses import MachOExport

        export_info = MachOExport(
            macho_exports_total=10,
            macho_export_symbols=["_main", "_helper_func"]
        )

        assert export_info.macho_exports_total == 10
        assert "_main" in export_info.macho_export_symbols


class TestMachODylibDataclass:
    """Tests for MachODylib dataclass."""

    def test_dylib_creation(self):
        """Test MachODylib dataclass creation."""
        from redb.models.dataclasses import MachODylib

        dylib = MachODylib(
            dylib_name="/usr/lib/libSystem.B.dylib",
            dylib_timestamp=2,
            dylib_current_version=0x04E10200,
            dylib_compat_version=0x00010000
        )

        assert dylib.dylib_name == "/usr/lib/libSystem.B.dylib"
        assert dylib.dylib_timestamp == 2


class TestMachOLoadCommandDataclass:
    """Tests for MachOLoadCommand dataclass."""

    def test_load_command_creation(self):
        """Test MachOLoadCommand dataclass creation."""
        from redb.models.dataclasses import MachOLoadCommand

        lc = MachOLoadCommand(
            load_command=0x19,
            load_command_str="LC_SEGMENT_64",
            load_command_size=72
        )

        assert lc.load_command == 0x19
        assert lc.load_command_str == "LC_SEGMENT_64"
        assert lc.load_command_size == 72


class TestMachOUniversalDataclass:
    """Tests for MachOUniversal dataclass."""

    def test_universal_fat_binary(self):
        """Test MachOUniversal for FAT binary."""
        from redb.models.dataclasses import MachOUniversal

        universal = MachOUniversal(
            is_fat=True,
            architecture_count=2,
            architectures=["x86_64", "arm64"],
            architecture_info=[
                {"arch": "x86_64", "offset": 0x1000},
                {"arch": "arm64", "offset": 0x10000}
            ],
            fat_hash="abc123def456789012345678901234567890123456789012345678901234",
            fat_md5="abc123def456789012345678901234",
            fat_sha1="abc123def456789012345678901234567890"
        )

        assert universal.is_fat is True
        assert universal.architecture_count == 2
        assert "x86_64" in universal.architectures
        assert "arm64" in universal.architectures

    def test_universal_single_arch(self):
        """Test MachOUniversal for single-architecture binary."""
        from redb.models.dataclasses import MachOUniversal

        universal = MachOUniversal(
            is_fat=False,
            architecture_count=1,
            architectures=["arm64"],
            architecture_info=[{"arch": "arm64", "offset": 0}]
        )

        assert universal.is_fat is False
        assert universal.architecture_count == 1
        assert universal.fat_hash is None


class TestMachOCertificateDataclass:
    """Tests for MachOCertificate dataclass."""

    def test_certificate_creation(self):
        """Test MachOCertificate dataclass creation."""
        from redb.models.dataclasses import MachOCertificate

        cert = MachOCertificate(
            subject="CN=Apple Development",
            issuer="CN=Apple Worldwide Developer Relations",
            serial_number="123456789",
            not_before="2023-01-01T00:00:00Z",
            not_after="2024-01-01T00:00:00Z",
            thumbprint="abc123def456789012345678901234567890",
            certificate_type="leaf",
            order=0,
            algorithm="sha256WithRSAEncryption",
            common_name="Apple Development",
            organizational_unit="Development",
            organization="Apple Inc."
        )

        assert cert.subject == "CN=Apple Development"
        assert cert.certificate_type == "leaf"
        assert cert.order == 0


class TestMachOCodeDirectoryDataclass:
    """Tests for MachOCodeDirectory dataclass."""

    def test_code_directory_creation(self):
        """Test MachOCodeDirectory dataclass creation."""
        from redb.models.dataclasses import MachOCodeDirectory

        cd = MachOCodeDirectory(
            identifier="com.example.app",
            team_id="ABC123DEF",
            flags=0x10000,
            cd_hash="abc123def456789012345678901234567890123456789012345678901234"
        )

        assert cd.identifier == "com.example.app"
        assert cd.team_id == "ABC123DEF"
        assert cd.flags == 0x10000


class TestMachOCodeSigningInfoDataclass:
    """Tests for MachOCodeSigningInfo dataclass."""

    def test_code_signing_info_unsigned(self):
        """Test MachOCodeSigningInfo for unsigned binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="unsigned",
            has_signature=False,
            number_of_certificates=0
        )

        assert info.signing_type == "unsigned"
        assert info.has_signature is False
        assert info.number_of_certificates == 0

    def test_code_signing_info_signed(self):
        """Test MachOCodeSigningInfo for signed binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo, MachOCodeDirectory

        cd = MachOCodeDirectory(
            identifier="com.example.app",
            team_id="ABC123DEF"
        )

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="certificate",
            has_signature=True,
            number_of_certificates=3,
            code_directories=[cd],
            entitlements={"com.apple.security.app-sandbox": True},
            has_hardened_runtime=True,
            has_library_validation=True
        )

        assert info.signing_type == "certificate"
        assert info.has_signature is True
        assert info.number_of_certificates == 3
        assert info.has_hardened_runtime is True

    def test_code_signing_info_adhoc(self):
        """Test MachOCodeSigningInfo for ad-hoc signed binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="ad-hoc",
            has_signature=True,
            number_of_certificates=0,
            arch_identifier="x86_64"
        )

        assert info.signing_type == "ad-hoc"
        assert info.number_of_certificates == 0
        assert info.arch_identifier == "x86_64"


class TestMachOEntitlementDataclass:
    """Tests for MachOEntitlement dataclass."""

    def test_entitlement_boolean(self):
        """Test MachOEntitlement with boolean value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.security.app-sandbox",
            value_type="boolean",
            value_bool=True
        )

        assert ent.key == "com.apple.security.app-sandbox"
        assert ent.value_type == "boolean"
        assert ent.value_bool is True

    def test_entitlement_string(self):
        """Test MachOEntitlement with string value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.developer.team-identifier",
            value_type="string",
            value_string="ABC123DEF"
        )

        assert ent.key == "com.apple.developer.team-identifier"
        assert ent.value_type == "string"
        assert ent.value_string == "ABC123DEF"

    def test_entitlement_array(self):
        """Test MachOEntitlement with array value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.security.application-groups",
            value_type="array",
            value_array=["group.com.example.app", "group.com.example.shared"]
        )

        assert ent.key == "com.apple.security.application-groups"
        assert ent.value_type == "array"
        assert len(ent.value_array) == 2