Wei Jian

30 papers C 1Misc 1Journal 11Unranked 17
YearRankTypeTitle / Venue / Authors
2025 J jnl
Int. J. Comput. Sci. Math.
Qi Sun, Huihui Gao, Yonglong Yu, Wei Jian, Liuyan Jiang, Wanjiang Wang, Yikai Han, Renwang Li
2025 J jnl
Int. J. Comput. Sci. Math.
Wanjiang Wang, Feng Zhao, Mingjun Wang, Qi Sun, Huihui Gao, Wei Jian, Renwang Li, Shulan Luo
2024 J jnl
Int. J. Embed. Syst.
Jianbo Xu, Wei Jian, Hongbo Zhou, Wei Liang, Meng Yen Hsieh, Changxu Wan
2023 conf
CISP-BMEI
Wei Jian, Yuqi Zhang, Ke Hu
2023 J jnl
Int. J. Simul. Process. Model.
Lian-Jiang Wei, Wei Jian, Shun-Kai Lu, Baochuan Fu, Baoping Jiang, Xin Zhang
2022 conf
ChineseCSCW (2)
Yajing Li, Jianbo Xu, Guozheng Feng, Wei Jian
2022 conf
ICNSC
Shaopeng Jia, Xiong Chen, Wei Jian
2022 conf
HPCC/DSS/SmartCity/DependSys
Wei Jian, Jianbo Xu, Wei Liang, Kuan-Ching Li
2022 conf
AISS
Guozheng Feng, Jianbo Xu, Wei Jian, Zhang Liu
2020 conf
SmartCloud
Xiaohe Wu, Jianbo Xu, Weihong Huang, Wei Jian
2019 conf
RACS
Xincheng Huang, Wei Jian, Cheng Yang, Yiren Li, Yun Gao, Zhihu Wang
2017 J jnl
Wirel. Pers. Commun.
Siming Peng, Zhi-Gang Yuan, Jun You, Yuehong Shen, Wei Jian
2017 J jnl
Circuits Syst. Signal Process.
Qiao Su, Yuehong Shen, Wei Jian, Pengcheng Xu, Wei Zhao
2016 J jnl
Circuits Syst. Signal Process.
Wei Zhao, Yuehong Shen, Pengcheng Xu, Zhi-Gang Yuan, Yimin Wei, Wei Jian
2015 J jnl
Circuits Syst. Signal Process.
Wei Zhao, Yuehong Shen, Zhi-Gang Yuan, Dawei Liu, Pengcheng Xu, Yimin Wei, Wei Jian, Nan Sha
2015 J jnl
Circuits Syst. Signal Process.
Pengcheng Xu, Yuehong Shen, Wei Jian, Wei Zhao, Cheng Peng
2015 conf
WCSP
Siming Peng, Zhi-Gang Yuan, Yuehong Shen, Wei Jian
2015 Misc conf
ISKE
Yunlan Wang, Yan Zhang, Tianhai Zhao, Jianhua Gu, Lu Li, Wei Jian
2015 J jnl
J. Sensors
Pengcheng Xu, Zhi-Gang Yuan, Wei Jian, Wei Zhao
2014 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Nan Sha, Yuanyuan Gao, Xiaoxin Yi, Wei Jian, Weiwei Yang
2013 conf
WCSP
Siming Peng, Yuehong Shen, Zhi-Gang Yuan, Wei Jian
2013 conf
MSN
Tao Zhang, Jinliang Zhang, Xuehuan Jiang, Wei Jian
2012 conf
UKSim
Wei Jian, Xuehuan Jiang, Jinliang Zhang, Zhengtao Xiang, Yubing Jian
2011 conf
UKSim
Wei Jian, Yufeng Chen, Weirong Jiang, Zhengtao Xiang, Yubing Jian
2009 conf
MSN
Yufeng Chen, Zhengtao Xiang, Wei Jian, Weirong Jiang
2005 C conf
ISI
Zhengtao Xiang, Yufeng Chen, Wei Jian, Fei Yan
2004 conf
SMC (5)
Wei Jian, Yuncan Xue, Jixin Qian
2004 conf
SMC (6)
Wei Jian, Yuncan Xue, Jixin Qian
2004 conf
SMC (5)
Wei Jian, Yuncan Xue, Hongbin Du
2004 conf
SMC (5)
Yuncan Xue, Hongbin Du, Wei Jian
redb/extractors/apk_extractor.py
← Index redb/extractors/apk_extractor.py python
import logging
import zipfile
from abc import ABCMeta, abstractmethod

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


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

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        known_benign=False,
        known_malicious=False,
        apk=None,
    ):
        # Read binary data before calling super().__init__ so that the
        # binary property override is available during hash computation.
        with open(filepath, "rb") as f:
            self._binary_data = f.read()

        self.apk = apk if apk else self._generate_apk_object(filepath)

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

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

    def _generate_apk_object(self, filepath):
        """Parse APK using androguard."""
        apk = None
        try:
            # Suppress verbose androguard loguru DEBUG/INFO output
            from loguru import logger as loguru_logger
            loguru_logger.disable("androguard")
            from androguard.core.apk import APK
            apk = APK(filepath)
            if not apk.is_valid_APK():
                logger.warning(
                    f"APK validation warning for {filepath}"
                )
                # Still return the object — partial parsing may still work
        except Exception as e:
            logger.error(
                f"Format error parsing APK {filepath}: {e}"
            )
        return apk

    def _is_valid_apk(self):
        """Check if the APK object was parsed successfully."""
        return self.apk is not None

    def _get_zip_file(self):
        """Get a zipfile.ZipFile handle for direct archive inspection."""
        try:
            return zipfile.ZipFile(self.filepath, 'r')
        except (zipfile.BadZipFile, Exception) as e:
            self.log.error(f"Failed to open APK as ZIP: {e}")
            return None

    def _list_files(self):
        """List all files in the APK archive."""
        if not self._is_valid_apk():
            return []
        try:
            return self.apk.get_files()
        except Exception as e:
            self.log.error(f"Error listing APK files: {e}")
            return []