Xiaoguang Yang

135 papers B 4C 5Misc 3Journal 75Unranked 48
YearRankTypeTitle / Venue / Authors
2026 J jnl
Biomed. Signal Process. Control.
Jun Liu, Yaxin Xiong, Xiaoguang Yang, Jing Dai, Yunming Li
2026 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Xuebiao Li, Jiabao Li, Yujie Lu
2026 J jnl
IEEE Trans. Mob. Comput.
Yong Huang, Zhibo Dong, Xiaoguang Yang, Dalong Zhang, Qingxian Wang, Zhihua Wang
2025 J jnl
CoRR
Huatian Gong, Jiuh-Biing Sheu, Zheng Wang, Xiaoguang Yang, Ran Yan
2025 J jnl
Expert Syst. Appl.
Huatian Gong, Qing Peng, Linwei Liu, Xiaoguang Yang
2025 J jnl
Comput. Aided Civ. Infrastructure Eng.
Jichen Zhu, Chengyuan Ma, Yuqi Shi, Yanqing Yang, Yuzheng Guo, Xiaoguang Yang
2025 B conf
CogSci
Chengzhang Li, Sijin Liu, Meng Wang, Zhen Zhang, Jintao Lai, Xiaoguang Yang
2025 J jnl
CoRR
Huatian Gong, Jiuh-Biing Sheu, Zheng Wang, Xiaoguang Yang, Ran Yan
2025 conf
OFC
Zhifeng Xie, Bingchang Hua, Yuancheng Cai, Xiaoguang Yang, Weidong Tong, Zhigang Xin, Junjie Ding, Jiao Zhang, Mingzheng Lei, Yucong Zou, Xingyu Chen, Min Zhu, Jianjun Yu
2025 J jnl
CoRR
Shengyuan Huang, Xiaoguang Yang, Yifen Mu, Wenjun Mei
2025 J jnl
IEEE Internet Things J.
Jichen Zhu, Haoran Wang, Heye Huang, Xiaoguang Yang, Chaopeng Tan, Jia Hu
2025 conf
ITSC
Zhonggen Zhang, Jichen Zhu, Xiaoguang Yang, Kejun Long
2025 J jnl
CoRR
Shengyuan Huang, Xiaoguang Yang, Zhigang Cao, Wenjun Mei
2025 J jnl
CoRR
Shengyuan Huang, Wenjun Mei, Xiaoguang Yang, Zhigang Cao
2025 J jnl
CoRR
Yong Huang, Zhibo Dong, Xiaoguang Yang, Dalong Zhang, Qingxian Wang, Zhihua Wang
2024 C conf
IV
Jichen Zhu, Xiaoguang Yang, Yanqing Yang, Haoran Wang, Jinhao Liang, Zhenwu Fang
2024 conf
COCOA (2)
Chunying Ren, Zijun Wu, Xiaoguang Yang, Guoqing Zhang
2024 J jnl
IEEE Intell. Transp. Syst. Mag.
Cheng Zhang, Wei Ma, Jing Zhao, Chengyuan Ma, Yuelong Su, Xiaoguang Yang
2024 conf
ICIC (10)
Xiaoguang Yang, Yong Huang, Junli Guo, Dalong Zhang, Qingxian Wang
2024 J jnl
CoRR
Xiaoguang Yang, Yong Huang, Junli Guo, Dalong Zhang, Qingxian Wang
2024 J jnl
J. Syst. Sci. Complex.
Kai Xing, Shang Li, Xiaoguang Yang
2024 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Guoen Ding, Tianjun Cao, Jiabao Li
2024 conf
ICCT
Jiankang Li, Yuancheng Cai, Xiaoguang Yang, Bingchang Hua, Mingzheng Lei, Jiao Zhang, Junjie Ding, Xingyu Chen, Yucong Zou, Xiang Liu, Yunwu Wang, Min Zhu
2024 J jnl
Comput. Ind. Eng.
Zhi Liu, Mingdong Wan, Xiaoguang Yang, Xiaoxue Zheng, Ching-Ter Chang
2024 J jnl
Comput. Electr. Eng.
Yuqi Shi, Cheng Zhang, Linan Zhang, Xiaoguang Yang
2024 J jnl
Math. Comput. Simul.
Po Hu, Hongbin Ma, Xiaoguang Yang, Yifen Mu
2024 conf
CDC
Xinxiang Guo, Yifen Mu, Xiaoguang Yang
2024 conf
ITSC
Xiaoxue Sun, Zishen Guo, Sijin Liu, Jintao Lai, Zhen Zhang, Xiaoguang Yang
2023 conf
ITSC
Zhexi Lian, Jia Hu, Zhen Zhang, Xiaoguang Yang, Jintao Lai
2023 J jnl
IEEE Trans. Intell. Transp. Syst.
Nan Zhang, Xiaoguang Yang, Haifeng Guo, Hongzhao Dong, Wanjing Ma
2023 J jnl
Int. J. Game Theory
Dong Liang, Yunlong Wang, Zhigang Cao, Xiaoguang Yang
2023 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Xiaobing Zhao, Jietao Liu
2023 J jnl
J. Intell. Transp. Syst.
Keke Long, Zhibo Gao, Zehao Jiang, Chengyuan Ma, Jia Hu, Xiaoguang Yang
2023 J jnl
Comput. Aided Civ. Infrastructure Eng.
Chengyuan Ma, Chunhui Yu, Cheng Zhang, Xiaoguang Yang
2022 J jnl
Soft Comput.
Yuxiang Cheng, Jiayu Yi, Xiaoguang Yang, Kin Keung Lai, Luis Seco
2022 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Zhe Jia, Dexin Wang, Xiaobing Zhao, Yukui Su, Baoxin Nie
2022 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Dexin Wang, Zhe Jia, Yukui Su, Xiaobing Zhao, Baoxin Nie
2022 J jnl
Int. J. Circuit Theory Appl.
Xiaoguang Yang, Zhe Jia, Dexin Wang, Baoxin Nie, Xiaobing Zhao, Yukui Su
2022 J jnl
IEEE Trans. Intell. Transp. Syst.
Hui Jin, Haiming Hao, Xiaoguang Yang
2022 conf
ITSC
Zhen Zhang, Jintao Lai, Xiaoguang Yang
2022 J jnl
J. Intell. Transp. Syst.
Jiawen Wang, Xiaozheng He, Srinivas Peeta, Xiaoguang Yang
2022 J jnl
IEEE Trans. Intell. Transp. Syst.
Cheng Zhang, Bi Yu Chen, William H. K. Lam, H. W. Ho, Xiaomeng Shi, Xiaoguang Yang, Wei Ma, Sze Chun Wong, Andy H. F. Chow
2022 J jnl
CoRR
Chunying Ren, Zijun Wu, Dachuan Xu, Xiaoguang Yang
2021 J jnl
J. Syst. Sci. Complex.
Chen Fei, Weiyin Fei, Fanhong Zhang, Xiaoguang Yang
2021 J jnl
Comput. Electron. Agric.
Manyao Li, Jin Zhao, Xiaoguang Yang
2021 C conf
COCOA
Yijing Wang, Yicheng Xu, Xiaoguang Yang
2021 J jnl
Appl. Intell.
Ripeng Huang, Shaojian Qu, Xiaoguang Yang, Fengmin Xu, Zeshui Xu, Wei Zhou
2021 J jnl
CoRR
Chengyuan Ma, Chunhui Yu, Xiaoguang Yang
2020 J jnl
IEEE Trans. Intell. Transp. Syst.
Zhihong Yao, Luou Shen, Ronghui Liu, Yangsheng Jiang, Xiaoguang Yang
2020 C conf
IV
Jintao Lai, Jia Hu, Zheng Chen, Lian Cui, Xiaoguang Yang
2020 J jnl
IEEE Trans. Veh. Technol.
Xiaoguang Yang, Ligen Xi, Zheng Gao, Yuqi Li, Jing Wen
2020 J jnl
IEEE Access
Kejun Long, Junjun Wei, Jian Gu, Xiaoguang Yang
2020 J jnl
IEEE Access
Keke Long, Chengyuan Ma, Zehao Jiang, Yizhe Wang, Xiaoguang Yang
2020 conf
ITSC
Chengyuan Ma, Chunhui Yu, Jintao Lai, Xiaoguang Yang
2018 J jnl
CoRR
Yingli Wang, Qingpeng Zhang, Xiaoguang Yang
2018 conf
HICSS
Yun Wan, Xiaoguang Yang
2018 conf
ITSC
Cheng Zhang, Linan Zhang, Yangdong Liu, Xiaoguang Yang
2018 J jnl
CoRR
Yingli Wang, Xiangyin Chen, Xiaoguang Yang, Qingpeng Zhang
2017 J jnl
Sensors
Daniel Garcia-Pozuelo, Oluremi Olatunbosun, Jorge Yunta, Xiaoguang Yang, Vicente Díaz
2017 J jnl
Sensors
Daniel Garcia-Pozuelo, Jorge Yunta, Oluremi Olatunbosun, Xiaoguang Yang, Vicente Díaz
2017 J jnl
J. Syst. Sci. Complex.
Die Wan, Xianhua Wei, Xiaoguang Yang
2017 J jnl
J. Comput. Civ. Eng.
Minghua Zeng, Kejun Long, Lee D. Han, Xiaoguang Yang
2017 J jnl
Clust. Comput.
Jinhong Xu, Xiaoguang Yang
2017 J jnl
Comput. Aided Civ. Infrastructure Eng.
Chunhui Yu, Wanjing Ma, Hong K. Lo, Xiaoguang Yang
2017 conf
ITSC
Yangdong Liu, Yizhe Wang, Xiaoguang Yang, Linan Zhang
2016 conf
ITSC
Yizhe Wang, Zhizhou Wu, Yangdong Liu, Xiaoguang Yang, Guishan Tan
2016 J jnl
Int. J. Secur. Softw. Eng.
Oluwasefunmi 'Tale Arogundade, Olusola John Adeniran, Zhi Jin, Xiaoguang Yang
2015 conf
ICIA
Zhi Yang, Pengbin Duan, Zhonghua Li, Xiaoguang Yang
2014 conf
ITSC
Xiaoguang Yang, Linan Zhang
2014 conf
ITSC
Huadong Tan, Xiaoguang Yang
2014 conf
ITSC
Yanxi Hao, Yinsong Wang, Xiaoguang Yang
2014 conf
ITSC
Tao Wang, Xiaoguang Yang, Wei Wei, Wencong Tong, Lei Yang
2014 conf
ITSC
Hui Jin, Xiaoguang Yang
2014 conf
ITQM
Haizhen Yang, Suxiao Li, Yanyi Ye, Xiaoguang Yang
2014 J jnl
J. Syst. Sci. Complex.
Jun Li, Liang Pan, Muzi Chen, Xiaoguang Yang
2014 conf
ITSC
Xinkai Jiang, Xiaoguang Yang
2014 J jnl
Int. J. Inf. Comput. Secur.
Oluwasefunmi 'Tale Arogundade, Zhi Jin, Xiaoguang Yang
2014 conf
ITSC
Xiaoguang Yang, Yinsong Wang, Wei Yin
2013 J jnl
J. Intell. Transp. Syst.
Wanjing Ma, Yue Liu, Xiaoguang Yang
2013 conf
ITSC
Guojun Chen, Luoyi Huang, Haode Liu, Xiaoguang Yang
2013 conf
ITSC
Guojun Chen, Xiaoguang Yang, Haode Liu, Xianglong Liu
2013 C conf
ISADS
Yuqian Shi, Xiaoguang Yang
2012 conf
BIFE
Fenghua Wen, Jinli Xiao, Zhifeng Liu, Zhifeng Dai, Xiaoguang Yang
2012 J jnl
Inf. Secur. J. A Glob. Perspect.
Oluwasefunmi 'Tale Arogundade, A. T. Akinwale, Zhi Jin, Xiaoguang Yang
2011 J jnl
Int. J. Inf. Secur. Priv.
Oluwasefunmi 'Tale Arogundade, A. T. Akinwale, Zhi Jin, Xiaoguang Yang
2011 conf
SSIRI (Companion)
Oluwasefunmi 'Tale Arogundade, Zhi Jin, Xiaoguang Yang
2010 B conf
SMC
Xiaoguang Yang, Jianhua Cheng
2010 conf
Geoinformatics
Yi Zhang, Xiaoguang Yang, Meiping Yun, Xuemei Zhou
2009 conf
ITSC
Tong Zhu, Jian Xu, Yu Bai, Xiaoguang Yang
2009 J jnl
Int. J. Inf. Technol. Decis. Mak.
Xun Zhang, Guihuan Zheng, Wei Shang, Shanying Xu, Xiaoguang Yang, Kin Keung Lai, Shouyang Wang
2009 conf
CSO (1)
Xiaoli Sun, Jiawei Zhang, Yanmin Shao, Xiaoguang Yang
2009 conf
CSO (2)
Jing Teng, Xiaoguang Yang, Xuan Li, Ming Zhao
2009 J jnl
Adv. Decis. Sci.
Yue Tang, Hao Chen, Bo Wang, Muzi Chen, Min Chen, Xiaoguang Yang
2009 conf
ITSC
Jian An, Haode Liu, Xiaoguang Yang, Jing Teng
2009 conf
JCAI
Shoupeng Tang, Nan Jiang, Meiping Yun, Xiaoguang Yang
2009 conf
FSKD (4)
Long Cai, Xiaochuan Ma, Chengpeng Hao, Xiaoguang Yang
2009 J jnl
J. Syst. Sci. Complex.
Fenghua Wen, Xiaoguang Yang
2009 conf
ITSC
Ying-Ying Ma, Yi-Chang Chiu, Xiaoguang Yang
2008 conf
ITSC
Wanjing Ma, Xiaoguang Yang
2008 J jnl
Int. J. Inf. Technol. Decis. Mak.
Belinna Bai, Jerome Yen, Xiaoguang Yang
2008 J jnl
J. Syst. Sci. Complex.
Xiaoguang Yang, Jianzhong Zhang
2008 J jnl
IEEE Trans. Autom. Control.
Peiyong Liu, Qingling Zhang, Xiaoguang Yang, Li Yang
2008 J jnl
J. Syst. Sci. Complex.
Zhi Jin, Xiaoguang Yang, Hanqin Zhang
2008 conf
ICNC (5)
Haifeng Lu, Zhaoxiang Deng, Xiaoguang Yang
2008 J jnl
Eur. J. Oper. Res.
Mao-cheng Cai, C. W. Duin, Xiaoguang Yang, Jianzhong Zhang
2008 B conf
FUZZ-IEEE
Xinwang Liu, Xiaoguang Yang, Yong Fang
2007 conf
ITSC
Juan Chen, Lihong Xu, Xiaoguang Yang, Changliang Yuan
2007 conf
ITSC
Wanjing Ma, Xiaoguang Yang
2007 conf
ITSC
Hao Chu, Xiaoguang Yang
2007 J jnl
IEEE Trans. Instrum. Meas.
Valentina Cecchi, Xiaoguang Yang, Karen Nan Miu, Chika O. Nwankpa
2007 J jnl
Comput. Optim. Appl.
Xiaoguang Yang, Jianzhong Zhang
2007 conf
ITSC
Xiaoguang Yang, Zhen Wu, Ying Li, Feng Shen
2007 conf
ITSC
Yu Bai, Kun Xue, Xiaoguang Yang
2007 conf
ITSC
Juan Chen, Lihong Xu, Xiaoguang Yang, Changliang Yuan
2007 J jnl
Oper. Res. Lett.
Xiaoguang Yang, Jianzhong Zhang
2007 conf
ITSC
Yunteng Lao, Xiaoguang Yang, Zhen Wu
2007 J jnl
J. Comb. Optim.
Xiaoguang Yang, Jianzhong Zhang
2007 conf
ICIC (2)
Xiaoguang Yang, Li Li, Qingling Zhang, Xiaodong Liu, Quanying Zhu
2006 J jnl
J. Glob. Optim.
Qin Wang, Xiaoguang Yang, Jianzhong Zhang
2006 C conf
ICARCV
Changliang Yuan, Xiaoguang Yang
2006 conf
ITSC
Xiaoguang Yang, Changliang Yuan, Feng Shen, Wanjing Ma
2006 conf
JCIS
Xiaoguang Yang, Fenghua Wen, Delong Huang, Qiujun Lan
2005 Misc conf
WSC
Sun Jian, Xiaoguang Yang, Yunlong Ma
2005 Misc conf
WSC
Zhizhou Wu, Jian Sun, Xiaoguang Yang
2005 Misc conf
COCOON
Xiaoguang Yang, Jianzhong Zhang
2004 J jnl
Comput. Optim. Appl.
Jianzhong Zhang, Xiaoguang Yang, Mao-cheng Cai
2004 J jnl
IEEE Trans. Intell. Transp. Syst.
Xiaoguang Yang, Xiugang Li, Kun Xue
2004 J jnl
Eur. J. Oper. Res.
Jianzhong Zhang, Xiaoguang Yang, Mao-cheng Cai
2004 J jnl
Oper. Res.
Janny May-Yee Leung, Guoqing Zhang, Xiaoguang Yang, Raymond Mak, Kokin Lam
2004 conf
SMC (1)
Harunori Shishido, Dao-Zhi Zeng, Xiaoguang Yang
2002 J jnl
Int. J. Found. Comput. Sci.
Xiaoguang Yang, Shuo Tao, Rongjun Liu, Mao-cheng Cai
2001 J jnl
RAIRO Oper. Res.
Xiaoguang Yang
1999 J jnl
J. Comb. Optim.
Mao-cheng Cai, Xiaoguang Yang, Yanjun Li
1999 B conf
ISAAC
Jianzhong Zhang, Xiaoguang Yang, Mao-cheng Cai
1999 J jnl
J. Glob. Optim.
Mao-cheng Cai, Xiaoguang Yang, Jianzhong Zhang
redb/extractors/macho_extractor.py
← Index redb/extractors/macho_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect
import sys
import os

