Jadunandan Dash

36 papers C 7Journal 29
YearRankTypeTitle / Venue / Authors
2025 J jnl
Environ. Model. Softw.
Jinku Huang, Changxiu Cheng, Bin Li, Yang Gao, Ping Li, Jiawei Wan, Jadunandan Dash
2024 C conf
IGARSS
Somnath Paramanik, Mukunda Dev Behera, Jochem Verrelst, Clement Atzberger, Jadunandan Dash
2024 J jnl
Remote. Sens.
Luke A. Brown, Harry Morris, Andrew MacLachlan, Francesco D'Adamo, Jennifer Adams, Ernesto López-Baeza, Erika Albero, Beatriz Martínez, Sergio Sánchez-Ruiz, Manuel Campos-Taberner, Antonio L. Lidón, Cristina Lull, Inmaculada Bautista, Daniel Clewley, Gary M. Llewellyn, Qiaoyun Xie, Fernando Camacho, Julio Pastor-Guzman, Rosalinda Morrone, Morven Sinclair, Owen Williams, Merryn Hunt, Andreas Hueni, Valentina Boccia, Steffen Dransfeld, Jadunandan Dash
2024 J jnl
Ecol. Informatics
Luke A. Brown, Harry Morris, Rosalinda Morrone, Morven Sinclair, Owen Williams, Merryn Hunt, Subhajit Bandopadhyay, Xuerui Guo, Haydar Akcay, Jadunandan Dash
2024 J jnl
Remote. Sens.
Fernando Camacho, Enrique Martínez-Sánchez, Luke A. Brown, Harry Morris, Rosalinda Morrone, Owen Williams, Jadunandan Dash, Niall Origo, Jorge Sánchez-Zapero, Valentina Boccia
2023 J jnl
IEEE Trans. Geosci. Remote. Sens.
Wanshan Peng, Yan Gong, Shenghui Fang, Yongjun Zhang, Jadunandan Dash, Jie Ren, Jiacai Mo
2023 J jnl
Remote. Sens.
Qiaosi Li, Frankie Kwan Kit Wong, Tung Fung, Luke A. Brown, Jadunandan Dash
2023 J jnl
Remote. Sens.
Lingli Zhao, Shuang Wang, Yubin Xu, Weidong Sun, Lei Shi, Jie Yang, Jadunandan Dash
2023 J jnl
IEEE Geosci. Remote. Sens. Lett.
Luke A. Brown, Harry Morris, Courtney Meier, Alexander Knohl, Christian Lanconelli, Nadine Gobron, Jadunandan Dash, F. Mark Danson
2022 J jnl
Remote. Sens.
Yuxiang Ling, Shiwen Teng, Chao Liu, Jadunandan Dash, Harry Morris, Julio Pastor-Guzman
2022 J jnl
Remote. Sens.
Sarchil Hama Qader, Rhorom Priyatikanto, Nabaz R. Khwarahm, Andrew J. Tatem, Jadunandan Dash
2022 J jnl
Remote. Sens.
Chengxiu Li, Ellasy Gulule Chimimba, Oscar Kambombe, Luke A. Brown, Tendai Polite Chibarabada, Yang Lu, Daniela Anghileri, Cosmo Ngongondo, Justin Sheffield, Jadunandan Dash
2022 J jnl
Ecol. Informatics
Avinash Kumar Ranjan, Bikash Ranjan Parida, Jadunandan Dash, Amit Kumar Gorai
2021 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Luke A. Brown, Booker O. Ogutu, Fernando Camacho, Beatriz Fuster, Jadunandan Dash
2021 J jnl
Remote. Sens.
Luke A. Brown, Fernando Camacho, Vicente García-Santos, Niall Origo, Beatriz Fuster, Harry Morris, Julio Pastor-Guzman, Jorge Sánchez-Zapero, Rosalinda Morrone, James Ryder, Joanne Nightingale, Valentina Boccia, Jadunandan Dash
2021 C conf
IGARSS
Luke A. Brown, Harry Morris, Erika Albero, Ernesto López-Baeza, Frank Tiedemann, Lukas Siebicke, Alexander Knohl, Carolina da Silva Gomes, Gabriele Bai, Christophe Lerebourg, Nadine Gobron, Christian Lanconelli, Marco Clerici, Darius Culvenor, Jadunandan Dash
2020 J jnl
Remote. Sens.
Julio Pastor-Guzman, Luke A. Brown, Harry Morris, Ludovic Bourg, Philippe Goryl, Steffen Dransfeld, Jadunandan Dash
2019 J jnl
Remote. Sens.
Rong Shang, Ronggao Liu, Mingzhu Xu, Yang Liu, Jadunandan Dash, Quansheng Ge
2019 J jnl
Remote. Sens.
Luke A. Brown, Booker O. Ogutu, Jadunandan Dash
2019 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Luke A. Brown, Jadunandan Dash, Antonio L. Lidón, Ernesto López-Baeza, Steffen Dransfeld
2018 J jnl
Remote. Sens.
Rong Shang, Ronggao Liu, Mingzhu Xu, Yang Liu, Jadunandan Dash, Quansheng Ge
2018 C conf
IGARSS
Luke A. Brown, Jadunandan Dash, Antonio L. Lidón, Ernesto López-Baeza, Steffen Dransfeld
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Qunming Wang, George Alan Blackburn, Alex Okiemute Onojeghuo, Jadunandan Dash, Lingquan Zhou, Yihang Zhang, Peter M. Atkinson
2017 C conf
IGARSS
Tracy Adole, Jadunandan Dash, Peter M. Atkinson
2016 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Sarchil H. Qader, Jadunandan Dash, Peter M. Atkinson, Victor F. Rodriguez-Galiano
2015 J jnl
Remote. Sens.
Victor F. Rodriguez-Galiano, Jadunandan Dash, Peter M. Atkinson
2015 J jnl
Remote. Sens.
Julio Pastor-Guzman, Peter M. Atkinson, Jadunandan Dash, Rodolfo Rioja-Nieto
2015 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Sarchil H. Qader, Peter M. Atkinson, Jadunandan Dash
2013 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Irfan Akhtar Iqbal, Jadunandan Dash, Saleem Ullah, Ghayyas Ahmad
2012 J jnl
IEEE Geosci. Remote. Sens. Lett.
Doreen S. Boyd, Samuel Almond, Jadunandan Dash, Paul J. Curran, Ross A. Hill, Giles M. Foody
2012 C conf
IGARSS
Nadine Gobron, Jadunandan Dash, Olivier Arino, Lorena Hojas Gascon, Jan-Peter Muller
2012 J jnl
Remote. Sens.
Francesco Vuolo, Jadunandan Dash, Paul J. Curran, Dulce Lajas, Ewa J. Kwiatkowska
2010 C conf
IGARSS
Samuel Almond, Doreen S. Boyd, Jadunandan Dash, Paul J. Curran, Ross A. Hill, Giles M. Foody
2007 J jnl
Ecol. Informatics
Giles M. Foody, Jadunandan Dash
2006 J jnl
Int. J. Geogr. Inf. Sci.
Jadunandan Dash, Paul J. Curran
2004 C conf
IGARSS
Jadunandan Dash, Paul J. Curran
redb/extractors/pe_extractors/pe_overlay.py
← Index redb/extractors/pe_extractors/pe_overlay.py python
from hashlib import md5, sha1, sha256
import inspect
from datetime import datetime, timezone
from typing import Any

