Haiyan Fu

75 papers A* 1A 3B 7C 6Misc 1Journal 36Unranked 21
YearRankTypeTitle / Venue / Authors
2025 J jnl
Int. J. Bifurc. Chaos
Haiyan Fu, Ramesh Ramamoorthy, Tengfei Lei, Karthikeyan Rajagopal, Sajad Jafari
2025 J jnl
Comput. Mater. Continua
Chexiaole Zhang, Haiyan Fu
2025 A conf
ICME
Yi Li, Weichao Li, Xin Zheng, Haiyan Fu, Yanqing Guo
2025 conf
PAKDD (3)
Wanru Niu, Yi Li, Jianfei Liu, Xin Xie, Haiyan Fu, Yanqing Guo
2025 conf
PRCV (6)
Jianfei Liu, Yi Li, Fuxin Yu, Haiyan Fu, Yanqing Guo
2025 J jnl
Int. J. Bifurc. Chaos
Maheshwar Pd. Sah, Peipei Jin, Guangyi Wang, Fang Yuan, Haiyan Fu
2025 conf
PAKDD (2)
Yue Hua, Yi Li, Xin Zheng, Ming Yang, Haiyan Fu, Alan Wee-Chung Liew, Yanqing Guo
2024 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Xiaoliang Cen, Chunbiao Li, Xu-Dong Gao, Tengfei Lei, Haiyan Fu
2024 J jnl
Int. J. Bifurc. Chaos
Yikai Gao, Chunbiao Li, Irene M. Moroz, Haiyan Fu, Tengfei Lei
2024 J jnl
Eng. Appl. Artif. Intell.
Tao Yao, Shouyong Peng, Yujuan Sun, Guorui Sheng, Haiyan Fu, Xiangwei Kong
2024 conf
VSIP
Yuqiao Yuan, Yi Li, Haiyan Fu, Bo Wang, Yanqing Guo
2024 conf
LREC/COLING
Guisheng Liu, Yi Li, Zhengcong Fei, Haiyan Fu, Xiangyang Luo, Yanqing Guo
2024 J jnl
CoRR
Yi Li, Xin Xie, Lina Lei, Haiyan Fu, Yanqing Guo
2023 A conf
ICME
Yi Li, Xin Xie, Haiyan Fu, Xiangyang Luo, Yanqing Guo
2023 conf
PRCV (1)
Mengluan Li, Yanqing Guo, Haiyan Fu, Yi Li, Hong Su
2023 A conf
ICME
Yi Li, Meihua Yu, Xin Xie, Haiyan Fu, Hao He, Yanqing Guo
2023 J jnl
Complex.
Tengfei Lei, Rita Yi Man Li, Nuttapong Jotikastira, Haiyan Fu, Cong Wang
2023 J jnl
CoRR
Guisheng Liu, Yi Li, Zhengcong Fei, Haiyan Fu, Xiangyang Luo, Yanqing Guo
2022 J jnl
Symmetry
Haiyan Fu, Tengfei Lei
2022 J jnl
Symmetry
Lili Huang, Xin Zhang, Hongyan Zang, Tengfei Lei, Haiyan Fu
2022 A* conf
CVPR
Xin Xie, Yi Li, Huaibo Huang, Haiyan Fu, Wanwan Wang, Yanqing Guo
2022 J jnl
Symmetry
Tengfei Lei, Zhou You, Haiyan Fu, Lili Huang, Hongyan Zang
2022 conf
BigDataSecurity/HPSC/IDS
Tengfei Lei, Haiyan Fu, Lili Huang, Hongyan Zang, You Zhou, Tingyang Yan
2022 conf
ICBET
Binghui Liu, Aili Yang, Lei Jin, Panfeng Gao, Tuanyu Guo, Haiyan Fu
2022 conf
IEEA
Yiqing Song, Yuanmao Zheng, Lianfeng Wu, Jianfu Liu, Zhenzhen Cai, Haiyan Fu
2021 J jnl
IEEE Access
Haojun Wang, Haixia Long, Ailan Wang, Tianyue Liu, Haiyan Fu
2021 J jnl
Symmetry
Tengfei Lei, Beixing Mao, Xuejiao Zhou, Haiyan Fu
2021 conf
ICPHM
Haiyan Fu, Tengfei Lei, Miaomiao Xin, Feng Cao, Minglei Jin, Tingyang Yan
2020 C conf
BIBE
Fengshan Yang, Mengyi Li, Cong Sun, Siying Li, Yukun Ma, Haiyan Fu, Chunguang Liu
2020 J jnl
IEEE Trans. Cybern.
Tao Yao, Xiangwei Kong, Haiyan Fu, Qi Tian
2020 J jnl
Neurocomputing
Tao Yao, Yaru Han, Ruxin Wang, Xiangwei Kong, Lianshan Yan, Haiyan Fu, Qi Tian
2020 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Ying Li, Xiangwei Kong, Haiyan Fu, Qi Tian
2020 B conf
ICMR
Haiyan Fu, Ying Li, Hengheng Zhang, Jinfeng Liu, Tao Yao
2019 conf
ICPHM
Lu Yang, Jian Wang, Guigang Zhang, Xingwang Li, Haiyan Fu
2019 J jnl
Frontiers Comput. Sci.
Ying Li, Xiangwei Kong, Haiyan Fu, Qi Tian
2019 C conf
CIS
Haiyan Fu, Yu Li, Xuechao Sun
2019 J jnl
Multim. Tools Appl.
Ying Li, Xiangwei Kong, Haiyan Fu
2018 J jnl
Multim. Tools Appl.
Fuqing Zhu, Xiangwei Kong, Qun Wu, Haiyan Fu, Ming Li
2018 J jnl
Multim. Syst.
Fuqing Zhu, Xiangwei Kong, Haiyan Fu, Qi Tian
2018 J jnl
Neurocomputing
Ying Li, Xiangwei Kong, Haiyan Fu, Qi Tian
2018 J jnl
Multim. Tools Appl.
Qiang Li, Haiyan Fu, Xiangwei Kong, Qi Tian
2018 J jnl
Multim. Syst.
Fuqing Zhu, Xiangwei Kong, Haiyan Fu, Qi Tian
2018 J jnl
Symmetry
Lei Jin, Haiyan Fu, Younggy Kim, Li Wang, Huiyan Cheng, Guohe Huang
2017 conf
ICIG (2)
Qiang Li, Haiyan Fu, Xiangwei Kong
2017 J jnl
IEEE Trans. Image Process.
Fuqing Zhu, Xiangwei Kong, Liang Zheng, Haiyan Fu, Qi Tian
2017 J jnl
CoRR
Fuqing Zhu, Xiangwei Kong, Liang Zheng, Haiyan Fu, Qi Tian
2017 J jnl
CoRR
Fuqing Zhu, Xiangwei Kong, Haiyan Fu, Qi Tian
2017 J jnl
Digit. Signal Process.
Tao Yao, Xiangwei Kong, Haiyan Fu, Qi Tian
2016 J jnl
Multim. Syst.
Haiyan Fu, Hanguang Zhao, Xiangwei Kong, Xianbo Zhang
2016 J jnl
Multim. Tools Appl.
Haiyan Fu, Xiangwei Kong, Zhenfan Wang
2016 C conf
CIS
Haiyan Fu, Dong Xu
2016 C conf
CIS
Dong Xu, Haiyan Fu, Wenjuan Jiang
2016 J jnl
Neurocomputing
Tao Yao, Xiangwei Kong, Haiyan Fu, Qi Tian
2016 J jnl
计算机科学
Yanqing Guo, Rui Zhao, Xiangwei Kong, Haiyan Fu, Jinping Jiang
2015 B conf
ICIP
Zhenfan Wang, Xiangwei Kong, Haiyan Fu, Ming Li, Yujia Zhang
2015 B conf
ICIP
Hanguang Zhao, Xiangwei Kong, Haiyan Fu, Yujia Zhang
2015 B conf
ICIP
Hongxue Yang, Xiangwei Kong, Haiyan Fu, Ming Li, Genping Zhao
2014 B conf
ICPR
Haiyan Fu, Xiangwei Kong, Yanqing Guo, Xingang You, Linna Zhou
2014 C conf
CIS
Haixia Long, Shulei Wu, Haiyan Fu
2014 B conf
ICPR
Ye Liu, Xiangwei Kong, Haiyan Fu, Xingang You, Yunbiao Guo
2014 conf
I3E
Ying Luo, Haiyan Fu
2014 C conf
CIS
Haixia Long, Shulei Wu, Haiyan Fu
2014 conf
I3E
Haixia Long, Haiyan Fu, Chun Shi
2013 J jnl
Neurocomputing
Haiyan Fu, Xiangwei Kong, Jiayin Lu
2013 conf
MMM (2)
Haiyan Fu, Xiangwei Kong, Yanqing Guo, Jiayin Lu
2011 B conf
ICIP
Jianhui Zhou, Haiyan Fu, Xiangwei Kong
2009 J jnl
J. Chem. Inf. Model.
Li-Juan Tang, Wen Du, Haiyan Fu, Jian-Hui Jiang, Hai-Long Wu, Guo-Li Shen, Ru-Qin Yu
2009 conf
IIH-MSP
Bin Li, Xiangwei Kong, Zhe Wang, Haiyan Fu
2009 conf
IIH-MSP
Haiyan Fu, Xiangwei Kong, Shijie Jia, Yanqing Guo
2008 conf
ACFIE
Haiyan Fu, Kai-Quan Shi, Chengyi Zhang
2008 conf
ACFIE
Haiqing Hu, Haiyan Fu, Kai-Quan Shi
2007 conf
ICFIE
Chengyi Zhang, Haiyan Fu
2006 conf
ISDA (1)
Haiqing Hu, Peijun Xue, Haiyan Fu
2006 J jnl
Pattern Recognit. Lett.
Chengyi Zhang, Haiyan Fu
2006 Misc conf
GrC
Chengyi Zhang, Bencheng Wei, Guohui Chen, Haiyan Fu
redb/extractors/elf_extractors/elf_dependencies.py
← Index redb/extractors/elf_extractors/elf_dependencies.py python
import inspect
from datetime import datetime, timezone
from typing import Any, List, Dict