import machofile

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


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

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        # Read binary and parse machofile BEFORE calling super().__init__
        # This avoids reading the file twice
        with open(filepath, "rb") as f:
            binary_data = f.read()

        # Parse machofile with binary data
        self.macho = macho if macho else self._generate_machofile_object(binary_data)

        # Extract hashes from machofile to pass to parent
        precomputed_hashes = None
        if self.macho:
            try:
                general_info = self.macho.get_general_info()
                if general_info:
                    # For FAT binaries, get_general_info() returns dict with 'fat' key
                    # For single-arch, it returns the info directly
                    if 'fat' in general_info:
                        fat_info = general_info['fat']
                        precomputed_hashes = {
                            'MD5': fat_info.get('MD5'),
                            'SHA1': fat_info.get('SHA1'),
                            'SHA256': fat_info.get('SHA256'),
                        }
                    else:
                        precomputed_hashes = {
                            'MD5': general_info.get('MD5'),
                            'SHA1': general_info.get('SHA1'),
                            'SHA256': general_info.get('SHA256'),
                        }
            except Exception as e:
                logger.debug(f"Could not get hashes from machofile: {e}")

        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            precomputed_hashes=precomputed_hashes,
        )

        # Store binary data so base class doesn't re-read
        self._binary_data = binary_data

    @property
    def binary(self):
        """Override to use already-read binary data."""
        return self._binary_data

    def _generate_machofile_object(self, binary_data):
        """Generate and parse a machofile object from binary data."""
        macho = None
        try:
            macho = machofile.UniversalMachO(data=binary_data)
            if not macho:
                raise Exception("Empty file?")

            # Parse the MachO object once during initialization
            macho.parse()

        except Exception as e:
            logger.error(f"Format error parsing MachO: {e}")
        return macho

    # def _is_macho_file(self):
    #     """Check if the file is a valid Mach-O binary."""
    #     try:
    #         if not self.macho:
    #             return False
            
    #         # For Universal/FAT binaries, check if any architecture is valid
    #         if hasattr(self.macho, 'is_fat') and self.macho.is_fat:
    #             return len(self.macho.architectures) > 0
    #         else:
    #             # Single architecture binary
    #             return hasattr(self.macho, 'macho') and self.macho.macho is not None
    #     except Exception as e:
    #         self.log.error(f"Error checking Mach-O file: {e}")
    #         return False

    def _is_signed(self):
        """Check if the Mach-O binary is code signed using new API."""
        try:
            if not self.macho:
                return False

            # Get architectures using new API
            architectures = self.macho.get_architectures()

            # For each architecture, check if signed
            for arch in architectures:
                try:
                    signature_info = self.macho.get_code_signature_info(arch=arch)
                    if signature_info and signature_info.get('signed', False):
                        return True
                except Exception:
                    continue

            return False
        except Exception as e:
            self.log.error(f"Error checking Mach-O signature: {e}")
            return False

    def _get_architectures(self):
        """Get list of architectures in the Mach-O binary using new API."""
        try:
            if not self.macho:
                return []

            # Use new API method
            architectures = self.macho.get_architectures()
            return architectures if architectures else []
        except Exception as e:
            self.log.error(f"Error getting architectures: {e}")
            return []

    # def _get_macho_for_arch(self, arch_name=None):
    #     """Get MachO instance for specific architecture or default."""
    #     try:
    #         if not self.macho:
    #             return None
            
    #         if hasattr(self.macho, 'is_fat') and self.macho.is_fat:
    #             if arch_name:
    #                 return self.macho.architectures.get(arch_name)
    #             else:
    #                 # Return first available architecture
    #                 return next(iter(self.macho.architectures.values())) if self.macho.architectures else None
    #         else:
    #             # Single architecture binary
    #             return self.macho.macho if hasattr(self.macho, 'macho') else None
    #     except Exception as e:
    #         self.log.error(f"Error getting MachO for architecture: {e}")
    #         return None

    # def _get_formatted_header_values(self, header):
    #     """Get both raw and human-readable header values."""
    #     try:
    #         macho_instance = self._get_macho_for_arch()
    #         if not macho_instance:
    #             return None
            
    #         # Parse the MachO if not already parsed
    #         if not hasattr(macho_instance, 'header') or not macho_instance.header:
    #             macho_instance.parse()
            
    #         # Get human-readable values using machofile's formatting methods
    #         magic_str = macho_instance.format_magic_value(header.get('magic', 0))
            
    #         # Simple CPU type mapping since CPU_TYPE_MAP is not exposed
    #         cputype = header.get('cputype', 0)
    #         if cputype == 0x7:
    #             cputype_str = "x86"
    #         elif cputype == 0x1000007:
    #             cputype_str = "x86_64"
    #         elif cputype == 0xC:
    #             cputype_str = "ARM"
    #         elif cputype == 0x100000C:
    #             cputype_str = "ARM 64-bit"
    #         else:
    #             cputype_str = str(cputype)
            
    #         cpusubtype_str = macho_instance.decode_cpusubtype(header.get('cputype', 0), header.get('cpusubtype', 0))
    #         filetype_str = macho_instance.format_file_type(header.get('filetype', 0))
    #         flags_str = macho_instance.decode_flags(header.get('flags', 0))
            
    #         return {
    #             'raw': {
    #                 'magic': header.get('magic', 0),
    #                 'cputype': header.get('cputype', 0),
    #                 'cpusubtype': header.get('cpusubtype', 0),
    #                 'filetype': header.get('filetype', 0),
    #                 'flags': header.get('flags', 0),
    #             },
    #             'formatted': {
    #                 'magic_str': magic_str,
    #                 'cputype_str': cputype_str,
    #                 'cpusubtype_str': cpusubtype_str,
    #                 'filetype_str': filetype_str,
    #                 'flags_str': flags_str,
    #             }
    #         }
    #     except Exception as e:
    #         self.log.error(f"Error formatting header values: {e}")
    #         return None