Neena Goveas

30 papers B 2C 4Misc 4Journal 5Unranked 15
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Kumar Paritosh, Shubhangi K. Gawali, Veeky Baths, Neena Goveas
2025 conf
MODELS-C
Pranjay Yelkotwar, Rohit Raj, Aryan Pingle, Prasad Talasila, Neena Goveas
2025 conf
ECMR
Pranav Saxena, Nishant Raghuvanshi, Neena Goveas
2025 J jnl
CoRR
Pranav Saxena, Nishant Raghuvanshi, Neena Goveas
2024 C conf
HealthCom
Farha Masroor, Adarsh Gopalakrishnan, Neena Goveas
2024 B conf
WCNC
Farha Masroor, Adarsh Gopalakrishnan, Neena Goveas
2024 C conf
SECRYPT
Farha Masroor, Adarsh Gopalakrishnan, Neena Goveas
2024 conf
CCNC
Farha Masroor, Rishab Khanna, Neena Goveas
2024 conf
AAAI Spring Symposia
Brian Plancher, Sebastian Büttrich, Jeremy Ellis, Neena Goveas, Laila D. Kazimierski, Jesús Alfonso López Sotelo, Milan Lukic, Diego Mendez, Rosdiadee Nordin, Andrés Oliva Trevisan, Massimo Pavan, Manuel Roveri, Marcus Rüb, Jackline Tum, Marian Verhelst, Salah Abdeljabar, Segun Adebayo, Thomas Amberg, Halleluyah Oluwatobi Aworinde, José Bagur, Gregg Barrett, Nabil Benamar, Bharat S. Chaudhari, Ronald Criollo, David Cuartielles, José A. Ferreira Filho, Solomon Gizaw, Evgeni Gousev, Alessandro Grande, Shawn Hymel, Peter Ing, Prashant Manandhar, Pietro Manzoni, Boris Murmann, Eric Pan, Rytis Paskauskas, Ermanno Pietrosemoli, Tales C. Pimenta, Marcelo Rovai, Marco Zennaro, Vijay Janapa Reddi
2023 B conf
SMC
Rizwan Parveen, Ashin Laurel R, Mihir Thalanki, Neena Goveas, Shubhangi K. Gawali
2023 conf
IFIPIoT (1)
Shubhangi K. Gawali, Lucy J. Gudino, Neena Goveas
2023 conf
MILCOM
Piyush Nikam, Dhruv Shah, Aryan Sahu, Neena Goveas, Sreejith Vidhyadharan
2023 C conf
ISNCC
Yashovardhan Bapat, Shreya Aiyer, Akhil A Binu, Chandra Shekar R K, Shubhangi K. Gawali, Lucy J. Gudino, Neena Goveas
2023 conf
SmartNets
Sayani Mallick, Pranav Ruparel, Shubhangi K. Gawali, Neena Goveas
2023 conf
SysCon
Sayani Mallick, Shubhangi K. Gawali, Clement Onime, Neena Goveas
2023 conf
ICSA-C
Ritvij Kumar Sharma, Neena Goveas
2022 conf
CSNDSP
Chandra Shekar R K, Neena Goveas, Lucy J. Gudino
2022 Misc conf
ICDCIT
Rizwan Parveen, Neena Goveas
2021 J jnl
CoRR
Pranay Mathur, Yash Jangir, Neena Goveas
2021 conf
COMAD/CODS
Soundarya Krishnan, Rishab Khincha, Neena Goveas
2020 J jnl
IEEE Trans. Instrum. Meas.
Gibin ChackoGeorge, N. Bittu, J. J. U. Buch, A. Amalin Prince, Neena Goveas, Surya K. Pathak
2020 C conf
ICISP
Rishab Khincha, Soundarya Krishnan, Rizwan Parveen, Neena Goveas
2019 conf
PACIS
Rizwan Parveen, Poojan Thaker, Neena Goveas
2018 Misc conf
ICDCN
Prasad Talasila, Mihir Kakrambe, Anurag Rai, Sebastin Santy, Neena Goveas, Bharat M. Deshpande
2018 conf
ICPS
Rizwan Parveen, Shubham Pradhan, Neena Goveas
2018 Misc conf
COMSNETS
Prasad Talasila, Shaik Asifullah, Neena Goveas, Bharat M. Deshpande
2017 conf
ITSC
Prasad Talasila, Aparajita Haldar, Suhas S. Pai, Neena Goveas, Bharat M. Deshpande
2016 conf
ICACCI
S. Sreekesh, Abhimanyu Zala, G. Keerthi Chavan, Neena Goveas
2016 Misc conf
COMSNETS
T. S. R. K. Prasad, Kartik Sathyanarayanan, Sukriti Tiwari, Neena Goveas, Bharat M. Deshpande
2015 J jnl
ACM SIGSOFT Softw. Eng. Notes
Abhinandan H. Patil, Neena Goveas, Krishnan Rangarajan
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 []