Xiao He

192 papers B 1C 8Journal 169Unranked 14
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Cybern.
Fanlin Jia, Xiao He
2026 J jnl
Neurocomputing
Meng Liu, Xiao He
2026 J jnl
IEEE Trans. Cybern.
Miao Cai, Xiao He, Donghua Zhou
2026 J jnl
CoRR
Zeyi Liu, Shuang Liu, Jihai Min, Zhaoheng Zhang, Jun Cen, Pengyu Han, Songqiao Hu, Zihan Meng, Xiao He, Donghua Zhou
2026 J jnl
Autom.
Yaqi Guo, Xiao He
2026 J jnl
CoRR
Shijin Chen, Zeyi Liu, Chenyang Li, Dongliang Zou, Xiao He, Donghua Zhou
2026 J jnl
Autom.
Xu Chen, Xiao He, S. Joe Qin
2026 J jnl
IEEE Trans. Autom. Control.
Jiahao Song, Zidong Wang, Qinyuan Liu, Xiao He
2026 J jnl
Autom.
Jiahao Song, Zidong Wang, Qinyuan Liu, Xiao He
2025 J jnl
IEEE Trans. Artif. Intell.
Ming Xu, Tuo Shi, Hao Zhang, Zeyi Liu, Xiao He
2025 J jnl
Neurocomputing
Wei Li, Zeyi Liu, Pengyu Han, Xiao He, Limin Wang, Tao Zhang
2025 J jnl
IEEE Trans. Ind. Informatics
Xiao He, Yaqi Guo
2025 J jnl
IEEE Trans. Ind. Informatics
Yaqi Guo, Qinyuan Liu, Zhao Zhang, Limin Wang, Xiao He
2025 J jnl
IEEE Trans. Ind. Informatics
Chang Liu, Xiao He
2025 J jnl
CoRR
Zeyi Liu, Songqiao Hu, Pengyu Han, Jiaming Liu, Xiao He
2025 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Songqiao Hu, Zeyi Liu, Minyue Li, Xiao He
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Zeyi Liu, Xiao He
2025 J jnl
IEEE Trans. Cybern.
Guangran Lyu, Xiao He
2025 J jnl
IEEE Trans. Instrum. Meas.
Xu Chen, Xiao He
2025 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Chen Li, Zeyi Liu, Xiao He, Pengyu Han
2025 J jnl
IEEE Trans. Instrum. Meas.
Jiao Li, Xiao He
2025 J jnl
IEEE Trans. Cybern.
Zeyi Liu, Xiao He, Biao Huang, Donghua Zhou
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Pengyu Han, Zeyi Liu, Xiao He, Steven X. Ding, Donghua Zhou
2025 J jnl
IEEE Trans. Cybern.
Mengtong Gong, Donghua Zhou, Li Sheng, Xiao He
2025 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Yi Zhen, Xiao He, Donghua Zhou
2025 J jnl
CoRR
Songqiao Hu, Zeyi Liu, Xiao He
2025 J jnl
Inf. Sci.
Chao Jia, Xiaohua Liu, Fanlin Jia, Xiao He
2025 J jnl
IEEE Trans. Reliab.
Xu Chen, Xiao He
2025 J jnl
IEEE Trans. Autom. Control.
Jiahao Song, Zidong Wang, Qinyuan Liu, Xiao He
2025 J jnl
CoRR
Pengyu Han, Zeyi Liu, Shijin Chen, Dongliang Zou, Xiao He
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Yaqi Guo, Xiao He
2025 J jnl
CoRR
Songqiao Hu, Zeyi Liu, Shuang Liu, Jun Cen, Zihan Meng, Xiao He
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Zeyi Liu, Jingfei Zhang, Xiao He
2024 J jnl
IEEE Trans. Ind. Informatics
Jingfei Zhang, Xiao He
2024 J jnl
IEEE Trans. Reliab.
Xiao He, Chen Li, Zeyi Liu
2024 J jnl
IEEE Trans. Ind. Electron.
Yaqi Guo, Xiao He
2024 J jnl
IEEE Trans. Autom. Control.
Zhao Zhang, Xiao He, Donghua Zhou
2024 J jnl
IEEE Trans. Instrum. Meas.
Yaqi Guo, Xiao He
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Zhao Zhang, Xiao He, Donghua Zhou
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Fanlin Jia, Fangfei Cao, Xiao He
2024 J jnl
IEEE Trans. Ind. Informatics
Fanlin Jia, Xiao He
2024 J jnl
IEEE Trans. Instrum. Meas.
Xiao He, Fanlin Jia
2024 J jnl
IEEE Trans. Reliab.
Chang Liu, Xiao He, Minyue Li, Yi Zhang, Zhongjun Ding
2024 J jnl
Autom.
Yaqi Guo, Qinyuan Liu, Xiao He
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Fanlin Jia, Xiao He
2024 J jnl
IEEE Trans. Ind. Electron.
Xu Chen, Xiao He, Si-Zhao Joe Qin
2024 J jnl
IEEE Trans. Ind. Informatics
Jingfei Zhang, Xiao He
2024 J jnl
IEEE Trans. Autom. Control.
Chen Gao, Zidong Wang, Xiao He, Yang Liu, Dong Yue
2024 J jnl
IEEE Trans. Cybern.
Xiao He, Zeyi Liu
2024 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Zeyi Liu, Xiao He
2024 J jnl
Appl. Math. Comput.
Fang Liao, Yanzheng Zhu, Xiao He, Donghua Zhou
2024 J jnl
IEEE Trans. Reliab.
Yubo Shao, Xiao He, Bangcheng Zhang, Chao Cheng, Xiaopeng Xi
2024 J jnl
IEEE Trans. Ind. Electron.
Jiahao Song, Xiao He
2024 J jnl
IEEE Trans. Ind. Informatics
Zeyi Liu, Chen Li, Xiao He
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Jingfei Zhang, Yean Cheng, Xiao He
2024 J jnl
IEEE Trans. Cybern.
Miao Cai, Xiao He, Donghua Zhou
2024 J jnl
IEEE Trans. Instrum. Meas.
Pengyu Han, Shijin Chen, Zeyi Liu, Xiao He
2024 J jnl
IEEE Trans. Cybern.
Fangfei Cao, Fanlin Jia, Xiao He
2024 J jnl
CoRR
Pengyu Han, Zeyi Liu, Xiao He, Steven X. Ding, Donghua Zhou
2024 J jnl
CoRR
Shijin Chen, Zeyi Liu, Xiao He, Dongliang Zou, Donghua Zhou
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Fangfei Cao, Xiao He
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Zeyi Liu, Xiao He
2024 J jnl
IEEE Trans Autom. Sci. Eng.
Fanlin Jia, Jie Huang, Xiao He
2024 J jnl
IEEE Trans. Netw. Sci. Eng.
Chen Gao, Zidong Wang, Lifeng Ma, Hongjian Liu, Xiao He
2024 J jnl
IEEE Trans. Cybern.
Miao Cai, Xiao He, Donghua Zhou
2024 J jnl
IEEE Trans. Autom. Control.
Fangfei Cao, Fanlin Jia, Xiao He
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Miao Cai, Xiao He, Donghua Zhou
2023 J jnl
IEEE Trans. Cybern.
Fanlin Jia, Fangfei Cao, Guangran Lyu, Xiao He
2023 conf
ICAC
Jiahao Song, Zidong Wang, Chen Gao, Xiao He
2023 J jnl
IEEE Trans. Instrum. Meas.
Zhao Zhang, Yaqi Guo, Xiao He
2023 J jnl
IEEE Trans. Ind. Informatics
Yaqi Guo, Xiao He
2023 J jnl
IEEE Trans. Ind. Informatics
Chang Liu, Yi Zhang, Zhongjun Ding, Xiao He
2023 J jnl
Autom.
Yaqi Guo, Qinyuan Liu, Zidong Wang, Zhao Zhang, Xiao He
2023 C conf
SAFEPROCESS
Fanlin Jia, Minyue Li, Xiao He
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Fanlin Jia, Fangfei Cao, Xiao He
2023 J jnl
CoRR
Chen Li, Zeyi Liu, Limin Wang, Minyue Li, Xiao He
2023 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Zeyi Liu, Yi Zhang, Zhongjun Ding, Xiao He
2023 J jnl
Autom.
Miao Cai, Xiao He, Donghua Zhou
2023 J jnl
Autom.
Qinyuan Liu, Zidong Wang, Xiao He, Hongli Dong, Changjun Jiang
2023 J jnl
CoRR
Songqiao Hu, Zeyi Liu, Xiao He
2023 J jnl
IEEE Trans. Ind. Informatics
Xiao He, Zidong Wang, Chen Gao, Donghua Zhou
2023 J jnl
IEEE Trans. Cybern.
Yujiang Zhong, Guangran Lyu, Xiao He, Youmin Zhang, Shuzhi Sam Ge
2023 J jnl
IEEE Trans. Control. Syst. Technol.
Zeyi Liu, Jingfei Zhang, Xiao He, Qinghua Zhang, Guoxi Sun, Donghua Zhou
2023 J jnl
J. Frankl. Inst.
Zhao Zhang, Xiao He
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Fanlin Jia, Xiao He
2023 J jnl
J. Frankl. Inst.
Fangfei Cao, Chang Liu, Xiao He
2023 J jnl
J. Frankl. Inst.
Miao Cai, Xiao He, Donghua Zhou
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Wen Yang, Yulian Jiang, Xiao He, Yanzheng Zhu, Shenquan Wang
2023 C conf
SAFEPROCESS
Miao Cai, Xiao He, Donghua Zhou
2023 J jnl
IEEE Trans. Instrum. Meas.
Ming Xu, Guang Zeng, Yongjun Song, Yue Cao, Zeyi Liu, Xiao He
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Miao Cai, Xiao He, Donghua Zhou
2023 C conf
SAFEPROCESS
Chang Liu, Limin Wang, Minyue Li, Xiao He
2023 J jnl
IEEE Trans. Intell. Transp. Syst.
Wenjin Wang, Tao Wen, Xiao He, Guohua Xu
2023 J jnl
IEEE Trans. Intell. Transp. Syst.
Zeyi Liu, Xiao He
2023 C conf
SAFEPROCESS
Zeyi Liu, Songqiao Hu, Xiao He
2023 J jnl
CoRR
Zeyi Liu, Songqiao Hu, Xiao He
2023 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Yujiang Zhong, Youmin Zhang, Shuzhi Sam Ge, Xiao He
2022 J jnl
IEEE Trans. Instrum. Meas.
Jiahao Song, Huafeng Li, Xiao He
2022 J jnl
Autom.
Maiying Zhong, Steven X. Ding, Qing-Long Han, Xiao He, Donghua Zhou
2022 J jnl
IEEE Trans. Instrum. Meas.
Chen Li, Gang Li, Xu Chen, Ping Zhou, Xiao He
2022 J jnl
Int. J. Syst. Sci.
Chen Gao, Xiao He, Hongli Dong, Hongjian Liu, Guangran Lyu
2022 J jnl
IEEE Trans. Instrum. Meas.
Zhao Zhang, Xiao He
2022 J jnl
IEEE Trans. Instrum. Meas.
Fangfei Cao, Zhao Zhang, Xiao He
2022 J jnl
J. Frankl. Inst.
Fanlin Jia, Fangfei Cao, Yaqi Guo, Xiao He
2022 conf
S-CUBE
Songqiao Hu, Zeyi Liu, Xiao He
2022 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Chen Gao, Zidong Wang, Xiao He, Qing-Long Han
2022 J jnl
IEEE CAA J. Autom. Sinica
Yamei Ju, Derui Ding, Xiao He, Qing-Long Han, Guoliang Wei
2022 J jnl
IEEE Trans. Netw. Sci. Eng.
Chen Gao, Zidong Wang, Jun Hu, Yang Liu, Xiao He
2022 J jnl
IEEE Trans. Intell. Transp. Syst.
Yinghong Zhao, Xiao He, Donghua Zhou, Michael G. Pecht
2022 J jnl
Neurocomputing
Ye Zhao, Xiao He, Lifeng Ma, Hongjian Liu
2022 J jnl
IEEE Trans. Instrum. Meas.
Jingfei Zhang, Yean Cheng, Xiao He
2022 J jnl
IEEE Trans. Autom. Control.
Chen Gao, Zidong Wang, Xiao He, Hongli Dong
2022 J jnl
IEEE Trans. Cybern.
Chen Gao, Zidong Wang, Xiao He, Qing-Long Han
2022 J jnl
Int. J. Syst. Sci.
Miao Cai, Xiao He, Donghua Zhou
2022 J jnl
IEEE Trans. Instrum. Meas.
Zhao Zhang, Xiao He
2022 J jnl
Int. J. Syst. Sci.
Ye Zhao, Xiao He, Lifeng Ma, Hongjian Liu
2021 conf
CAA SAFEPROCESS
Fanlin Jia, Xiao He
2021 J jnl
IEEE Trans. Control. Syst. Technol.
Jingfei Zhang, Qinghua Zhang, Xiao He, Guoxi Sun, Donghua Zhou
2021 J jnl
Autom.
Yinghong Zhao, Xiao He, Junfeng Zhang, Hongquan Ji, Donghua Zhou, Michael G. Pecht
2021 J jnl
Autom.
Chen Gao, Zidong Wang, Xiao He, Hongli Dong
2021 conf
CAA SAFEPROCESS
Chang Liu, Yi Zhang, Xiao He
2021 J jnl
Int. J. Syst. Sci.
Yamei Ju, Yang Liu, Xiao He, Bangcheng Zhang
2021 conf
CAA SAFEPROCESS
Xu Chen, Xiao He
2021 J jnl
Inf. Sci.
Zeyi Liu, Xiao He, Yong Deng
2021 J jnl
J. Frankl. Inst.
Jiao Li, Fanlin Jia, Xiao He
2021 conf
CAA SAFEPROCESS
Miao Cai, Xiao He, Donghua Zhou
2021 J jnl
IEEE Trans. Instrum. Meas.
Zeyi Liu, Yong Deng, Yi Zhang, Zhongjun Ding, Xiao He
2021 J jnl
Autom.
Chen Gao, Zidong Wang, Xiao He, Dong Yue
2020 J jnl
IEEE Trans. Autom. Control.
Maiying Zhong, Steven X. Ding, Donghua Zhou, Xiao He
2020 J jnl
CoRR
Yinghong Zhao, Xiao He, Michael G. Pecht, Junfeng Zhang, Donghua Zhou
2020 J jnl
CoRR
Yinghong Zhao, Xiao He, Junfeng Zhang, Hongquan Ji, Donghua Zhou, Michael G. Pecht
2020 J jnl
Int. J. Control
Junfeng Zhang, Xiao He, Donghua Zhou
2020 J jnl
Int. J. Control
Junfeng Zhang, Panagiotis D. Christofides, Xiao He, Fahad Albalawi, Yinghong Zhao, Donghua Zhou
2020 J jnl
IEEE Trans. Ind. Electron.
Donghua Zhou, Yinghong Zhao, Zidong Wang, Xiao He, Ming Gao
2020 J jnl
Neurocomputing
Junfeng Zhang, Panagiotis D. Christofides, Xiao He, Zhe Wu, Yinghong Zhao, Donghua Zhou
2019 conf
CAA SAFEPROCESS
Zhao Zhang, Jie Huang, Xiao He
2019 J jnl
IEEE Trans. Reliab.
Jian-Xun Zhang, Chang-Hua Hu, Xiao He, Xiao-Sheng Si, Yang Liu, Dong-Hua Zhou
2019 conf
CAA SAFEPROCESS
Xu Chen, Xiao He
2019 J jnl
Neurocomputing
Hongyang Li, Junfeng Zhang, Xiao He
2019 conf
CASE
Yinghong Zhao, Xiao He, Donghua Zhou
2019 conf
CAA SAFEPROCESS
Rongyi Yan, Hui Xia, Tong Liang, Xiao He
2019 J jnl
J. Frankl. Inst.
Liguo Qin, Xiao He, Rui Yan, Ruiliang Deng, Donghua Zhou
2019 J jnl
IEEE Trans. Autom. Control.
Qinyuan Liu, Zidong Wang, Xiao He, Donghua Zhou
2019 conf
CAA SAFEPROCESS
Chang Liu, Yi Zhang, Xiao He
2019 conf
CAA SAFEPROCESS
Yi Zhang, Zhongjun Ding, Chang Liu, Haibin Qi, Qingxin Zhao, Jie Huang, Xiao He
2018 J jnl
Int. J. Control
Rongyi Yan, Xiao He, Zidong Wang, Donghua Zhou
2018 J jnl
Sci. China Inf. Sci.
Ye Zhao, Xiao He, Donghua Zhou
2018 J jnl
Sci. China Inf. Sci.
Donghua Zhou, Liguo Qin, Xiao He, Rui Yan, Ruiliang Deng
2018 J jnl
Autom.
Qinyuan Liu, Zidong Wang, Xiao He, Donghua Zhou
2018 J jnl
IEEE Trans. Control. Syst. Technol.
Donghua Zhou, Hongquan Ji, Xiao He, Jun Shang
2018 J jnl
J. Control. Sci. Eng.
Xiao He, Zidong Wang, Zhi-Jie Zhou, Youqing Wang, Qiang Liu
2018 J jnl
Autom.
Junfeng Zhang, Xiao He, Donghua Zhou
2018 J jnl
IEEE Trans. Autom. Control.
Qinyuan Liu, Zidong Wang, Xiao He, Donghua Zhou
2017 J jnl
IEEE Trans. Signal Process.
Qinyuan Liu, Zidong Wang, Xiao He, Gheorghita Ghinea, Fuad E. Alsaadi
2017 J jnl
J. Intell. Robotic Syst.
Liguo Qin, Xiao He, Rui Yan, Donghua Zhou
2017 B conf
SMC
Hongquan Ji, Xiao He, Donghua Zhou
2017 J jnl
J. Control. Sci. Eng.
Xiao He, Yamei Ju, Yang Liu, Bangcheng Zhang
2017 J jnl
J. Control. Sci. Eng.
Jie Huang, Xiao He
2017 C conf
IECON
Ye Zhao, Xiao He, Donghua Zhou
2017 J jnl
Neurocomputing
Liguo Qin, Xiao He, Donghua Zhou
2017 J jnl
Int. J. Control
Yang Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2017 J jnl
J. Control. Sci. Eng.
Xiao He, Zidong Wang, Gang Li, Zhi-Jie Zhou, Youqing Wang
2017 C conf
IECON
Hongyang Li, Xiao He
2017 C conf
IECON
Jie Huang, Xiao He
2017 J jnl
IEEE Trans. Ind. Electron.
Xiao He, Zidong Wang, Yang Liu, Liguo Qin, Donghua Zhou
2017 J jnl
Int. J. Control
Liguo Qin, Xiao He, Donghua Zhou
2017 J jnl
Syst. Control. Lett.
Yang Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2017 J jnl
Reliab. Eng. Syst. Saf.
Jian-Xun Zhang, Chang-Hua Hu, Xiao He, Xiao-Sheng Si, Yang Liu, Dong-Hua Zhou
2016 J jnl
IEEE Trans. Control. Syst. Technol.
Xiao He, Zidong Wang, Liguo Qin, Donghua Zhou
2016 J jnl
J. Frankl. Inst.
Rongyi Yan, Xiao He, Donghua Zhou
2016 J jnl
J. Frankl. Inst.
Jiantao Shi, Xiao He, Donghua Zhou
2016 J jnl
IEEE Trans. Control. Netw. Syst.
Yang Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2015 J jnl
IEEE Trans. Ind. Informatics
Qinyuan Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2015 J jnl
IEEE Trans. Autom. Control.
Qinyuan Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2015 J jnl
IEEE Trans. Autom. Control.
Qinyuan Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2015 conf
CASE
Junfeng Zhang, Xiao He, Dong-Hua Zhou
2015 J jnl
Autom.
Yang Liu, Zidong Wang, Xiao He, Dong-Hua Zhou
2014 J jnl
J. Intell. Robotic Syst.
Jiantao Shi, Xiao He, Zidong Wang, Donghua Zhou
2014 J jnl
IEEE Trans. Ind. Electron.
Xiao He, Zidong Wang, Xiaofeng Wang, Dong-Hua Zhou
2014 J jnl
Autom.
Yang Liu, Xiao He, Zidong Wang, Donghua Zhou
2013 J jnl
IEEE Trans. Ind. Informatics
Xiao He, Zidong Wang, Yang Liu, Dong-Hua Zhou
2013 J jnl
Int. J. Syst. Sci.
Xiao He, Zidong Wang, Yindong Ji, Donghua Zhou
2012 J jnl
IEEE Trans. Control. Syst. Technol.
Donghua Zhou, Xiao He, Zidong Wang, Guo-Ping Liu, Yindong Ji
2011 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Xiao He, Zidong Wang, Y. D. Ji, Dong-Hua Zhou
2010 J jnl
Int. J. Syst. Sci.
Xiao He, Zidong Wang, Yindong Ji, Donghua Zhou
2010 C conf
ICARCV
Weiwei Zhao, Xiao He, Yindong Ji
2009 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Guoliang Wei, Zidong Wang, Xiao He, Huisheng Shu
2009 J jnl
IEEE Signal Process. Lett.
Xiao He, Zidong Wang, Donghua Zhou
2009 J jnl
Autom.
Xiao He, Zidong Wang, Donghua Zhou
2008 conf
ICNSC
Guoliang Wei, Zidong Wang, Huisheng Shu, Xiao He
2008 J jnl
Int. J. Syst. Sci.
Xiao He, Zidong Wang, Donghua Zhou
2007 J jnl
Int. J. Control
Xiao He, Zidong Wang, Donghua Zhou
redb/extractors/elf_extractor.py
← Index redb/extractors/elf_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

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

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class ELFExtractor(Extractor, metaclass=ABCMeta):

    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
        )
        # Store ELF object if provided, otherwise we'll create it per-operation for security
        self._provided_elf = elf
        self._elf_file_valid = None  # Cache validity check

    def _with_elf_file(self, operation):
        """Safely execute an operation with an ELF file using context manager.

        Args:
            operation: A callable that takes an ELFFile object and returns a result

        Returns:
            The result of the operation, or None if an error occurred
        """
        if self._provided_elf:
            try:
                return operation(self._provided_elf)
            except ELFError as e:
                if "String Table not found" in str(e):
                    self.log.warning(f"String table missing in ELF {self.hash.sha256}: {e}")
                    return None
                else:
                    self.log.error(f"ELF format error {self.hash.sha256} Full error: {e}")
                    return None
            except Exception as e:
                self.log.error(f"Error processing ELF file {self.hash.sha256} Full error: {e}")
                return None

        try:
            with open(self.filepath, 'rb') as f:
                elf = ELFFile(f)
                if not elf:
                    raise ELFError("Empty file?")
                return operation(elf)
        except ELFError as e:
            if "String Table not found" in str(e):
                self.log.warning(f"String table missing in ELF {self.hash.sha256}: {e}")
                return None
            else:
                self.log.error(f"ELF format error {self.hash.sha256} Full error: {e}")
                return None
        except Exception as e:
            self.log.error(f"Error reading ELF file {self.hash.sha256} Full error: {e}")
            return None

    def _is_elf_file(self):
        """Check if the file is a valid ELF binary."""
        if self._elf_file_valid is not None:
            return self._elf_file_valid

        def check_elf_validity(elf):
            # pyelftools ELFFile object existing means it's valid ELF
            # Just check that we can access the header
            header = elf.header
            return header is not None

        try:
            result = self._with_elf_file(check_elf_validity)
            self._elf_file_valid = bool(result)
            return self._elf_file_valid
        except Exception as e:
            self.log.error(f"Error checking ELF file: {e}")
            self._elf_file_valid = False
            return False

    def _is_64bit(self):
        """Check if the ELF binary is 64-bit."""
        def check_64bit(elf):
            return elf.header.get('e_ident', {}).get('EI_CLASS') == 'ELFCLASS64'

        try:
            result = self._with_elf_file(check_64bit)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking ELF bitness: {e}")
            return False

    def _is_stripped(self):
        """Check if the ELF binary is stripped (no symbol table)."""
        def check_stripped(elf):
            # Look for symbol table sections
            for section in elf.iter_sections():
                if section.name in ['.symtab', '.strtab']:
                    return False
            return True

        try:
            result = self._with_elf_file(check_stripped)
            return result if result is not None else True
        except Exception as e:
            self.log.error(f"Error checking if ELF is stripped: {e}")
            return True

    def _has_debug_info(self):
        """Check if the ELF binary contains debug information."""
        def check_debug_info(elf):
            # Look for debug sections
            debug_sections = ['.debug_info', '.debug_line', '.debug_str', '.debug_abbrev']
            for section in elf.iter_sections():
                if section.name in debug_sections:
                    return True
            return False

        try:
            result = self._with_elf_file(check_debug_info)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking debug info: {e}")
            return False

    def _get_architecture(self):
        """Get the architecture of the ELF binary."""
        def get_arch(elf):
            machine = elf.header.get('e_machine', 'EM_NONE')

            # Map common machine types to readable names
            arch_map = {
                'EM_386': 'x86',
                'EM_X86_64': 'x86_64',
                'EM_ARM': 'ARM',
                'EM_AARCH64': 'ARM64',
                'EM_MIPS': 'MIPS',
                'EM_PPC': 'PowerPC',
                'EM_PPC64': 'PowerPC64',
                'EM_SPARC': 'SPARC',
                'EM_RISCV': 'RISC-V'
            }

            return arch_map.get(machine, machine)

        try:
            result = self._with_elf_file(get_arch)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting architecture: {e}")
            return "unknown"

    def _get_endianness(self):
        """Get the endianness of the ELF binary."""
        def get_endian(elf):
            data_encoding = elf.header.get('e_ident', {}).get('EI_DATA')
            if data_encoding == 'ELFDATA2LSB':
                return "little"
            elif data_encoding == 'ELFDATA2MSB':
                return "big"
            return "unknown"

        try:
            result = self._with_elf_file(get_endian)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting endianness: {e}")
            return "unknown"

    def _get_file_type(self):
        """Get the file type of the ELF binary."""
        def get_file_type(elf):
            etype = elf.header.get('e_type', 'ET_NONE')

            # Map file types to readable names
            type_map = {
                'ET_NONE': 'none',
                'ET_REL': 'relocatable',
                'ET_EXEC': 'executable',
                'ET_DYN': 'shared_object',
                'ET_CORE': 'core_dump'
            }

            return type_map.get(etype, etype)

        try:
            result = self._with_elf_file(get_file_type)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting file type: {e}")
            return "unknown"

    def _is_pie(self):
        """Check if the ELF binary is position-independent executable."""
        def check_pie(elf):
            # PIE binaries are typically ET_DYN type
            etype = elf.header.get('e_type', 'ET_NONE')
            if etype == 'ET_DYN':
                # Check if it has an entry point (executable) vs library
                entry_point = elf.header.get('e_entry', 0)
                return entry_point > 0
            return False

        try:
            result = self._with_elf_file(check_pie)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking PIE: {e}")
            return False

    def _has_stack_protection(self):
        """Check if the binary has stack protection (canaries)."""
        def check_stack_protection(elf):
            # Look for stack protection symbols
            stack_symbols = ['__stack_chk_fail', '__stack_chk_guard']

            for section in elf.iter_sections():
                if hasattr(section, 'iter_symbols'):
                    for symbol in section.iter_symbols():
                        if symbol.name in stack_symbols:
                            return True
            return False

        try:
            result = self._with_elf_file(check_stack_protection)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking stack protection: {e}")
            return False

    def _has_nx_bit(self):
        """Check if the binary has NX bit (non-executable stack)."""
        def check_nx_bit(elf):
            # Look for GNU_STACK segment
            for segment in elf.iter_segments():
                if segment.header.get('p_type') == 'PT_GNU_STACK':
                    flags = segment.header.get('p_flags', 0)
                    # Check if execute flag is NOT set (NX enabled)
                    return not (flags & 0x1)  # PF_X = 0x1
            return False

        try:
            result = self._with_elf_file(check_nx_bit)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking NX bit: {e}")
            return False

    def _has_relro(self):
        """Check if the binary has RELRO (Relocation Read-Only)."""
        def check_relro(elf):
            # Look for GNU_RELRO segment
            for segment in elf.iter_segments():
                if segment.header.get('p_type') == 'PT_GNU_RELRO':
                    return True
            return False

        try:
            result = self._with_elf_file(check_relro)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking RELRO: {e}")
            return False

    def _get_build_id(self):
        """Extract build ID from notes section."""
        def get_build_id(elf):
            # Look for build ID in notes sections
            for section in elf.iter_sections():
                if section.name == '.note.gnu.build-id':
                    for note in section.iter_notes():
                        if note['n_type'] == 'NT_GNU_BUILD_ID':
                            # Convert bytes to hex string
                            build_id = note['n_desc']
                            if isinstance(build_id, bytes):
                                return build_id.hex()
                            return str(build_id)
            return None

        try:
            result = self._with_elf_file(get_build_id)
            return result
        except Exception as e:
            self.log.error(f"Error getting build ID: {e}")
            return None

    def _count_sections(self):
        """Count the number of sections in the ELF file."""
        def count_sections(elf):
            return elf.header.get('e_shnum', 0)

        try:
            result = self._with_elf_file(count_sections)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting sections: {e}")
            return 0

    def _count_segments(self):
        """Count the number of segments (program headers) in the ELF file."""
        def count_segments(elf):
            return elf.header.get('e_phnum', 0)

        try:
            result = self._with_elf_file(count_segments)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting segments: {e}")
            return 0

    def _count_symbols(self):
        """Count the total number of symbols in symbol tables."""
        def count_symbols(elf):
            symbol_count = 0
            for section in elf.iter_sections():
                if hasattr(section, 'iter_symbols'):
                    symbol_count += section.num_symbols()
            return symbol_count

        try:
            result = self._with_elf_file(count_symbols)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting symbols: {e}")
            return 0

    def _get_dependencies(self):
        """Get list of dynamic dependencies."""
        def get_dependencies(elf):
            dependencies = []
            dynamic_section = elf.get_section_by_name('.dynamic')
            if dynamic_section:
                for tag in dynamic_section.iter_tags():
                    if tag.entry.d_tag == 'DT_NEEDED':
                        dependencies.append(tag.needed)
            return dependencies

        try:
            result = self._with_elf_file(get_dependencies)
            return result if result is not None else []
        except Exception as e:
            self.log.error(f"Error getting dependencies: {e}")
            return []