Ofer Meshi

44 papers A* 9A 8Journal 19Unranked 7
YearRankTypeTitle / Venue / Authors
2026 conf
EACL (Volume 1: Long Papers)
Ofer Meshi, Krisztian Balog, Sally Goldman, Avi Caciularu, Guy Tennenholtz, Jihwan Jeong, Amir Globerson, Craig Boutilier
2026 J jnl
CoRR
Ofer Meshi, Krisztian Balog, Sally Goldman, Avi Caciularu, Guy Tennenholtz, Jihwan Jeong, Amir Globerson, Craig Boutilier
2025 J jnl
CoRR
Ali Montazeralghaem, Guy Tennenholtz, Craig Boutilier, Ofer Meshi
2024 A* conf
NeurIPS
Haolun Wu, Ofer Meshi, Masrour Zoghi, Fernando Diaz, Xue (Steve) Liu, Craig Boutilier, Maryam Karimzadehgan
2024 A* conf
SIGIR
Chih-Wei Hsu, Martin Mladenov, Ofer Meshi, James Pine, Hubert Pham, Shane Li, Xujian Liang, Anton Polishko, Li Yang, Ben Scheetz, Craig Boutilier
2024 J jnl
CoRR
Chih-Wei Hsu, Martin Mladenov, Ofer Meshi, James Pine, Hubert Pham, Shane Li, Xujian Liang, Anton Polishko, Li Yang, Ben Scheetz, Craig Boutilier
2024 A* conf
IJCAI
Carlos Martin, Craig Boutilier, Ofer Meshi, Tuomas Sandholm
2023 J jnl
CoRR
Haolun Wu, Ofer Meshi, Masrour Zoghi, Fernando Diaz, Xue Liu, Craig Boutilier, Maryam Karimzadehgan
2023 A conf
AISTATS
Javad Azizi, Ofer Meshi, Masrour Zoghi, Maryam Karimzadehgan
2023 J jnl
CoRR
Javad Azizi, Ofer Meshi, Masrour Zoghi, Maryam Karimzadehgan
2022 A conf
AISTATS
Branislav Kveton, Ofer Meshi, Masrour Zoghi, Zhen Qin
2019 A* conf
IJCAI
Martin Mladenov, Ofer Meshi, Jayden Ooi, Dale Schuurmans, Craig Boutilier
2019 J jnl
CoRR
Martin Mladenov, Ofer Meshi, Jayden Ooi, Dale Schuurmans, Craig Boutilier
2019 J jnl
CoRR
Chih-Wei Hsu, Branislav Kveton, Ofer Meshi, Martin Mladenov, Csaba Szepesvári
2019 J jnl
J. Mach. Learn. Res.
Ofer Meshi, Ben London, Adrian Weller, David A. Sontag
2018 A* conf
NeurIPS
Colin Graber, Ofer Meshi, Alexander G. Schwing
2018 J jnl
CoRR
Colin Graber, Ofer Meshi, Alexander G. Schwing
2018 A* conf
IJCAI
Craig Boutilier, Alon Cohen, Avinatan Hassidim, Yishay Mansour, Ofer Meshi, Martin Mladenov, Dale Schuurmans
2018 J jnl
CoRR
Craig Boutilier, Alon Cohen, Amit Daniely, Avinatan Hassidim, Yishay Mansour, Ofer Meshi, Martin Mladenov, Dale Schuurmans
2018 J jnl
CoRR
Irwan Bello, Sayali Kulkarni, Sagar Jain, Craig Boutilier, Ed Huai-hsin Chi, Elad Eban, Xiyang Luo, Alan Mackey, Ofer Meshi
2017 conf
NIPS
Ofer Meshi, Alexander G. Schwing
2017 A* conf
IJCAI
Martin Mladenov, Craig Boutilier, Dale Schuurmans, Ofer Meshi, Gal Elidan, Tyler Lu
2016 A conf
AISTATS
Heejin Choi, Ofer Meshi, Nathan Srebro
2016 conf
NIPS
Dan Garber, Ofer Meshi
2016 J jnl
CoRR
Dan Garber, Ofer Meshi
2016 A* conf
ICML
Ofer Meshi, Mehrdad Mahdavi, Adrian Weller, David A. Sontag
2015 A conf
AISTATS
Ofer Meshi, Nathan Srebro, Tamir Hazan
2015 J jnl
CoRR
Heejin Choi, Ofer Meshi, Nathan Srebro
2015 J jnl
CoRR
Ofer Meshi, Mehrdad Mahdavi, David A. Sontag
2015 conf
NIPS
Ofer Meshi, Mehrdad Mahdavi, Alexander G. Schwing
2014 A conf
AISTATS
Nir Rosenfeld, Ofer Meshi, Daniel Tarlow, Amir Globerson
2013
Ofer Meshi
2013 A conf
UAI
Ofer Meshi, Elad Eban, Gal Elidan, Amir Globerson
2013 J jnl
CoRR
Ofer Meshi, Elad Eban, Gal Elidan, Amir Globerson
2012 conf
NIPS
Ofer Meshi, Tommi S. Jaakkola, Amir Globerson
2012 J jnl
CoRR
Ofer Meshi, Ariel Jaimovich, Amir Globerson, Nir Friedman
2012 J jnl
CoRR
Ariel Jaimovich, Ofer Meshi, Nir Friedman
2011 conf
ECML/PKDD (2)
Ofer Meshi, Amir Globerson
2010 J jnl
J. Mach. Learn. Res.
Ariel Jaimovich, Ofer Meshi, Ian McGraw, Gal Elidan
2010 A* conf
ICML
Ofer Meshi, David A. Sontag, Tommi S. Jaakkola, Amir Globerson
2010 conf
NIPS
David A. Sontag, Ofer Meshi, Tommi S. Jaakkola, Amir Globerson
2009 A conf
UAI
Ofer Meshi, Ariel Jaimovich, Amir Globerson, Nir Friedman
2007 J jnl
BMC Syst. Biol.
Ofer Meshi, Tomer Shlomi, Eytan Ruppin
2007 A conf
UAI
Ariel Jaimovich, Ofer Meshi, Nir Friedman
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 []