Xiaojun Guo

67 papers A* 4A 3B 1C 3Journal 42Unranked 14
YearRankTypeTitle / Venue / Authors
2026 J jnl
Grey Syst. Theory Appl.
Xiaojun Guo, Xinyao Zhu, Kangyue Guo, Yaqin Zhong, Yingjie Yang
2026 J jnl
Comput. Vis. Image Underst.
Hongbing Wu, Siyang Huang, Xiaojun Guo, Xiaoyong Sun, Bei Sun, Zhuo Zhang, Shaojing Su
2025 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yuqing Lou, Hanbo Zhang, Jun Li, Chen Lin, Leilai Shao, Xiaojun Guo, Yongfu Li, Guoxing Wang, Fakhrul Zaman Rokhani, Jian Zhao
2025 J jnl
CoRR
Qiuliuyang Bao, Jiawei Wang, Hao Gong, Yiwei Zhang, Xiaojun Guo, Hanrui Feng
2025 J jnl
IEEE J. Solid State Circuits
Hanbo Zhang, Zhouchen Ma, Yuqing Lou, Yang Bo, Hao Wu, Liang Qi, Yongfu Li, Xiaojun Guo, Guoxing Wang, Jian Zhao
2025 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Xiaozhong Tong, Xiaojun Guo, Xiaoyong Sun, Runze Guo, Shaojing Su, Zhen Zuo
2025 conf
SoCC
Xiaojun Guo, Guangjie Xing, Hua Wang, Ke Zhou, Ming Xie, Fenqiang Yang, Min Fu, Bin Xu, Jianying Hu, Guangchao Yang
2025 J jnl
CoRR
Xiaojun Guo, Ang Li, Yifei Wang, Stefanie Jegelka, Yisen Wang
2025 J jnl
Frontiers Comput. Neurosci.
Zhizhong Xing, Zhijun Meng, Gengfeng Zheng, Guolan Ma, Lin Yang, Xiaojun Guo, Li Tan, Yuanqiu Jiang, Huidong Wu
2025 J jnl
CoRR
Xiaojun Guo, Runyu Zhou, Yifei Wang, Qi Zhang, Chenheng Zhang, Stefanie Jegelka, Xiaohan Wang, Jiajun Chai, Guojun Yin, Wei Lin, Yisen Wang
2025 J jnl
Interact. Learn. Environ.
Ying Yang, Xiaojun Guo, Zhizhong Xing
2025 J jnl
IEEE Internet Things J.
Zhizhong Xing, Guolan Ma, Liyuan Wang, Lin Yang, Xiaojun Guo, Shaochun Chen
2024 conf
A-SSCC
Hanbo Zhang, Yuqing Lou, Yang Bo, Zhouchen Ma, Hao Wu, Liang Qi, Yongfu Li, Xiaojun Guo, Guoxing Wang, Jian Zhao
2024 J jnl
Eng. Appl. Artif. Intell.
Lianyi Liu, Sifeng Liu, Yingjie Yang, Xiaojun Guo, Jinghe Sun
2024 J jnl
Remote. Sens.
Runze Guo, Xiaojun Guo, Xiaoyong Sun, Peida Zhou, Bei Sun, Shaojing Su
2024 J jnl
CoRR
Pengbin Feng, Yankaiqi Li, Yijiashun Qi, Xiaojun Guo, Zhenghao Lin
2024 A conf
EuroSys
Xiaojun Guo, Hua Wang, Ke Zhou, Hong Jiang, Yaodong Han, Guangjie Xing
2023 A* conf
NeurIPS
Xiaojun Guo, Yifei Wang, Zeming Wei, Yisen Wang
2023 J jnl
CoRR
Xiaojun Guo, Yifei Wang, Zeming Wei, Yisen Wang
2023 A* conf
ICLR
Xiaojun Guo, Yifei Wang, Tianqi Du, Yisen Wang
2023 J jnl
CoRR
Xiaojun Guo, Yifei Wang, Tianqi Du, Yisen Wang
2023 conf
AICAS
Tong Shan, Jun Li, Xiao Hou, Peijin Huang, Xiaojun Guo
2023 conf
ICA3PP (1)
Xiaojun Guo, Zhihao Wu
2022 C conf
SEKE
Xiaojun Guo, Zhiping Huang, Shaojing Su, Yunxiao Lv
2022 J jnl
J. Inf. Secur. Appl.
Jiaju Liu, Yun Hu, Xiaojun Guo, Tianxing Liang, Weikun Jin
2022 C conf
ISCAS
Sujie Chen, Xin Xi, Ruili Liu, Xiaojun Guo
2022 J jnl
Adv. Intell. Syst.
Yuying Si, Sujie Chen, Ming Li, Siying Li, Yisen Pei, Xiaojun Guo
2022 A* conf
ICML
Mingjie Li, Xiaojun Guo, Yifei Wang, Yisen Wang, Zhouchen Lin
2022 conf
ICARM
Xiaojun Guo, Zhiping Huang, Shaojing Su
2021 J jnl
J. Supercomput.
Juan Zhang, Changsheng Wan, Chunyu Zhang, Xiaojun Guo, Taochen Lu
2021 J jnl
IEEE Open J. Circuits Syst.
Yong Lian, Xiaojun Guo
2021 J jnl
ISPRS Int. J. Geo Inf.
Zhizhong Xing, Shuanfeng Zhao, Wei Guo, Xiaojun Guo, Yuan Wang
2020 B conf
GLOBECOM
Xiaojun Guo, Ziyi Li, Pengyu Liu, Rudan Yan, Yingying Han, Xiaojun Hei, Guohui Zhong
2020 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Botian Huang, Jiali Fan, Xinghua Xu, Xiaojun Guo
2020 J jnl
Sensors
Xiaoyong Sun, Shaojing Su, Zhen Zuo, Xiaojun Guo, Xiaopeng Tan
2020 J jnl
Secur. Commun. Networks
Juan Zhang, Changsheng Wan, Chunyu Zhang, Xiaojun Guo, Yongyong Chen
2020 J jnl
IEEE Access
Xiaopeng Tan, Zhen Zuo, Shaojing Su, Xiaojun Guo, Xiaoyong Sun, Deng Jiang
2020 J jnl
CoRR
Hao Yin, Xiaojun Guo, Pengyu Liu, Xiaojun Hei, Yayu Gao
2020 J jnl
Comput. Math. Methods Medicine
Junfeng Chen, Xiaojun Guo, Guangjun Zeng, Jianhua Liu, Bin Zhao, Tao Huang
2019 J jnl
Sensors
Xudong Wen, Chunwu Liu, Zhiping Huang, Shaojing Su, Xiaojun Guo, Zhen Zuo, Hao Qu
2019 J jnl
Comput. Biol. Medicine
Xiaojun Guo, Sifeng Liu, Yingjie Yang
2019 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Qinghang Zhao, Wenyu Sun, Jiaqing Zhao, Jian Zhao, Hailong Yao, Tsung-Yi Ho, Xiaojun Guo, Huazhong Yang, Yongpan Liu
2019 J jnl
Sensors
Xiaopeng Tan, Shaojing Su, Zhen Zuo, Xiaojun Guo, Xiaoyong Sun
2019 J jnl
Sensors
Yangyi Chen, Shaojing Su, Huiwen Yin, Xiaojun Guo, Zhen Zuo, Junyu Wei, Liyin Zhang
2019 J jnl
Sensors
Peng Wu, Shaojing Su, Zhen Zuo, Xiaojun Guo, Bei Sun, Xudong Wen
2019 J jnl
Sensors
Xiaopeng Tan, Shaojing Su, Zhiping Huang, Xiaojun Guo, Zhen Zuo, Xiaoyong Sun, Longqing Li
2018 conf
ASP-DAC
Wenyu Sun, Yuxuan Huang, Qinghang Zhao, Fei Qiao, Tsung-Yi Ho, Xiaojun Guo, Huazhong Yang, Yongpan Liu
2017 C conf
ISCAS
Wenyu Sun, Qinghang Zhao, Fei Qiao, Yongpan Liu, Huazhong Yang, Xiaojun Guo, Lei Zhou, Lei Wang
2017 A* conf
DAC
Qinghang Zhao, Yongpan Liu, Wenyu Sun, Jiaqing Zhao, Hailong Yao, Xiaojun Guo, Huazhong Yang
2016 conf
ISVLSI
Nan Wu, Zheyu Liu, Fei Qiao, Qi Wei, Xiaojun Guo, Yuan Xie, Huazhong Yang
2016 J jnl
CoRR
Nan Wu, Zheyu Liu, Fei Qiao, Xiaojun Guo, Qi Wei, Yuan Xie, Huazhong Yang
2016 conf
CBD
Aiping Zhou, Lijun Liu, Min Jiang, Xiaojun Guo
2016 conf
Trustcom/BigDataSE/ISPA
Xiaojun Guo, Guang Cheng, Yifei Hu, Mian Dai
2016 conf
CFI
Chengang Zhu, Guang Cheng, Xiaojun Guo, Yuxiang Wang
2016 J jnl
J. Intell. Fuzzy Syst.
Song Liu, Yingwu Chen, Lining Xing, Xiaojun Guo
2015 conf
ICA3PP (3)
Xiaojun Guo, Guang Cheng, Wubin Pan, Truong Dinhtu, Yixin Liang
2015 J jnl
Eng. Appl. Artif. Intell.
Xiaojun Guo, Sifeng Liu, Lifeng Wu, Yanbo Gao, Yingjie Yang
2015 J jnl
Comput. Syst. Sci. Eng.
Aiping Zhou, Guang Cheng, Xiaojun Guo, Dinhtu Truong, Chengang Zhu
2015 J jnl
Entropy
Desheng Liu, Zhiping Huang, Xiaojun Guo
2013 conf
HPCC/EUC
Xiaojun Guo, Guang Cheng, Chengang Zhu, Aiping Zhou, Wubin Pan, Dinhtu Truong
2013 conf
NEMS
C. Gu, S. Chen, Xiaojun Guo
2012 A conf
ICCAD
Xiang Chen, Beiye Liu, Yiran Chen, Mengying Zhao, Chun Jason Xue, Xiaojun Guo
2012 J jnl
Online Inf. Rev.
Bo Wang, Xiaojun Guo
2012 J jnl
Int. J. Comput. Intell. Syst.
Yibo Chen, Chanle Wu, Xiaojun Guo, Jiyan Wu
2012 A conf
ICCAD
Xiaojun Guo, Guangyu Yao, Xiaoli Xu, Wenjiang Liu, Tao Liu
2011 conf
ICAIC (4)
Weicheng Xiong, Chanle Wu, Libing Wu, Xiaojun Guo, Yibo Chen, Ming Xie
2011 J jnl
J. Comput.
Yibo Chen, Chanle Wu, Ming Xie, Xiaojun Guo
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"