Wanli Zuo

122 papers A* 5A 1B 2C 4Journal 67Unranked 43
YearRankTypeTitle / Venue / Authors
2026 J jnl
Eng. Appl. Artif. Intell.
Xuan Liu, Genlang Chen, Fangyu Wu, Wanli Zuo, Youxi Wu
2024 J jnl
Knowl. Based Syst.
Xuan Liu, Genlang Chen, Shiting Wen, Wanli Zuo
2023 J jnl
J. King Saud Univ. Comput. Inf. Sci.
Wajid Ali, Wanli Zuo, Wang Ying, Rahman Ali, Gohar Rahman, Inam Ullah
2023 J jnl
Inf. Sci.
Zhenkun Shi, Sen Wang, Lin Yue, Yijia Zhang, Binod Kumar Adhikari, Shuai Xue, Wanli Zuo, Xue Li
2023 J jnl
J. Ambient Intell. Humaniz. Comput.
Yijia Zhang, Wanli Zuo, Zhenkun Shi, Binod Kumar Adhikari
2023 J jnl
Appl. Intell.
Xuan Liu, Genlang Chen, Fangyu Wu, Shiting Wen, Wanli Zuo
2023 B conf
IJCNN
Xiaosong Yuan, Ke Chen, Wanli Zuo, Yijia Zhang
2023 J jnl
CoRR
Xiaosong Yuan, Ke Chen, Wanli Zuo, Yijia Zhang
2023 conf
PAKDD (1)
Xiaosong Yuan, Renchu Guan, Wanli Zuo, Yijia Zhang
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
Eng. Appl. Artif. Intell.
Xuan Liu, Genlang Chen, Wanli Zuo
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
ACM Trans. Knowl. Discov. Data
Xueyan Liu, Bo Yang, Hechang Chen, Katarzyna Musial, Hongxu Chen, Yang Li, Wanli Zuo
2021 J jnl
World Wide Web
Xueyan Liu, Bo Yang, Wenzhuo Song, Katarzyna Musial, Wanli Zuo, Hongxu Chen, Hongzhi Yin
2021 A conf
WSDM
Shining Liang, Linjun Shou, Jian Pei, Ming Gong, Wanli Zuo, Daxin Jiang
2021 J jnl
Inf. Sci.
Zhenkun Shi, Sen Wang, Lin Yue, Lixin Pang, Xianglin Zuo, Wanli Zuo, Xue Li
2021 J jnl
Int. J. Comput. Intell. Syst.
Chunyan Yin, Yongheng Chen, Wanli Zuo
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 J jnl
CoRR
Xueyan Liu, Wenzhuo Song, Wanli Zuo, Katarzyna Musial, Bo Yang
2020 B conf
COLING
Jinghang Xu, Wanli Zuo, Shining Liang, Xianglin Zuo
2020 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Jiayu Han, Lei Zheng, Yuanbo Xu, Bangzuo Zhang, Fuzhen Zhuang, Philip S. Yu, Wanli Zuo
2020 J jnl
CoRR
Shining Liang, Linjun Shou, Jian Pei, Ming Gong, Wanli Zuo, Daxin Jiang
2020 J jnl
Appl. Intell.
Xuan Liu, Shiting Wen, Wanli Zuo
2020 J jnl
IEEE Access
Zhenkun Shi, Wanli Zuo, Shining Liang, Xianglin Zuo, Lin Yue, Xue Li
2020 J jnl
Neurocomputing
Yijia Zhang, Zhenkun Shi, Wanli Zuo, Lin Yue, Shining Liang, Xue Li
2020 J jnl
Knowl. Based Syst.
Xueyan Liu, Wenzhuo Song, Katarzyna Musial, Xuehua Zhao, Wanli Zuo, Bo Yang
2019 J jnl
Knowl. Inf. Syst.
Lin Yue, Weitong Chen, Xue Li, Wanli Zuo, Minghao Yin
2019 conf
DASFAA (2)
Zhenkun Shi, Wanli Zuo, Weitong Chen, Lin Yue, Yuwei Hao, Shining Liang
2019 C conf
ADMA
Zhenkun Shi, Weitong Chen, Shining Liang, Wanli Zuo, Lin Yue, Sen Wang
2019 J jnl
Inf. Sci.
Jiayu Han, Lei Zheng, He Huang, Yuanbo Xu, Philip S. Yu, Wanli Zuo
2019 J jnl
IEEE Trans. Image Process.
Yan Niu, Jihong Ouyang, Wanli Zuo, Fuxin Wang
2019 conf
CEA@ICMR
Yunan Wang, Jingjing Chen, Chong-Wah Ngo, Tat-Seng Chua, Wanli Zuo, Zhaoyan Ming
2019 conf
ICAIS (1)
Ye Wang, Wanli Zuo, Ying Wang
2019 conf
HPCC/SmartCity/DSS
Binod Kumar Adhikari, Wanli Zuo, Ramesh Maharjan, Xuming Han, Prakash Bahadur Amatya, Wajid Ali
2018 J jnl
J. Intell. Fuzzy Syst.
Lu Liu, Wanli Zuo, Tao Peng
2018 J jnl
Int. J. Uncertain. Fuzziness Knowl. Based Syst.
Lu Liu, Wanli Zuo, Jiayu Han, Tao Peng
2018 J jnl
KSII Trans. Internet Inf. Syst.
Yongheng Chen, Fuquan Zhang, Wanli Zuo
2018 J jnl
CoRR
Yan Niu, Jihong Ouyang, Wanli Zuo, Fuxin Wang
2018 J jnl
Multim. Tools Appl.
Yongheng Chen, Chunyan Yin, Yaojin Lin, Wanli Zuo
2018 J jnl
Int. J. Comput. Intell. Syst.
Yongheng Chen, Chunyan Yin, Yaojin Lin, Wanli Zuo
2018 conf
KSEM (1)
Yuwei Hao, Wanli Zuo, Zhenkun Shi, Lin Yue, Shuai Xue, Fengling He
2018 conf
ICA3PP (4)
Binod Kumar Adhikari, Wanli Zuo, Ramesh Maharjan, Lin Guo
2018 conf
KSEM (1)
Yijia Zhang, Wanli Zuo, Zhenkun Shi, Lin Yue, Shining Liang
2017 conf
EDGE
Binod Kumar Adhikari, Wanli Zuo, Ramesh Maharjan
2017 J jnl
Expert Syst. Appl.
Lu Liu, Wanli Zuo, Tao Peng
2017 conf
ICDM Workshops
Xianglin Zuo, Bo Yang, Wanli Zuo
2017 J jnl
IET Softw.
Lin Guo, Wanli Zuo, Tao Peng
2017 J jnl
Neurocomputing
Lin Yue, Zhenkun Shi, Jiayu Han, Sen Wang, Weitong Chen, Wanli Zuo
2017 J jnl
J. Intell. Fuzzy Syst.
Lizhou Feng, Youwei Wang, Wanli Zuo
2017 J jnl
KSII Trans. Internet Inf. Syst.
Yongheng Chen, Yaojin Lin, Wanli Zuo
2017 J jnl
Int. J. Softw. Eng. Knowl. Eng.
Lu Liu, Wanli Zuo, Tao Peng
2017 conf
WWW (Companion Volume)
Zhenkun Shi, Wanli Zuo, Weitong Chen, Lin Yue, Jiayu Han, Lizhou Feng
2016 J jnl
Neurocomputing
Mengmeng Wang, Wanli Zuo, Ying Wang
2016 J jnl
Concurr. Comput. Pract. Exp.
Jiayu Han, Wanli Zuo, Lu Liu, Yuanbo Xu, Tao Peng
2016 J jnl
J. Intell. Fuzzy Syst.
Lizhou Feng, Youwei Wang, Wanli Zuo
2015 J jnl
Comput. Intell. Neurosci.
Mengmeng Wang, Wanli Zuo, Ying Wang
2015 J jnl
Data Knowl. Eng.
Lin Yue, Wanli Zuo, Tao Peng, Ying Wang, Xuming Han
2015 A* conf
AAAI
Xin Wang, Ying Wang, Wanli Zuo, Guoyong Cai
2015 A* conf
AAAI
Ying Wang, Xin Wang, Jiliang Tang, Wanli Zuo, Guoyong Cai
2015 J jnl
J. Softw.
Qiuyue Zhao, Wanli Zuo, Zhongsheng Tian, Xin Wang, Ying Wang
2015 J jnl
J. Comput. Sci. Technol.
Ying Wang, Xin Wang, Wanli Zuo
2015 J jnl
Int. Arab J. Inf. Technol.
Tao Peng, Lu Liu, Wanli Zuo
2015 J jnl
计算机科学
Wanli Zuo, Jiayu Han, Lu Liu, Ying Wang, Tao Peng
2015 J jnl
计算机科学
Qiongqiong Liu, Wanli Zuo, Ying Wang
2014 J jnl
Concurr. Comput. Pract. Exp.
Tao Peng, Lu Liu, Wanli Zuo
2014 J jnl
J. Intell. Fuzzy Syst.
Xie Feng, Wanli Zuo, Junhua Wang, Lizhou Feng
2013 J jnl
Biomed. Signal Process. Control.
Wanli Zuo, Zhi-Yan Wang, Tong Liu, Hui-Ling Chen
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 conf
ICICA (1)
Liang Zhu, Wanli Zuo, Fengling He, Jiayu Han, Jingya Lu
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
2012 conf
CCIS
Zhenshan Hou, Mingliang Cui, Ping Li, Liuliu Wei, Wenhao Ying, Wanli Zuo
2011 conf
ICDMA
Dou Hao, Wanli Zuo, Tao Peng, Fengling He
2011 J jnl
Comput. Sci. Inf. Syst.
Kerui Chen, Wanli Zuo, Fengling He, Yongheng Chen, Ying Wang
2011 J jnl
J. Comput.
Wanli Zuo, Yongheng Chen, Fengling He, Kerui Chen
2011 J jnl
J. Softw.
Yongheng Chen, Wanli Zuo, Fengling He, Kerui Chen
2011 J jnl
Comput. Sci. Inf. Syst.
Ying Wang, Huilai Li, Wanli Zuo, Fengling He, Xin Wang, Kerui Chen
2011 J jnl
J. Comput.
Kerui Chen, Wanli Zuo, Fan Zhang, Fengling He, Yongheng Chen
2010 J jnl
J. Softw.
Hao Liang, Wanli Zuo, Fei Ren
2010 J jnl
J. Convergence Inf. Technol.
Kerui Chen, Jinchao Zhao, Wanli Zuo, Fengling He, Yongheng Chen
2010 J jnl
J. Softw.
Hao Liang, Fei Ren, Wanli Zuo, Fengling He
2010 J jnl
J. Convergence Inf. Technol.
Yongheng Chen, Wanli Zuo, Fengling He, Kerui Chen
2010 J jnl
Concurr. Comput. Pract. Exp.
Tao Peng, Changli Zhang, Wanli Zuo
2009 conf
ISCID (2)
Ying Xie, Wanli Zuo, Fengling He, Ying Wang
2009 conf
ICETC
Tao Jing, Tao Peng, Wanli Zuo
2009 conf
CSIE (5)
Liang Hao, Fei Ren, Wanli Zuo, Fengling He, Junhua Wang
2009 J jnl
J. Comput.
Bangzuo Zhang, Wanli Zuo
2009 J jnl
J. Assoc. Inf. Sci. Technol.
Changli Zhang, Daniel Zeng, Jiexun Li, Fei-Yue Wang, Wanli Zuo
2009 conf
PACCS
Fei Ren, Hao Liang, Liang Hu, Wanli Zuo
2008 conf
AIRS
Bangzuo Zhang, Wanli Zuo
2008 conf
FSKD (2)
Hao Liang, Wanli Zuo, Fei Ren, Chong Sun
2008 conf
ICNC (5)
Ying Wang, Wanli Zuo, Tao Peng, Fengling He
2008 conf
RSKT
Na Luo, Fuyu Yuan, Wanli Zuo, Fengling He, Zhiguo Zhou
2008 conf
ICNC (4)
Ying Wang, Wanli Zuo, Tao Peng, Fengling He
2008 conf
ISIP
Bangzuo Zhang, Wanli Zuo
2008 C conf
ICMLA
Na Luo, Fuyu Yuan, Wanli Zuo, Fengling He
2008 conf
ICYCS
Xuming Han, Limin Wang, Wanli Zuo, Hongzhi Wang, Guojun Chen
2008 J jnl
Knowl. Inf. Syst.
Tao Peng, Wanli Zuo, Fengling He
2008 conf
CSSE (4)
Hao Liang, Wanli Zuo, Fei Ren, Junhua Wang
2008 conf
ISIP
Bangzuo Zhang, Wanli Zuo
2008 J jnl
Concurr. Comput. Pract. Exp.
Tao Peng, Changli Zhang, Wanli Zuo
2007 conf
PAKDD Workshops
Hui Wang, Liping Ji, Wanli Zuo
2007 A* conf
WWW
Qingyang Xu, Wanli Zuo
2006 conf
RSKT
Na Luo, Wanli Zuo, Fuyu Yuan, Changli Zhang
2006 conf
MICAI
Tao Peng, Fengling He, Wanli Zuo, Changli Zhang
2006 conf
Australian Conference on Artificial Intelligence
Yang Jin, Wanli Zuo
2006 conf
KDLL
Hui Wang, Wanli Zuo
2006 conf
Artificial Intelligence and Applications
Jingru Dong, Wanli Zuo, Tao Peng
2006 C conf
ADMA
Yang Jin, Wanli Zuo
2006 conf
APWeb Workshops
Tian-yang Lv, Xi-zhe Zhang, Wanli Zuo, Zhengxuan Wang
2005 conf
MICAI
Hailong Yu, Wanli Zuo, Tao Peng
2005 conf
WAIM
Tian-yang Lv, Tai-xue Su, Zhengxuan Wang, Wanli Zuo
2005 conf
PKDD
Tian-yang Lv, Yu-hui Xing, Shaobin Huang, Zhengxuan Wang, Wanli Zuo
2005 conf
IICAI
RuiMing Xin, Wanli Zuo, Ping Yang
2005 conf
ICNC (2)
Tao Peng, Wanli Zuo, Yilin Liu
2005 conf
CIS (1)
Xi-zhe Zhang, Tian-yang Lv, Zhengxuan Wang, Wanli Zuo
2004 conf
Web Intelligence
Qingyang Xu, Wanli Zuo
redb/extractors/macho_extractors/macho_similarity_hashes.py
← Index redb/extractors/macho_extractors/macho_similarity_hashes.py python
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor


class MachOSimilarityHashExtractor(MachOExtractor):
    """Extract Mach-O similarity hashes using machofile API.

    Similarity hashes are MD5 fingerprints of sorted, deduplicated binary components:
    - dylib_hash: MD5 of dynamic library names
    - import_hash: MD5 of imported function names
    - export_hash: MD5 of exported symbol names
    - entitlement_hash: MD5 of entitlement names and array values
    - symhash: MD5 of external undefined symbols

    For FAT binaries:
    - Inserts one row per architecture slice with per-slice hashes
    - Inserts one row for the FAT container with combined hashes

    For single-arch binaries:
    - Inserts one row with that architecture's hashes

    Note: parent_sha256 and architecture relationships are tracked in redb_basic_properties,
    not duplicated here. Use JOIN with redb_basic_properties when needed.
    """

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_hashes"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_similarity_hashes(self, arch_name=None):
        """Extract similarity hashes for a specific architecture."""
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.macho:
            return None

        try:
            similarity_hashes = self.macho.get_similarity_hashes(arch=arch_name)
            return similarity_hashes if similarity_hashes else None
        except Exception as e:
            self.log.error(f"Error extracting similarity hashes for arch {arch_name}: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            if not self.macho:
                return None

            architectures = self.macho.get_architectures()
            if not architectures:
                return None

            if len(architectures) > 1:
                # FAT binary - return combined hashes + per-arch hashes
                results = []

                # First add combined hashes for the FAT container
                all_hashes = self.macho.get_similarity_hashes()
                combined_hashes = all_hashes.get('combined', {}) if all_hashes else {}
                if combined_hashes:
                    combined_hashes['arch_identifier'] = 'fat'
                    results.append(combined_hashes)

                # Then add per-arch hashes
                for arch_name in architectures:
                    hashes = self._extract_similarity_hashes(arch_name)
                    if hashes:
                        hashes['arch_identifier'] = arch_name
                        results.append(hashes)
                return results
            else:
                # Single architecture - return single result
                return self._extract_similarity_hashes(architectures[0])
        except Exception as e:
            self.log.error(f"Error extracting similarity hashes: {e}")
            return None

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

            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            data = []
            current_time = datetime.now(timezone.utc)

            # For FAT binaries, first insert a row for the container with combined hashes
            if is_fat:
                all_hashes = self.macho.get_similarity_hashes()  # Without arch returns all including 'combined'
                combined_hashes = all_hashes.get('combined', {}) if all_hashes else {}
                if combined_hashes:
                    data.append([
                        self.sha256,                                    # sha256 (FAT container)
                        combined_hashes.get('dylib_hash'),              # dylib_hash
                        combined_hashes.get('import_hash'),             # import_hash
                        combined_hashes.get('export_hash'),             # export_hash
                        combined_hashes.get('entitlement_hash'),        # entitlement_hash
                        combined_hashes.get('symhash'),                 # symhash
                        current_time,                                   # analysis_date
                    ])

            # Insert rows for each architecture slice
            for arch_name in architectures:
                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific sha256 for {arch_name}: {e}")
                    arch_sha256 = self.sha256

                # Get similarity hashes for this architecture
                similarity_hashes = self._extract_similarity_hashes(arch_name)
                if not similarity_hashes:
                    continue

                data.append([
                    arch_sha256,                                    # sha256 (arch-specific)
                    similarity_hashes.get('dylib_hash'),            # dylib_hash
                    similarity_hashes.get('import_hash'),           # import_hash
                    similarity_hashes.get('export_hash'),           # export_hash
                    similarity_hashes.get('entitlement_hash'),      # entitlement_hash
                    similarity_hashes.get('symhash'),               # symhash
                    current_time,                                   # analysis_date
                ])

            if not data:
                return None

            column_names = [
                'sha256',
                'macho_dylib_hash', 'macho_import_hash', 'macho_export_hash',
                'macho_entitlement_hash', 'macho_symhash',
                'analysis_date'
            ]

            column_type_names = [
                'FixedString(64)',
                'Nullable(FixedString(32))', 'Nullable(FixedString(32))', 'Nullable(FixedString(32))',
                'Nullable(FixedString(32))', 'Nullable(FixedString(32))',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

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