Rahul Jain

30 papers A* 2C 1Misc 3Journal 17Unranked 7
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Chang-Wei Yueh, Andy Zhao, Ashutosh Nayyar, Rahul Jain
2026 J jnl
CoRR
Zhuochen Liu, Hans Walker, Rahul Jain
2026 J jnl
CoRR
Rahul Jain, Keval Doshi, Burak Uzkent, Garin Kessler
2025 J jnl
CoRR
Apurv Shukla, Vijay Subramanian, Andy Zhao, Rahul Jain
2025 J jnl
CoRR
Zhuochen Liu, Rahul Jain, Quan Nguyen
2025 J jnl
CoRR
Rishabh Batra, Zhili Chen, Rahul Jain, YaoNan Zhang
2025 J jnl
CoRR
Merve Atasever, Zhuochen Liu, Qingpei Li, Akshay Hitendra Shah, Hans Walker, Jyotirmoy V. Deshmukh, Rahul Jain
2023 J jnl
CoRR
Srinivasan Arunachalam, João F. Doriguello, Rahul Jain
2023 J jnl
BMC Medical Informatics Decis. Mak.
Tamara L. Morgan, Jensen Pletch, Emma Faught, Michelle S. Fortier, Mary Kate Gazendam, Kelly Howse, Rahul Jain, Kirstin N. Lane, Kaleigh Maclaren, Taylor McFadden, Jeanette C. Prorok, Zachary J. Weston, Jennifer R. Tomasone
2023 J jnl
CoRR
Rahul Jain, Anoushka Saha, Gourav Daga, Durba Bhattacharya, Madhura Das Gupta, Sourav Chowdhury, Suparna Roychowdhury
2023 A* conf
ICRA
Namasivayam Kalithasan, Himanshu Singh, Vishal Bindal, Arnav Tuli, Vishwajeet Agrawal, Rahul Jain, Parag Singla, Rohan Paul
2023 J jnl
Ecol. Informatics
Kiran Dindhoria, Rahul Jain, Raghawendra Kumar, Bhavya Bhargava, Rakshak Kumar, Sanjay Kumar
2023 J jnl
CoRR
Kishor Bharti, Rahul Jain
2022 J jnl
CoRR
Namasivayam Kalithasan, Himanshu Singh, Vishal Bindal, Arnav Tuli, Vishwajeet Agrawal, Rahul Jain, Parag Singla, Rohan Paul
2022 A* conf
NeurIPS
Rahul Jain, Georgios Piliouras, Ryann Sim
2022 J jnl
CoRR
Rahul Jain, Georgios Piliouras, Ryann Sim
2021 conf
PReMI
Savi R. Bhide, Shashwat Jain, Kirti Mandloi, Rahul Jain, Tanishq Shrivastava, Jyoti Tiwari, Soma Saha
2021 conf
OCIT
Rahul Jain, Anoushka Sutradhar, Amiya K. Dash, Suchismita Das
2021 J jnl
Expert Syst. Appl.
Bhawna Nigam, Ayan Nigam, Rahul Jain, Shubham Dodia, Nidhi Arora, B. Annappa
2021 J jnl
J. Real Time Image Process.
Rahul Jain, Pooja Jain, Tapan Kumar, Gaurav Dhiman
2019 J jnl
CoRR
Khashayar Asadi, Rahul Jain, Ziqian Qin, Mingda Sun, Mojtaba Noghabaei, Jeremy Cole, Kevin K. Han, Edgar J. Lobaton
2017 conf
Modelica
Rahul Jain, Kannan M. Moudgalya, Peter Fritzson, Adrian Pop
2017 conf
CRI
Kavishwar B. Wagholikar, Rahul Jain, Eliel Oliveira, Joshua C. Mandel, Jeffrey G. Klann, Ricardo Colas, Prasad Patil, Kuladip Yadav, Kenneth D. Mandl, Shawn N. Murphy
2017 conf
Modelica
Kannan M. Moudgalya, Bhargava Nemmaru, Kaushik Datta, Priyam Nayak, Rahul Jain, Peter Fritzson, Adrian Pop
2016 conf
CRI
Michelle M. Smerek, Elisa Priest, Samuel T. Rosenbloom, Jon Puro, Pedro Rivera, Shelley A. Rusincovitch, Rahul Jain, Keith Marsolo
2016 Misc conf
AMIA
Kavishwar B. Wagholikar, Rahul Jain, Eliel Oliveira, Henry Chu, Harshal Shah, Joshua C. Mandel, Jeffrey G. Klann, Sohail Rao, Kenneth D. Mandl, Shawn N. Murphy, Thomas Carton
2016 Misc conf
AMIA
Kavishwar B. Wagholikar, Rahul Jain, Eliel Oliveira, Joshua C. Mandel, Jeffrey G. Klann, Prasad Patil, Kenneth D. Mandl, Shawn N. Murphy, Thomas Carton
2016 conf
IEEE BigData
Jonathan M. Rogers, Soumya S. Dey, Richard Retting, Rahul Jain, XiaoMeng Liang, Negin Askarzadeh
2015 Misc conf
AMIA
Allison B. McCoy, Michael G. Kahn, Lemuel R. Waitman, Jason N. Doctor, Rahul Jain
2010 C conf
LANMAN
Bhaskaran Raman, Rahul Jain
redb/extractors/pe_extractor.py
← Index redb/extractors/pe_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

import magic
import pefile
from dotnetfile import DotNetPE

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


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

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        pe=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious
        )
        self.pe = pe if pe else self._generate_pefile_object()
        self.dotnet = None

    def _generate_pefile_object(self):
        pe = None
        try:
            pe = pefile.PE(self.filepath)
            if not pe:
                raise pefile.PEFormatError("Empty file?")
        except pefile.PEFormatError as e:
            self.log.error(f"Format error {self.hash.sha256} Full error : {e}")
        return pe

    def _generate_dotnetfile_object(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        dotnet = None
        error = None
        try:
            dotnet = DotNetPE(self.filepath)
            if not dotnet:
                raise Exception("Empty file?")
        except Exception as e:
            self.log.error(
                f"Format error dotnet file {self.hash.sha256} Full error : {e}"
            )
            error = e
        return dotnet, error

    def _check_dotnet(self):
        try:
            file_type = magic.from_buffer(self.binary)
            if ".Net" in file_type:
                return True
            for entry in self.pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                if (
                    entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                    and entry.Size > 0
                ):
                    return True
            return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def _is_signed(self):
        address = self.pe.OPTIONAL_HEADER.DATA_DIRECTORY[
            pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
        ].VirtualAddress
        if address == 0:
            return False
        return True

    def _has_overlay(self):
        return bool(self.pe.get_overlay())