from elftools.elf.elffile import ELFFile
from elftools.common.exceptions import ELFError

from redb.extractors.enum import Tag
from redb.extractors.elf_extractor import ELFExtractor
from redb.models.dataclasses import ELFDependency


class ELFDependencyExtractor(ELFExtractor):

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

    def _map_dependency_type(self, dt_tag_str: str) -> int:
        """Map dynamic tag string to enum value."""
        type_map = {
            'DT_NEEDED': 1,
            'DT_SONAME': 14,
            'DT_RPATH': 15,
            'DT_RUNPATH': 29
        }
        return type_map.get(dt_tag_str, 0)

    def _extract_dynamic_dependencies(self, elf) -> List[Dict]:
        """Extract dependencies from the dynamic section."""
        dependencies = []

        try:
            # Get the dynamic section
            dynamic_section = elf.get_section_by_name('.dynamic')
            if not dynamic_section:
                self.log.debug("No .dynamic section found")
                return dependencies

            # Iterate through dynamic tags
            for tag in dynamic_section.iter_tags():
                dt_tag = tag.entry.d_tag

                # Handle different dependency types
                if dt_tag == 'DT_NEEDED':
                    # Required library
                    dependency_name = tag.needed
                    dependencies.append(ELFDependency(
                        dependency_name=dependency_name,
                        dependency_type=self._map_dependency_type('DT_NEEDED'),
                        dependency_type_str='NEEDED'
                    ))

                elif dt_tag == 'DT_SONAME':
                    # Shared object name
                    dependency_name = tag.soname
                    dependencies.append(ELFDependency(
                        dependency_name=dependency_name,
                        dependency_type=self._map_dependency_type('DT_SONAME'),
                        dependency_type_str='SONAME'
                    ))

                elif dt_tag == 'DT_RPATH':
                    # Runtime library search path
                    dependency_name = tag.rpath
                    dependencies.append(ELFDependency(
                        dependency_name=dependency_name,
                        dependency_type=self._map_dependency_type('DT_RPATH'),
                        dependency_type_str='RPATH'
                    ))

                elif dt_tag == 'DT_RUNPATH':
                    # Runtime library search path (newer)
                    dependency_name = tag.runpath
                    dependencies.append(ELFDependency(
                        dependency_name=dependency_name,
                        dependency_type=self._map_dependency_type('DT_RUNPATH'),
                        dependency_type_str='RUNPATH'
                    ))

        except Exception as e:
            self.log.error(f"Error extracting dynamic dependencies: {e}")

        return dependencies

    def tag(self):
        return Tag.ELF_DEPENDENCIES.value if hasattr(Tag, 'ELF_DEPENDENCIES') else "elf_dependencies"

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)

            def extract_data(elf):
                # Extract dependencies - returns list of ELFDependency dataclasses
                dependencies = self._extract_dynamic_dependencies(elf)
                return dependencies

            if not self._is_elf_file():
                return None

            result = self._with_elf_file(extract_data)
            if result is None:
                return None

            self.elf_dependencies = result
            return self.elf_dependencies

        except Exception as e:
            self.log.error(f"Error extracting ELF dependencies {self.hash.sha256}: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        self.log.debug(inspect.currentframe().f_code.co_name)

        if exporter_type == "ElasticsearchExporter":
            return self.elf_dependencies
        elif exporter_type == "ClickHouseExporter":
            try:
                # Return valid empty structure if no dependencies (e.g., statically linked binary)
                # None is reserved for actual errors

                # Prepare data arrays for all dependencies
                data = []
                current_time = datetime.now(timezone.utc)
                for dep in self.elf_dependencies:
                    row = [
                        self.sha256,
                        self.md5,
                        self.sha1,
                        dep.dependency_name,
                        dep.dependency_type,
                        dep.dependency_type_str,
                        current_time
                    ]
                    data.append(row)

                column_names = [
                    'sha256', 'md5', 'sha1',
                    'dependency_name', 'dependency_type', 'dependency_type_str',
                    'analysis_date'
                ]

                if not data:
                    return None

                column_type_names = [
                    'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                    'LowCardinality(String)',
                    "Enum8('NEEDED'=1, 'SONAME'=14, 'RPATH'=15, 'RUNPATH'=29)",
                    'LowCardinality(String)',
                    'DateTime64(3, \'UTC\')'
                ]

                return (data, column_names, column_type_names)

            except Exception as e:
                self.log.error(f"Error preparing export data: {e}")
                raise

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