Ran Wang

108 papers A* 4B 9C 1Misc 8Journal 81Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Pattern Recognit.
Ran Wang, Meng Hu, Xinlei Zhou, Yuheng Jia
2025 J jnl
IEEE Trans. Comput. Soc. Syst.
Yu Zhou, Nanjian Yang, Ran Wang
2025 A* conf
ACM Multimedia
Wenhui Wu, Guanqi Wen, Le Ou-Yang, Ran Wang, Sam Kwong
2025 J jnl
CoRR
Ran Wang, Xinlei Zhou, Rihao Li, Meng Hu, Wenhui Wu, Yuheng Jia
2025 J jnl
IEEE Trans. Cybern.
Yujie Chen, Wenhui Wu, Le Ou-Yang, Ran Wang, Sam Kwong
2025 A* conf
AAAI
Yujie Chen, Wenhui Wu, Le Ou-Yang, Ran Wang, Debby Dan Wang
2025 A* conf
ICLR
Xiaorui Peng, Yuheng Jia, Fuchao Yang, Ran Wang, Min-Ling Zhang
2025 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Yuheng Jia, Jia-Nan Li, Wenhui Wu, Ran Wang
2025 J jnl
IEEE Trans. Knowl. Data Eng.
Xu Zhang, Yuheng Jia, Mofei Song, Ran Wang
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Xinyin Zhang, Ran Wang, Shuyue Chen, Yuheng Jia, Debby Dan Wang
2024 J jnl
Neural Networks
Ran Wang, Haopeng Ke, Meng Hu, Wenhui Wu
2024 J jnl
Inf. Sci.
Meng Hu, Yanting Guo, Ran Wang, Xizhao Wang
2024 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Yuheng Jia, Sirui Tao, Ran Wang, Yongheng Wang
2024 A* conf
AAAI
Yuheng Jia, Xiaorui Peng, Ran Wang, Min-Ling Zhang
2024 B conf
SMC
Yiwen Zou, Wing W. Y. Ng, Xueli Zhang, Brick Loo, Xingfu Yan, Ran Wang
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Chongjie Si, Yuheng Jia, Ran Wang, Min-Ling Zhang, Yanghe Feng, Chongxiao Qu
2024 B conf
SMC
Ran Wang, Simeng Zeng, Wenhui Wu, Yuheng Jia, Wing W. Y. Ng, Xizhao Wang
2024 J jnl
CoRR
Yuheng Jia, Jia-Nan Li, Wenhui Wu, Ran Wang
2024 J jnl
CoRR
Xu Zhang, Yuheng Jia, Mofei Song, Ran Wang
2024 J jnl
J. Cheminformatics
Debby Dan Wang, Wenhui Wu, Ran Wang
2024 Misc conf
ICMLC
Xinlei Zhou, Xizhao Wang, Xinpeng Zhou, Siwu Tu, Ran Wang
2023 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Farhad Pourpanah, Moloud Abdar, Yuxuan Luo, Xinlei Zhou, Ran Wang, Chee Peng Lim, Xi-Zhao Wang, Q. M. Jonathan Wu
2023 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Lin Xiao, Yongjun He, Yaonan Wang, Jianhua Dai, Ran Wang, Wensheng Tang
2023 J jnl
Neural Networks
Shuyue Chen, Ran Wang, Jian Lu
2023 J jnl
Artif. Intell. Rev.
Farhad Pourpanah, Ran Wang, Chee Peng Lim, Xi-Zhao Wang, Danial Yazdani
2023 J jnl
IEEE Trans. Cybern.
Haojing Shen, Sihong Chen, Ran Wang, Xizhao Wang
2023 J jnl
Pattern Recognit.
Ran Wang, Shuyue Chen, Yu Yu
2023 J jnl
Int. J. Mach. Learn. Cybern.
Yuxiang Yang, Xing Tian, Wing W. Y. Ng, Ran Wang, Ying Gao, Sam Kwong
2023 Misc conf
ICMLC
Ran Wang, Jingyu Xiong, Haopeng Ke, Yuheng Jia, Debby Dan Wang
2023 J jnl
Knowl. Based Syst.
Wenhui Wu, Yujie Chen, Ran Wang, Le Ou-Yang
2022 J jnl
Int. J. Mach. Learn. Cybern.
Mingwen Shao, Junhui Dai, Ran Wang, Jiandong Kuang, Wangmeng Zuo
2022 J jnl
CoRR
Yuheng Jia, Sirui Tao, Ran Wang, Yongheng Wang
2022 J jnl
IEEE Trans. Fuzzy Syst.
Hong Zhu, Xizhao Wang, Ran Wang
2022 J jnl
CoRR
Chongjie Si, Yuheng Jia, Ran Wang, Min-Ling Zhang, Yanghe Feng, Chongxiao Qu
2022 J jnl
Int. J. Mach. Learn. Cybern.
Jiandong Kuang, Mingwen Shao, Ran Wang, Wangmeng Zuo, Weiping Ding
2022 J jnl
Int. J. Mach. Learn. Cybern.
Jingchao Cao, Wenhui Wu, Ran Wang, Sam Kwong
2022 J jnl
Inf. Sci.
Shuyue Chen, Ran Wang, Jian Lu, Xizhao Wang
2022 J jnl
Neural Networks
Sihong Chen, Haojing Shen, Ran Wang, Xizhao Wang
2021 J jnl
Appl. Soft Comput.
Farhad Pourpanah, Di Wang, Ran Wang, Chee Peng Lim
2021 J jnl
Int. J. Mach. Learn. Cybern.
Haojing Shen, Sihong Chen, Ran Wang
2021 J jnl
Pattern Recognit.
Ran Wang, Sam Kwong, Xu Wang, Yuheng Jia
2021 J jnl
CoRR
Haojing Shen, Sihong Chen, Ran Wang, Xizhao Wang
2021 J jnl
Int. J. Mach. Learn. Cybern.
Mingwen Shao, Shuqi Liu, Ran Wang, Gaozhi Zhang
2021 J jnl
Inf. Sci.
Ran Wang, Suhe Ye, Ke Li, Sam Kwong
2021 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Yuheng Jia, Wenhui Wu, Ran Wang, Junhui Hou, Sam Kwong
2021 J jnl
Inf. Sci.
Jingchao Cao, Ran Wang, Yuheng Jia, Xinfeng Zhang, Shiqi Wang, Sam Kwong
2021 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Wenhui Wu, Yuheng Jia, Shiqi Wang, Ran Wang, Hongfei Fan, Sam Kwong
2021 J jnl
IEEE Trans. Evol. Comput.
Ran Wang, Zichao Zhang
2020 J jnl
CoRR
Farhad Pourpanah, Moloud Abdar, Yuxuan Luo, Xinlei Zhou, Ran Wang, Chee Peng Lim, Xi-Zhao Wang
2020 J jnl
CoRR
Farhad Pourpanah, Ran Wang, Chee Peng Lim, Danial Yazdani
2020 J jnl
CoRR
Haojing Shen, Sihong Chen, Ran Wang
2020 J jnl
Inf. Sci.
Xinlei Zhou, Xizhao Wang, Cong Hu, Ran Wang
2020 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Yuheng Jia, Sam Kwong, Ran Wang
2020 J jnl
Inf. Sci.
Tianlun Zhang, Xi Yang, Xizhao Wang, Ran Wang
2020 J jnl
CoRR
Haojing Shen, Sihong Chen, Ran Wang, Xizhao Wang
2019 C conf
INDIN
Wenjing Yuan, Jingjing Cao, Zeyi Jin, Fei Xia, Ran Wang
2019 J jnl
Neurocomputing
Farhad Pourpanah, Ran Wang, Chee Peng Lim, Xizhao Wang, Manjeevan Seera, Choo Jun Tan
2019 J jnl
Inf. Sci.
Dasen Yan, Xinlei Zhou, Xizhao Wang, Ran Wang
2019 J jnl
CoRR
Ran Wang, Suhe Ye, Ke Li, Sam Kwong
2019 J jnl
Signal Process. Image Commun.
Jingchao Cao, Shiqi Wang, Ran Wang, Xinfeng Zhang, Sam Kwong
2019 J jnl
Int. J. Mach. Learn. Cybern.
Haoran Xie, Tak-Lam Wong, Fu Lee Wang, Raymond K. Wong, Xiaohui Tao, Ran Wang
2019 conf
CCIS
Farhad Pourpanah, Ran Wang, Xizhao Wang
2019 Misc conf
ICMLC
Ran Wang, Suhe Ye
2019 J jnl
Int. J. Mach. Learn. Cybern.
Ran Wang, Haoran Xie, Jiqiang Feng, Fu Lee Wang, Chen Xu
2019 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Xi-Zhao Wang, Tianlun Zhang, Ran Wang
2019 J jnl
IEEE Trans. Cybern.
Yuheng Jia, Sam Kwong, Wenhui Wu, Ran Wang, Wei Gao
2019 J jnl
Inf. Sci.
Yan Lyu, Chi-Yin Chow, Ran Wang, Victor C. S. Lee
2019 conf
SSCI
Farhad Pourpanah, Ran Wang, Xizhao Wang, Yuhui Shi, Danial Yazdani
2018 J jnl
IEEE Trans. Cybern.
Xi-Zhao Wang, Ran Wang, Chen Xu
2018 J jnl
Soft Comput.
Zhiqi Huang, Ran Wang, Hong Zhu, Jie Zhu
2018 B conf
FUZZ-IEEE
Ran Wang, Sam Kwong, Yuheng Jia, Zhiqi Huang, Lang Wu
2018 J jnl
IEEE Trans. Knowl. Data Eng.
Ran Wang, Chi-Yin Chow, Yan Lyu, Victor C. S. Lee, Sam Kwong, Yanhua Li, Jia Zeng
2017 J jnl
IEEE Trans. Broadcast.
Linwei Zhu, Yun Zhang, Zhaoqing Pan, Ran Wang, Sam Kwong, Zongju Peng
2017 J jnl
IEEE Trans. Fuzzy Syst.
Ran Wang, Xi-Zhao Wang, Sam Kwong, Chen Xu
2016 J jnl
IEEE Trans. Fuzzy Syst.
Ran Wang, Chi-Yin Chow, Sam Kwong
2016 J jnl
Neural Comput. Appl.
Xiaodong Li, Haoran Xie, Ran Wang, Yi Cai, Jingjing Cao, Feng Wang, Huaqing Min, Xiaotie Deng
2016 J jnl
GeoInformatica
Ran Wang, Chi-Yin Chow, Yan Lyu, Victor C. S. Lee, Sarana Nutanong, Yanhua Li, Mingxuan Yuan
2015 B conf
SMC
Ran Wang, Sam Kwong, Qingshan Jiang, Ka-Chun Wong
2015 J jnl
Neurocomputing
Jingjing Cao, Sam Kwong, Ran Wang, Xiaodong Li, Ke Li, Xiangfei Kong
2015 J jnl
J. Intell. Fuzzy Syst.
Yingjie Li, Ran Wang, Simon C. K. Shiu
2015 J jnl
Fuzzy Sets Syst.
Ran Wang, Yu-Lin He, Chi-Yin Chow, Fang-Fang Ou, Jian Zhang
2015 J jnl
Neurocomputing
Xu Wang, Qiong Liu, Ran Wang, Zhuo Chen
2015 J jnl
IEEE Trans. Cybern.
Ran Wang, Sam Kwong, Xizhao Wang, Qingshan Jiang
2015 conf
SIGSPATIAL/GIS
Ran Wang, Chi-Yin Chow, Yan Lyu, Victor C. S. Lee, Sam Kwong, Yanhua Li, Jia Zeng
2015 B conf
SMC
Mengyuan Wu, Sam Kwong, Qingfu Zhang, Ke Li, Ran Wang, Bo Liu
2014 J jnl
IEEE Trans. Ind. Informatics
Hao Gao, Sam Kwong, Baojie Fan, Ran Wang
2014 J jnl
IEEE Trans. Cybern.
Xi-Zhao Wang, Ran Wang, Hui-Min Feng, Hua-Chao Wang
2014 Misc conf
ICMLC
Jingjing Cao, Sam Kwong, Ran Wang, Ke Li
2014 J jnl
Pattern Recognit.
Ran Wang, Sam Kwong
2014 J jnl
Inf. Sci.
Yu-Lin He, Ran Wang, Sam Kwong, Xi-Zhao Wang
2014 conf
SIGSPATIAL/GIS
Ran Wang, Chi-Yin Chow, Sarana Nutanong, Yan Lyu, Yanhua Li, Mingxuan Yuan, Victor C. S. Lee
2014 J jnl
Neurocomputing
Debby Dan Wang, Ran Wang, Hong Yan
2014 J jnl
IEEE Trans. Fuzzy Syst.
Ran Wang, Degang Chen, Sam Kwong
2014 J jnl
IEEE Trans. Evol. Comput.
Ke Li, Qingfu Zhang, Sam Kwong, Miqing Li, Ran Wang
2014 conf
SIGSPATIAL/GIS
Yan Lyu, Chi-Yin Chow, Ran Wang, Victor C. S. Lee
2013 J jnl
Inf. Sci.
Ran Wang, Sam Kwong, Degang Chen, Jingjing Cao
2013 J jnl
Inf. Sci.
Ke Li, Sam Kwong, Ran Wang, Kit-Sang Tang, Kim-Fung Man
2012 J jnl
Pattern Recognit.
Jingjing Cao, Sam Kwong, Ran Wang
2012 J jnl
Soft Comput.
Ran Wang, Sam Kwong, Xizhao Wang
2012 Misc conf
ICMLC
Jingjing Cao, Sam Kwong, Ran Wang, Ke Li
2012 Misc conf
ICMLC
Ran Wang, Sam Kwong, Degang Chen, Qiang He
2012 J jnl
Pattern Recognit.
Ran Wang, Sam Kwong, Degang Chen
2012 B conf
SMC
Ke Li, Sam Kwong, Ran Wang, Jingjing Cao, Imre J. Rudas
2011 Misc conf
ICMLC
Ran Wang, Sam Kwong, Degang Chen
2010 B conf
SMC
Ran Wang, Sam Kwong, Qiang He
2010 Misc conf
ICMLC
Ran Wang, Sam Kwong
2008 B conf
SMC
Chun-Ru Dong, Ran Wang, Xi-Zhao Wang
2007 B conf
SMC
Xi-Zhao Wang, Jian-Hui Yan, Ran Wang, Chun-Ru Dong
redb/extractors/pe_extractors/pe_inconsistency_tests.py
← Index redb/extractors/pe_extractors/pe_inconsistency_tests.py python
import inspect
from redb.ext.spoof_check import (
    Result,
    checksum_test,
    duplicate_test,
    import_count_test,
    linker_test,
)
from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import (
    DotNetInconsistencyTests,
    PEInconsistencyTests,
)
from datetime import datetime, timezone
from typing import Any


