Neha Mishra

17 papers B 1C 1Journal 9Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Kybernetes
Pawan Kumar Chand, Urvashi Tandon, Neha Mishra
2026 J jnl
Int. J. Law Inf. Technol.
Neha Mishra, Binit Agarwal
2026 J jnl
J. Vis. Commun. Image Represent.
Parth Chande, Gajanan Galshetwar, Vijay M. Galshetwar, Niteshkumar Agrawal, Neha Mishra
2025 J jnl
Knowl. Inf. Syst.
Deevesh Chaudhary, Deepika Shekhawat, Sunita Gupta, Anju Kalwar, Neha Mishra, Meenakshi Nawal
2025 J jnl
Signal Image Video Process.
Parth Chande, Gajanan Galshetwar, Vijay M. Galshetwar, Niteshkumar Agrawal, Neha Mishra
2025 J jnl
Int. J. Law Inf. Technol.
Neha Mishra
2024 J jnl
Biomed. Signal Process. Control.
Deepika Shekhawat, Deevesh Chaudhary, Ashutosh Kumar, Anju Kalwar, Neha Mishra, Dimpal Sharma
2023 conf
INFOCOM Workshops
Neha Mishra, Yamini V. Iyengar, Akshay C. Raikar, Nikitha Thomas, Sabarish Krishna Moorthy, Jiangqi Hu, Zhiyuan Zhao, Nicholas Mastronarde, Elizabeth S. Bentley, Michael J. Medley, Zhangyu Guan
2022 C conf
ICCE
Bhagawat Baanav Yedla Ravi, Md Rafiul Kabir, Neha Mishra, Srivalli Boddupalli, Sandip Ray
2022 conf
IDSTA
Neha Mishra, Haim Levkowitz
2022 ch.
Robotics and AI for Cybersecurity and Critical Infrastructure in Smart Cities
Ashutosh Kumar, Aditya Upadhyay, Neha Mishra, Srawan Nath, Kalu Ram Yadav, Gajanand Sharma
2021 conf
BIOTC
Neha Mishra, Haim Levkowitz
2021 conf
ITSC
Md Rafiul Kabir, Neha Mishra, Sandip Ray
2018 conf
UMAP (Adjunct Publication)
Yong Zheng, Tanaya Dave, Neha Mishra, Harshit Kumar
2017 J jnl
CoRR
Pranav Kumar Jha, Neha Mishra, D. Sriram Kumar
2017 J jnl
CoRR
Neha Mishra, D. Sriram Kumar, Pranav Kumar Jha
2009 B conf
ICCCI
Punam Bedi, Vandana Gandotra, Archana Singhal, Vandita Vats, Neha Mishra
redb/extractors/pe_extractors/pe_imports.py
← Index redb/extractors/pe_extractors/pe_imports.py python
import inspect
from typing import Any, List, Tuple
from datetime import datetime, timezone

from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PEImport


class PEImportExtractor(PEExtractor):

    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,
            pe,
        )
        self.elastic_index = self.index_prefix + "-pe_imports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.PE_IMPORT.value

    def _extract_imports(self):
        self.log.debug(inspect.currentframe().f_code.co_name)

        imports_symbols = []
        imports_lib = []
        imports_total = 0
        # pe_import = None
        try:
            directory_entry_import = getattr(self.pe, "DIRECTORY_ENTRY_IMPORT", [])
            imports_total = len(directory_entry_import)
            for entry in directory_entry_import:
                symbols = []
                tmp_import = {}
                libname = entry.dll.decode() if entry.dll else ""
                imports_lib.append(libname)
                # replace . with _ to avoid issues with elastic
                # entryname = entryname.replace(".", "_")
                for symbol in entry.imports:
                    if symbol.name:
                        symbols.append(symbol.name.decode())
                # imports_symbols[entryname] = symbols
                tmp_import[libname] = symbols
                imports_symbols.append(tmp_import)
            return PEImport(
                pe_imports_total=imports_total,
                pe_import_libraryName=imports_lib if imports_lib else None,
                pe_import_functions=imports_symbols if imports_symbols else None,
            )
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
        return pe_import

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            return self._extract_imports()
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            imports = self.extract()
            if (
                imports is None
                or imports.pe_imports_total == 0
                or (
                    imports.pe_import_libraryName is None
                    and imports.pe_import_functions is None
                )
            ):
                return None

            # Flatten the data - one row per function import
            data = []
            current_time = datetime.now(timezone.utc)

            for lib_funcs in imports.pe_import_functions:
                for lib, funcs in lib_funcs.items():
                    for func in funcs:
                        data.append(
                            [
                                self.sha256,  # sha256
                                self.md5,  # md5
                                self.sha1,  # sha1
                                lib,  # library_name
                                func,  # function_name
                                current_time,  # analysis_date
                            ]
                        )

            column_names = [
                "sha256",
                "md5",
                "sha1",
                "library_name",
                "function_name",
                "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)",
                "FixedString(32)",
                "FixedString(40)",
                "LowCardinality(Nullable(String))",
                "LowCardinality(Nullable(String))",
                "DateTime64(3, 'UTC')",
            ]

            if not data:
                return None

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_pe_imports"