Wei Quan

133 papers A* 1B 18C 5Misc 3Journal 69Unranked 36
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Commun. Surv. Tutorials
Ruijin Sun, Nan Cheng, Changle Li, Wei Quan, Haibo Zhou, Ying Wang, Wei Zhang, Xuemin Shen
2026 J jnl
IEEE Trans. Mob. Comput.
Xiucheng Wang, Zien Wang, Nan Cheng, Wenchao Xu, Wei Quan, Xuemin Shen
2026 J jnl
IEEE Trans. Mob. Comput.
Ruibin Guo, Wei Quan, Xinyu Huang, Yuming Zhang, Mingyuan Liu, Dong Yang, Hongke Zhang, Xuemin Shen
2026 J jnl
IEEE Trans. Netw. Sci. Eng.
Xue Zhang, Yuming Zhang, Wei Quan, Mingyuan Liu, Yirong Zhuang, Yan Luo, Tong Luo, Jie Liang, Kang Liu, Hongke Zhang
2026 J jnl
IEEE Trans. Cogn. Commun. Netw.
Jinglong Shen, Nan Cheng, Wenchao Xu, Haozhao Wang, Wei Quan, Xuemin Shen
2025 J jnl
IEEE Internet Things J.
Yikun Li, Ying Liu, Yu Xia, Weiting Zhang, Wei Quan, Jiawen Kang, Hongke Zhang
2025 J jnl
IEEE Internet Things J.
Jingchao He, Nan Cheng, Ruijin Sun, Ruqian Zhang, Conghao Zhou, Wei Quan, Changle Li
2025 B conf
GLOBECOM
Qing Pan, Qimiao Zeng, Yirong Zhuang, Qi Chen, Mingjiang Fu, Wei Quan
2025 B conf
GLOBECOM
Qimiao Zeng, Wei Quan, Yirong Zhuang, Qing Pan, Qi Chen, Jinxia Hai, Yuming Zhang, Xue Zhang
2025 J jnl
CoRR
Xiucheng Wang, Zien Wang, Nan Cheng, Wenchao Xu, Wei Quan, Xuemin Shen
2025 J jnl
IEEE Trans. Mob. Comput.
Ziheng Xu, Wei Quan, Nan Cheng, Yuming Zhang, Mingyuan Liu, Xiaoting Ma, Xue Zhang, Hongke Zhang
2025 J jnl
IEEE Trans. Netw.
Kang Liu, Wei Quan, Yuming Zhang, Nan Cheng, Chengxiao Yu, Mingyuan Liu, Xiaoting Ma, Qimiao Zeng, Hongke Zhang, Weihua Zhuang
2025 conf
ICC
Yan Luo, Yuming Zhang, Mingyuan Liu, Jinhua Peng, Feilong Wang, Nan Cheng, Wei Quan
2025 J jnl
IEEE Internet Things J.
Nan Cheng, Longfei Ma, Yanpeng Dai, Xiucheng Wang, Qihao Li, Wei Quan, Hui Liang, Xuemin Shen
2025 J jnl
CoRR
Zien Wang, Xiucheng Wang, Nan Cheng, Wenchao Xu, Wei Quan, Ruijin Sun, Conghao Zhou
2025 J jnl
IEEE Trans. Veh. Technol.
Yujie Zhang, Nan Cheng, Yanpeng Dai, Zhisheng Yin, Wei Quan, Yi Zhou, Ning Zhang
2025 J jnl
IEEE Internet Things J.
Jingchao He, Nan Cheng, Ruijin Sun, Ruqian Zhang, Conghao Zhou, Wei Quan, Changle Li
2025 J jnl
IEEE Trans. Veh. Technol.
Gang Liu, Wei Quan, Nan Cheng, Mingyuan Liu, Yuxuan Li
2024 B conf
GLOBECOM
Yupeng Zhu, Wei Wang, Nan Cheng, Haibo Zhou, Wei Quan, Changle Li
2024 B conf
GLOBECOM
Jun Deng, Yuming Zhang, Wei Quan, Xiaoting Ma, Mingyuan Liu, Jinfa Wang, Wei Su
2024 J jnl
IEEE Trans. Mob. Comput.
Ziheng Xu, Wei Quan, Mingyuan Liu, Nan Cheng, Xue Zhang, Yan Luo, Deyun Gao, Hongke Zhang
2024 J jnl
IEEE Internet Things J.
Gang Liu, Wei Quan, Nan Cheng, Mingyuan Liu, Jiangang Tong, Jingyuan Han, Tianwei Hou, Chengxiao Yu
2024 conf
GLOBECOM (Workshops)
Yujie Zhang, Jingchao He, Nan Cheng, Ruijin Sun, Qihao Li, Wei Quan
2024 conf
GLOBECOM (Workshops)
Jingchao He, Nan Cheng, Zhisheng Yin, Conghao Zhou, Wei Quan, Haibo Zhou
2024 B conf
PIMRC
Ge Qi, Ruijin Sun, Nan Cheng, Wei Quan, Haibo Zhou, Zhou Su, Changle Li
2024 J jnl
IEEE Internet Things J.
Hao Yang, Nan Cheng, Ruijin Sun, Wei Quan, Rong Chai, Khalid Aldubaikhy, Abdullah M. Alqasir, Xuemin Shen
2024 J jnl
IEEE Trans. Cogn. Commun. Netw.
Meiyi Yang, Deyun Gao, Chuan Heng Foh, Wei Quan, Victor C. M. Leung
2024 B conf
GLOBECOM
Xue Zhang, Yirong Zhuang, Mingyuan Liu, Junfeng Ma, Shuaihao Pan, Mingchuan Zhang, Wei Quan
2024 J jnl
IEEE Trans. Wirel. Commun.
Ping Xie, Fan Li, Mingchuan Zhang, Wei Quan, Junlong Zhu, Nan Cheng
2024 J jnl
IEEE Trans. Veh. Technol.
Jingchao He, Nan Cheng, Zhisheng Yin, Conghao Zhou, Haibo Zhou, Wei Quan, Xiaohui Lin
2023 J jnl
Peer Peer Netw. Appl.
Du Chen, Deyun Gao, Lu Jin, Wei Quan, Hongke Zhang
2023 J jnl
IEEE Commun. Surv. Tutorials
Wei Quan, Ziheng Xu, Mingyuan Liu, Nan Cheng, Gang Liu, Deyun Gao, Hongke Zhang, Xuemin Shen, Weihua Zhuang
2023 J jnl
Peer Peer Netw. Appl.
Zhe Tu, Huachun Zhou, Kun Li, Haoxiang Song, Wei Quan
2023 J jnl
IEEE Trans. Cogn. Commun. Netw.
Kang Liu, Wei Quan, Nan Cheng, Xue Zhang, Liang Guo, Deyun Gao, Hongke Zhang
2023 conf
VTC Fall
Longfei Ma, Nan Cheng, Xiucheng Wang, Zhisheng Yin, Haibo Zhou, Wei Quan
2023 J jnl
CoRR
Longfei Ma, Nan Cheng, Xiucheng Wang, Zhisheng Yin, Haibo Zhou, Wei Quan
2023 B conf
GLOBECOM
Ziheng Xu, Wei Quan, Mingyuan Liu, Nan Cheng, Xue Zhang, Kang Liu, Deyun Gao
2023 B conf
GLOBECOM
Yikun Li, Ying Liu, Weiting Zhang, Ping Dong, Wei Quan
2023 J jnl
CoRR
Hao Yang, Nan Cheng, Ruijin Sun, Wei Quan, Rong Chai, Khalid Aldubaikhy, Abdullah M. Alqasir, Xuemin Shen
2023 B conf
GLOBECOM
Yao Wen, Ruijin Sun, Nan Cheng, Haibo Zhou, Wei Quan, Yilong Hui, Yuchuan Fu, Changle Li
2023 conf
ICCC Workshops
Tong Luo, Fangqi Shi, Xue Zhang, Kang Liu, Mingyuan Liu, Wei Quan, Deyun Gao
2023 B conf
GLOBECOM
Ziheng Xu, Wei Quan, Nan Cheng, Mingyuan Liu, Jun Deng, Lei Han, Deyun Gao
2023 J jnl
IEEE Trans. Veh. Technol.
Kang Liu, Wei Quan, Nan Cheng, Wen Wu, Ziheng Xu, Liang Guo, Deyun Gao, Hongke Zhang
2023 B conf
PIMRC
Xiucheng Wang, Nan Chen, Lianhao Fu, Wei Quan, Ruijin Sun, Yilong Hui, Tom H. Luan, Xuemin Sherman Shen
2023 J jnl
CoRR
Xiucheng Wang, Nan Cheng, Lianhao Fu, Wei Quan, Ruijin Sun, Yilong Hui, Tom H. Luan, Xuemin Shen
2023 B conf
GLOBECOM
Xue Zhang, Wei Quan, Nan Cheng, Yan Luo, Ziheng Xu, Lei Han, Hongke Zhang
2022 conf
ICC
Mingyuan Liu, Wei Quan, Zhiruo Liu, Yuan Zhang, Deyun Gao, Hongke Zhang
2022 J jnl
IEEE Trans. Veh. Technol.
Wei Quan, Mingyuan Liu, Nan Cheng, Xue Zhang, Deyun Gao, Hongke Zhang
2022 conf
INFOCOM Workshops
Chengxiao Yu, Wei Quan, Kang Liu, Mingyuan Liu, Ziheng Xu, Hongke Zhang
2022 J jnl
Peer-to-Peer Netw. Appl.
Chengxiao Yu, Wei Quan, Kang Liu, Mingyuan Liu, Ziheng Xu, Hongke Zhang
2022 J jnl
Remote. Sens.
Xiucheng Wang, Lianhao Fu, Nan Chen, Ruijin Sun, Tom H. Luan, Wei Quan, Khalid Aldubaikhy
2022 conf
ICCCS
Yiran Xiao, Wei Quan, Huachun Zhou, Mingyuan Liu, Kang Liu
2022 conf
ICC
Kang Liu, Wei Quan, Nan Cheng, Ziheng Xu, Jun Deng, Deyun Gao
2022 C conf
HPSR
Xinqiao Li, Mingyuan Liu, Nan Cheng, Kang Liu, Wei Quan, Liang Guo, Yajuan Qin
2021 J jnl
IEEE Trans. Veh. Technol.
Weiting Zhang, Dong Yang, Haixia Peng, Wen Wu, Wei Quan, Hongke Zhang, Xuemin Shen
2021 conf
VTC Fall
Mingyuan Liu, Wei Quan, Chengxiao Yu, Xue Zhang, Deyun Gao
2021 J jnl
IEEE Internet Things J.
Chengxiao Yu, Wei Quan, Deyun Gao, Yuming Zhang, Kang Liu, Wen Wu, Hongke Zhang, Xuemin Shen
2021 J jnl
IEEE Internet Things J.
Gang Liu, Wei Quan, Nan Cheng, Deyun Gao, Ning Lu, Hongke Zhang, Xuemin Shen
2020 J jnl
IEEE Wirel. Commun.
Nan Cheng, Wei Quan, Weisen Shi, Huaqing Wu, Qiang Ye, Haibo Zhou, Weihua Zhuang, Xuemin Sherman Shen, Bo Bai
2020 J jnl
IEEE Syst. J.
Kai Wang, Dongchao Guo, Wei Quan
2020 J jnl
IEEE Access
Yuming Zhang, Bohao Feng, Wei Quan, Aleteng Tian, Keshav Sood, Youfang Lin, Hongke Zhang
2020 conf
ICC Workshops
Lu Jin, Wei Quan, Gang Liu, Deyun Gao, Chuan Heng Foh, Qianpeng Wang
2020 B conf
GLOBECOM
Weiting Zhang, Dong Yang, Haixia Peng, Wen Wu, Wei Quan, Hongke Zhang, Xuemin Sherman Shen
2020 conf
VTC Fall
Fucong Yang, Wei Quan, Nan Cheng, Ziheng Xu, Xue Zhang, Deyun Gao
2020 J jnl
IEEE Access
Jinyu Shi, Wei Quan, Deyun Gao, Mingyuan Liu, Gang Liu, Chengxiao Yu, Wei Su
2020 J jnl
IEEE Access
Chi-Yuan Chen, Wei Quan, Nan Cheng, Shui Yu, Jong-Hyouk Lee, Gregorio Martínez Pérez, Hongke Zhang, Shiuhpyng Shieh
2020 J jnl
Comput. Secur.
Jiaqing Dong, Kai Wang, Wei Quan, Hao Yin
2020 conf
ICC
Yue Zhao, Zan Li, Nan Cheng, Danyang Wang, Wei Quan, Xuemin Sherman Shen
2020 J jnl
IEEE Internet Things J.
Mingchuan Zhang, Yangfan Zhou, Wei Quan, Junlong Zhu, Ruijuan Zheng, Qingtao Wu
2020 conf
INFOCOM Workshops
Gang Liu, Wei Quan, Nan Cheng, Ning Lu, Hongke Zhang, Xuemin Shen
2020 conf
VTC Fall
Du Chen, Deyun Gao, Wei Quan, Qianpeng Wang, Gang Liu, Hongke Zhang
2020 J jnl
IEEE Netw.
Jiayin Chen, Qiang Ye, Wei Quan, Si Yan, Phu Thinh Do, Weihua Zhuang, Xuemin Sherman Shen, Xu Li, Jaya Rao
2020 J jnl
IEEE Trans. Cogn. Commun. Netw.
Jiayin Chen, Qiang Ye, Wei Quan, Si Yan, Phu Thinh Do, Peng Yang, Weihua Zhuang, Xuemin Shen, Xu Li, Jaya Rao
2020 J jnl
IEEE Wirel. Commun. Lett.
Gang Liu, Wei Quan, Nan Cheng, Hongke Zhang, Xuemin Shen
2019 C conf
ICCC
Ying Liu, Ting Zhi, Haidong Xi, Wei Quan, Hongke Zhang
2019 J jnl
IEEE Wirel. Commun. Lett.
Wei Quan, Nan Cheng, Meng Qin, Hongke Zhang, H. Anthony Chan, Xuemin Shen
2019 conf
ICC
Jiayin Chen, Si Yan, Qiang Ye, Wei Quan, Phu Thinh Do, Weihua Zhuang, Xuemin Sherman Shen, Xu Li, Jaya Rao
2019 J jnl
CoRR
Jiayin Chen, Si Yan, Qiang Ye, Wei Quan, Phu Thinh Do, Weihua Zhuang, Xuemin Shen, Xu Li, Jaya Rao
2019 J jnl
ACM Trans. Internet Techn.
Kai Wang, Wei Quan, Nan Cheng, Mingyuan Liu, Yu Liu, H. Anthony Chan
2019 C conf
ICCC
Chengxiao Yu, Wei Quan, Nan Cheng, Shihua Chen, Hongke Zhang
2019 J jnl
J. Netw. Comput. Appl.
Gang Liu, Wei Quan, Nan Cheng, Hongke Zhang, Shui Yu
2019 J jnl
Int. J. Digit. Multim. Broadcast.
Yuanlong Cao, Yuming Fang, Jiyan Wu, Wei Quan, Kai Wang
2019 J jnl
IEEE J. Sel. Areas Commun.
Xiongwen Cheng, Feng Lyu, Wei Quan, Conghao Zhou, Hongli He, Weisen Shi, Xuemin Shen
2019 J jnl
IEEE Internet Things J.
Yuming Zhang, Bohao Feng, Wei Quan, Guanglei Li, Huachun Zhou, Hongke Zhang
2018 J jnl
Internet Technol. Lett.
Gang Liu, Wei Quan, Nan Cheng, Kai Wang, Hongke Zhang
2018 J jnl
IEEE J. Sel. Areas Commun.
Shan Zhang, Wei Quan, Junling Li, Weisen Shi, Peng Yang, Xuemin Shen
2018 J jnl
CoRR
Shan Zhang, Wei Quan, Junling Li, Weisen Shi, Peng Yang, Xuemin Shen
2018 B conf
GLOBECOM
Gang Liu, Wei Quan, Nan Cheng, Bohao Feng, Hongke Zhang, Xuemin Sherman Shen
2018 J jnl
IEEE Internet Things J.
Yang Liu, Wei Quan, Tian Wang, Yu Wang
2018 J jnl
IEEE Netw.
Kai Wang, Hao Yin, Wei Quan, Geyong Min
2018 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Changqiao Xu, Wei Quan, Hongke Zhang, Luigi Alfredo Grieco
2018 conf
VTC Spring
Zhaoxu Wang, Huachun Zhou, Bohao Feng, Wei Quan
2018 conf
SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI
Zhaoxu Wang, Huachun Zhou, Bohao Feng, Wei Quan, Shui Yu
2018 J jnl
Wirel. Commun. Mob. Comput.
Wei Quan, Kai Wang, Yana Liu, Nan Cheng, Hongke Zhang, Xuemin (Sherman) Shen
2018 A* conf
MobiCom
Wei Quan, Nan Cheng, Peipei Jing, Gang Liu, Xuemin (Sherman) Shen
2017 J jnl
IEEE Commun. Mag.
Wei Quan, Yana Liu, Hongke Zhang, Shui Yu
2017 J jnl
Mob. Inf. Syst.
Guanwen Li, Huachun Zhou, Bohao Feng, Guanglei Li, Taixin Li, Qi Xu, Wei Quan
2017 B conf
GLOBECOM
Haifeng Li, Huachun Zhou, Wei Quan, Bohao Feng, Hongke Zhang, Shui Yu
2017 C conf
CollaborateCom
Yana Liu, Wei Quan, Jinjie Zeng, Gang Liu, Hongke Zhang
2017 J jnl
Comput. Commun.
Changqiao Xu, Wei Quan, Athanasios V. Vasilakos, Hongke Zhang, Gabriel-Miro Muntean
2017 conf
ICC
Taixin Li, Huachun Zhou, Hongbin Luo, Wei Quan, Shui Yu
2017 conf
ICC
Chengxiao Yu, Wei Quan, Shui Yu, Hongke Zhang
2017 conf
INFOCOM Workshops
Taixin Li, Huachun Zhou, Hongbin Luo, Wei Quan, Qi Xu, Guanwen Li, Guanglei Li
2016 conf
INFOCOM Workshops
Fei Song, Wei Quan, Huifeng Yang, Wei Zhao, Hongke Zhang
2016 J jnl
EURASIP J. Wirel. Commun. Netw.
Wei Quan, Yana Liu, Xiaoxiao Jiang, Jianfeng Guan
2016 J jnl
IEEE Trans. Veh. Technol.
Hongke Zhang, Wei Quan, Jiayang Song, Zhongbai Jiang, Shui Yu
2016 conf
VTC Spring
Jiayang Song, Huachun Zhou, Wei Quan, Tao Zheng, Ping Dong
2016 J jnl
EURASIP J. Wirel. Commun. Netw.
Jiayang Song, Huachun Zhou, Wei Quan, Tao Zheng, Ping Dong
2016 conf
MIST@CCS
Fei Song, Wei Quan, Tianming Zhao, Hongke Zhang, Ziwei Hu, Ilsun You
2016 book
Hongke Zhang, Wei Su, Wei Quan
2016 J jnl
IEEE Netw.
Hongke Zhang, Wei Quan, Han-Chieh Chao, Chunming Qiao
2015 Misc conf
ITNAC
Zhongbai Jiang, Wei Quan, Jianfeng Guan, Hongke Zhang
2015 Misc conf
ITNAC
Wei Quan, Zhongbai Jiang, Fei Song, Mingchuan Zhang, Hongke Zhang
2015 conf
INFOCOM Workshops
Wei Quan, Jianfeng Guan, Zhongbai Jiang, Hongke Zhang
2015 Misc conf
ITNAC
Bingjie Han, Jianfeng Guan, Wei Quan, Changqiao Xu
2015 J jnl
IEEE Wirel. Commun.
Hongke Zhang, Ping Dong, Wei Quan, Bin Hu
2014 B conf
TrustCom
Yuanlong Cao, Jianfeng Guan, Changqiao Xu, Wei Quan, Hongke Zhang
2014 conf
CCIS
Meng Zhang, Jianfeng Guan, Wei Quan, Changqiao Xu, Hongke Zhang
2014 J jnl
Comput. Syst. Sci. Eng.
Jianfeng Guan, Wei Quan, Lili Wang, Changqiao Xu, Feilong Tang, Hongke Zhang
2014 J jnl
IEEE Commun. Lett.
Wei Quan, Changqiao Xu, Jianfeng Guan, Hongke Zhang, Luigi Alfredo Grieco
2014 C conf
WoWMoM
Wei Quan, Changqiao Xu, Jianfeng Guan, Hongke Zhang, Luigi Alfredo Grieco
2014 B conf
Networking
Wei Quan, Changqiao Xu, Athanasios V. Vasilakos, Jianfeng Guan, Hongke Zhang, Luigi Alfredo Grieco
2014 conf
CCIS
Jianfeng Guan, Wei Quan, Changqiao Xu, Hongke Zhang
2013 conf
VTC Fall
Yuanlong Cao, Changqiao Xu, Jianfeng Guan, Wei Quan, Jia Zhao, Hongke Zhang
2013 B conf
WCNC
Wei Quan, Jianfeng Guan, Changqiao Xu, Shijie Jia, Junlong Zhu, Hongke Zhang
2013 conf
IMIS
Jianfeng Guan, Wei Quan, Changqiao Xu, Hongke Zhang
2013 conf
ICCT
Chaogui Zhang, Wei Quan, Yu Dai, Jianfeng Guan, Changqiao Xu, Hongke Zhang
2012 conf
GLOBECOM Workshops
Wei Quan, Jianfeng Guan, Shijie Jia, Junlong Zhu, Changqiao Xu, Hongke Zhang
2012 conf
CCIS
Wei Quan, Jianfeng Guan, Yuanlong Cao, Changqiao Xu, Hongke Zhang
2012 conf
CCIS
Yu Dai, Jianfeng Guan, Wei Quan, Changqiao Xu, Hongke Zhang
2012 conf
CCIS
Jianfeng Guan, Changqiao Xu, Wei Quan, Hongke Zhang
2012 conf
CCIS
Jianfeng Guan, Wei Quan, Changqiao Xu, Hongke Zhang
2012 conf
GLOBECOM Workshops
Jianfeng Guan, Wei Quan, Changqiao Xu, Huachun Zhou, Hongke Zhang
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 []