import magic
from magika import Magika

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


class PEOverlayExtractor(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_overlay"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_pe_overlay(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        overlay = self.pe.get_overlay()
        if overlay:
            return PEOverlay(
                _id=sha256(overlay).hexdigest(),
                overlay_size=len(overlay),
                overlay_entropy=self.calculate_entropy(overlay),
                overlay_offset=self.pe.get_overlay_data_start_offset(),
                overlay_mimetype=magic.from_buffer(overlay, mime=True),
                overlay_type=magic.from_buffer(overlay),
                overlay_magika=Magika().identify_bytes(overlay).output.ct_label,
                overlay_sha256=sha256(overlay).hexdigest(),
                overlay_sha1=sha1(overlay).hexdigest(),
                overlay_md5=md5(overlay).hexdigest(),
            )
        return None

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            overlay = self._extract_pe_overlay()
            # self.export_to_elastic([overlay])  # Let the exporters handle this
            return overlay
        except Exception as e:
            self.log.error(f"Error extracting PE overlay: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            overlay = self.extract()
            if overlay is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            data.append([
                self.sha256,              # sha256
                self.md5,                 # md5
                self.sha1,                # sha1
                overlay.overlay_size,     # overlay_size
                overlay.overlay_entropy,  # overlay_entropy
                overlay.overlay_offset,   # overlay_offset
                overlay.overlay_mimetype, # overlay_mimetype
                overlay.overlay_type,     # overlay_type
                overlay.overlay_magika,   # overlay_magika
                overlay.overlay_sha256,   # overlay_sha256
                overlay.overlay_sha1,     # overlay_sha1
                overlay.overlay_md5,      # overlay_md5
                current_time             # analysis_date
            ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'overlay_size', 'overlay_entropy',
                'overlay_offset', 'overlay_mimetype', 'overlay_type', 'overlay_magika',
                'overlay_sha256', 'overlay_sha1', 'overlay_md5',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'UInt64', 'Float64', 'UInt64',
                'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(String)',
                'FixedString(64)', 'FixedString(40)', 'FixedString(32)',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

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