class PEInconstistencyTestsExtractor(PEExtractor):
    """Collection of functions to perform features inconsistency tests

    A Test where the result is True means that there is an inconsistency.
    At the moments it runs a series of inconsistency tests on PE metadata from
    - spoof_check
    - pescanner
    - dotnetfile
    """

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        pe=None,
        dotnet=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            pe,
        )
        self.dotnet = dotnet if dotnet else None
        self.pe_inconsistency_tests = None
        self.dotnet_inconsistency_tests = None
        self.elastic_index = self.index_prefix + "-pe_inconsistency_tests"

    def tag(self):
        return [Tag.PE_INCONSISTENCY_TESTS.value, Tag.DOTNET_INCONSISTENCY_TESTS.value]

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        tests_performed = False

        # Handle PE rich header tests
        try:
            rich_header = self.pe.parse_rich_header()
            if rich_header:
                self.pe_inconsistency_tests = PEInconsistencyTests(
                    test_rich_header_checksum=checksum_test(self.pe, rich_header) == Result.INVALID,
                    test_rich_header_duplicate=duplicate_test(self.pe, rich_header) == Result.INVALID,
                    test_rich_header_linker=linker_test(self.pe, rich_header) == Result.INVALID,
                    test_rich_header_import_count=import_count_test(self.pe, rich_header) == Result.INVALID,
                )
                tests_performed = True
            else:
                self.pe_inconsistency_tests = PEInconsistencyTests(
                    test_rich_header_checksum=None,
                    test_rich_header_duplicate=None,
                    test_rich_header_linker=None,
                    test_rich_header_import_count=None,
                )
        except Exception as e:
            self.log.error(f"Error processing rich header tests for {self.hash.sha256}: {e}")
            self.pe_inconsistency_tests = None

            # self.export_to_elastic([self.pe_inconsistency_tests])

        # Handle .NET tests
        try:
            if self._check_dotnet():
                if not self.dotnet:
                    self.dotnet, self.error = self._generate_dotnetfile_object()
                if self.error:
                    self.log.error(f"Error generating .NET object {self.hash.sha256}: {self.error}")
                self.dotnet_inconsistency_tests = DotNetInconsistencyTests(
                    test_dotnet_data_dir_hidden=self.dotnet.AntiMetadataAnalysis.is_dotnet_data_directory_hidden,
                    test_dotnet_extra_data=self.dotnet.AntiMetadataAnalysis.has_metadata_table_extra_data,
                    test_dotnet_fake_types=self.dotnet.AntiMetadataAnalysis.has_self_referenced_typeref_entries,
                    test_dotnet_invalid_type_ref=self.dotnet.AntiMetadataAnalysis.has_invalid_typeref_entries,
                    test_dotnet_fake_datastreams=self.dotnet.AntiMetadataAnalysis.has_fake_data_streams,
                    test_dotnet_extra_module_table=self.dotnet.AntiMetadataAnalysis.module_table_has_multiple_rows,
                    test_dotnet_extra_assembly_table=self.dotnet.AntiMetadataAnalysis.assembly_table_has_multiple_rows,
                    test_dotnet_invalid_strings_stream=self.dotnet.AntiMetadataAnalysis.has_invalid_strings_stream_entries,
                    test_dotnet_streams_mixed_case=self.dotnet.AntiMetadataAnalysis.has_mixed_case_stream_names,
                    test_dotnet_method_def_invalid_table=self.dotnet.AntiMetadataAnalysis.has_invalid_methoddef_entries,
                    test_dotnet_max_len_exceeding_strings=self.dotnet.AntiMetadataAnalysis.has_max_len_exceeding_strings,
                )
                tests_performed = True
        except Exception as e:
            self.log.error(f"Error processing .NET tests for {self.hash.sha256}: {e}")
            self.dotnet_inconsistency_tests = None

        # self.export_to_elastic([self.dotnet_inconsistency_tests])

        # If no tests were performed, return False to skip database insertion
        if not tests_performed:
            self.log.info("No inconsistency tests were performed.")
            return False

        return True

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return [self.pe_inconsistency_tests, self.dotnet_inconsistency_tests]
        elif exporter_type == "ClickHouseExporter":
            current_time = datetime.now(timezone.utc)

            # For PE tests: if no rich header (all True), store NULL instead
            has_rich_header = any([
                hasattr(self.pe_inconsistency_tests, 'test_rich_header_checksum'),
                hasattr(self.pe_inconsistency_tests, 'test_rich_header_duplicate'),
                hasattr(self.pe_inconsistency_tests, 'test_rich_header_linker'),
                hasattr(self.pe_inconsistency_tests, 'test_rich_header_import_count')
            ])
            
            pe_tests = [
                None if not has_rich_header else self.pe_inconsistency_tests.test_rich_header_checksum,
                None if not has_rich_header else self.pe_inconsistency_tests.test_rich_header_duplicate,
                None if not has_rich_header else self.pe_inconsistency_tests.test_rich_header_linker,
                None if not has_rich_header else self.pe_inconsistency_tests.test_rich_header_import_count,
            ]
            
            # For .NET tests: if not a .NET file, store NULL instead of False
            dotnet_tests = [
                self.dotnet_inconsistency_tests.test_dotnet_data_dir_hidden if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_extra_data if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_fake_types if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_invalid_type_ref if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_fake_datastreams if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_extra_module_table if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_extra_assembly_table if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_invalid_strings_stream if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_streams_mixed_case if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_method_def_invalid_table if self.dotnet_inconsistency_tests else None,
                self.dotnet_inconsistency_tests.test_dotnet_max_len_exceeding_strings if self.dotnet_inconsistency_tests else None,
            ]
            
            data = [[
                self.sha256,
                self.md5,
                self.sha1,
                *pe_tests,
                *dotnet_tests,
                current_time
            ]]

            column_names = [
                'sha256', 'md5', 'sha1',
                'test_rich_header_checksum', 'test_rich_header_duplicate', 'test_rich_header_linker', 'test_rich_header_import_count',
                'test_dotnet_data_dir_hidden', 'test_dotnet_extra_data',
                'test_dotnet_fake_types', 'test_dotnet_invalid_type_ref',
                'test_dotnet_fake_datastreams', 'test_dotnet_extra_module_table',
                'test_dotnet_extra_assembly_table', 'test_dotnet_invalid_strings_stream',
                'test_dotnet_streams_mixed_case', 'test_dotnet_method_def_invalid_table',
                'test_dotnet_max_len_exceeding_strings', 'analysis_date'
            ]
            
            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)',
                'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)',
                'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)',
                'Nullable(Boolean)', 'Nullable(Boolean)', 'Nullable(Boolean)',
                'DateTime64(3, \'UTC\')'
            ]

            if not data:
                return None

            return (data, column_names, column_type_names)

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