Weijing Song

29 papers B 2Journal 26Unranked 1
YearRankTypeTitle / Venue / Authors
2025 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Jiajun Chen, Runyu Fan, Hongyang Niu, Zijian Xu, Jining Yan, Weijing Song, Ruyi Feng
2025 J jnl
CoRR
Yongchuan Cui, Jinhe Zhang, Peng Liu, Weijing Song, Yi Zeng
2024 J jnl
ISPRS Int. J. Geo Inf.
Xinya Lei, Yuewei Wang, Wei Han, Weijing Song
2024 J jnl
Remote. Sens.
Jingwen Huang, Weijing Song, Tao Liu, Xiaoyu Cui, Jining Yan, Xiaoyu Wang
2023 J jnl
GeoInformatica
Xinya Lei, Weijing Song, Runyu Fan, Ruyi Feng, Lizhe Wang
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jining Yan, Lizhe Wang, Haixu He, Dong Liang, Weijing Song, Wei Han
2022 J jnl
IEEE Trans. Serv. Comput.
E. Chen, Bohan Qin, Yan Zhu, Weijing Song, Shengdian Wang, William Cheng-Chung Chu, Stephen S. Yau
2022 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Runyu Fan, Jun Li, Weijing Song, Wei Han, Jining Yan, Lizhe Wang
2021 B conf
SERVICES
E. Chen, Bohan Qin, Yan Zhu, Weijing Song, Shengdian Wang, William Cheng-Chung Chu, Stephen S. Yau
2021 J jnl
IEEE Trans. Reliab.
Yan Zhu, Weijing Song, Di Wang, Di Ma, William Cheng-Chung Chu
2020 J jnl
ISPRS Int. J. Geo Inf.
Runyu Fan, Lizhe Wang, Jining Yan, Weijing Song, Yingqian Zhu, Xiaodao Chen
2019 J jnl
KSII Trans. Internet Inf. Syst.
Chunming Wu, Meng Wang, Lang Gao, Weijing Song, Tian Tian, Kim-Kwang Raymond Choo
2019 J jnl
J. Supercomput.
Shasha Yue, Yan Ma, Lajiao Chen, Yuzhu Wang, Weijing Song
2019 conf
COMPSAC (2)
Yan Zhu, Yi Zhang, Jing Wang, Weijing Song, William Cheng-Chung Chu, Guowei Liu
2019 J jnl
Multim. Tools Appl.
Weijing Song, Lizhe Wang, Peng Liu, Kim-Kwang Raymond Choo
2019 J jnl
Clust. Comput.
Tao Yu, Le Li, Lajiao Chen, Weijing Song
2019 J jnl
Sensors
Weijing Song, Fudong Ge, YangQuan Chen
2018 J jnl
Soft Comput.
Lizhe Wang, Peng Liu, Weijing Song, Kim-Kwang Raymond Choo
2018 J jnl
Multim. Tools Appl.
Tian Tian, Lang Gao, Weijing Song, Kim-Kwang Raymond Choo, Jijun He
2017 J jnl
Multim. Tools Appl.
Tian Tian, Yun Zhang, Kim-Kwang Raymond Choo, Weijing Song
2017 J jnl
Future Gener. Comput. Syst.
Shengtao Sun, Weijing Song, Albert Y. Zomaya, Yang Xiang, Kim-Kwang Raymond Choo, Tejal Shah, Lizhe Wang
2017 J jnl
J. Supercomput.
Weijing Song, Ze Deng, Lizhe Wang, Bo Du, Peng Liu, Ke Lu
2017 J jnl
J. Comput. Syst. Sci.
Weijing Song, Lizhe Wang, Yang Xiang, Albert Y. Zomaya
2017 J jnl
Remote. Sens.
Jingbo Wei, Lizhe Wang, Peng Liu, Weijing Song
2016 J jnl
Clust. Comput.
Lizhe Wang, Weijing Song, Peng Liu
2016 J jnl
Int. J. Digit. Earth
Weijing Song, Peng Liu, Lizhe Wang
2015 J jnl
IEEE Syst. J.
Weijing Song, Lizhe Wang, Rajiv Ranjan, Joanna Kolodziej, Dan Chen
2013 J jnl
Concurr. Comput. Pract. Exp.
Wanfeng Zhang, Lizhe Wang, Dingsheng Liu, Weijing Song, Yan Ma, Peng Liu, Dan Chen
2011 B conf
ICPADS
Weijing Song, Shasha Yue, Lizhe Wang, Wanfeng Zhang, Dingsheng Liu
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 []