Weiguang Liu

30 papers A 1B 1C 3Journal 15Unranked 10
YearRankTypeTitle / Venue / Authors
2025 J jnl
Expert Syst. J. Knowl. Eng.
Weiguang Liu, Abdulmajeed Alqhatani, Fatima A. Asiri, Ely Salwana
2025 J jnl
Inf. Softw. Technol.
Weiguang Liu, Senlin Luo, Limin Pan, Zhao Zhang
2024 J jnl
IEEE Trans. Netw. Sci. Eng.
Alan Demétrius Baria Valejo, Paulo Eduardo Althoff, Thiago de Paulo Faleiros, Geraldo Pereira Rocha Filho, Yu-tao Zhu, Jianglong Yan, Weiguang Liu, Liang Zhao
2024 conf
CSAIDE
Jinzhong Xu, Yujie Zhang, Weiguang Liu
2024 J jnl
Sensors
Jing Ni, Kai Chen, Zhen Meng, Zuji Li, Ruizhi Li, Weiguang Liu
2024 J jnl
IEEE Trans. Instrum. Meas.
Ning Zhao, Mingcong Sun, Wendi Ma, Weiguang Liu, Huijun Jia
2023 J jnl
IEEE Trans. Parallel Distributed Syst.
Weiguang Liu, Jinhua Cui, Tiantian Li, Junwei Liu, Laurence T. Yang
2023 J jnl
IEEE Access
Miao Wang, Mengmeng Li, Zhenxi Fang, Jixun Gao, Weiguang Liu
2023 J jnl
J. Comput. Sci.
Jianglong Yan, Leandro Anghinoni, Yu-tao Zhu, Weiguang Liu, Gen Li, Qiusheng Zheng, Liang Zhao
2023 J jnl
IEEE Trans. Geosci. Remote. Sens.
Guoqing Zhou, Yi Tang, Wenxi Zhang, Weiguang Liu, Yue Jiang, Ertao Gao, Qiang Zhu, Yuhang Bai
2022 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Jinhua Cui, Weiguang Liu, Jianhang Huang, Laurence T. Yang
2022 J jnl
J. Intell. Syst.
Miao Wang, Zhenxi Fang, Weiguang Liu, Xiaotong Wang, Xiaodong Liu, Songyang Li
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Guoqing Zhou, Weiguang Liu, Qiang Zhu, Yanling Lu, Yu Liu
2021 conf
COMPLEX NETWORKS
Weiguang Liu, Jianglong Yan, Yu-tao Zhu, Everson José de Freitas Pereira, Gen Li, Qiusheng Zheng, Liang Zhao
2021 conf
BRACIS (2)
Breno Nunes, Tiago Colliri, Marcelo de S. Lauretto, Weiguang Liu, Liang Zhao
2021 conf
COMPLEX NETWORKS
Jianglong Yan, Weiguang Liu, Yu-tao Zhu, Gen Li, Qiusheng Zheng, Liang Zhao
2021 conf
BRACIS (1)
Alan Demétrius Baria Valejo, Paulo Eduardo Althoff, Thiago de Paulo Faleiros, Maria Lígia Chuerubim, Jianglong Yan, Weiguang Liu, Liang Zhao
2021 C conf
IGARSS
Jiasheng Xu, Guoqing Zhou, Qiaobo Cao, Sikai Su, Zhou Tian, Weiguang Liu, Haocheng Hu, Xiang Zhou
2021 C conf
IGARSS
Weiguang Liu, Guoqing Zhou, Jiasheng Xu
2020 J jnl
IEEE Access
Fangfang Shan, Jizhao Liu, Xueyuan Wang, Weiguang Liu, Bing Zhou
2020 B conf
IJCNN
Tiago Colliri, Weiguang Liu, Liang Zhao
2020 conf
ACM Great Lakes Symposium on VLSI
Jinhua Cui, Weiguang Liu, Jianhang Huang, Laurence T. Yang
2020 J jnl
J. Syst. Archit.
Jinhua Cui, Youtao Zhang, Liang Shi, Chun Jason Xue, Jun Yang, Weiguang Liu, Laurence T. Yang
2020 A conf
ICCAD
Weiguang Liu, Jinhua Cui, Junwei Liu, Laurence T. Yang
2020 conf
CNCL
Xinxin Zhang, Xiaoming Liu, Guan Yang, Fangfang Li, Weiguang Liu
2017 conf
SmartCom
Mark Junjie Li, Weiguang Liu
2011 J jnl
EURASIP J. Adv. Signal Process.
Vijay Venkataraman, Guoliang Fan, Liangjiang Yu, Xin Zhang, Weiguang Liu, Joseph P. Havlicek
2011 conf
CVPR Workshops
Vijay Venkataraman, Guoliang Fan, Liangjiang Yu, Xin Zhang, Weiguang Liu, Joseph P. Havlicek
2010 C conf
CIS
Weiguang Liu, Hailing Lai
2003 conf
WAA
Weiguang Liu, Lihua Zhou
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 []