Varun Bajaj

72 papers C 1Journal 61Unranked 9
YearRankTypeTitle / Venue / Authors
2026 J jnl
Eng. Appl. Artif. Intell.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj
2026 J jnl
Signal Image Video Process.
Akanksha Dixit, Varun Bajaj, Prabin Kumar Padhy
2024 J jnl
Comput. Methods Programs Biomed.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj
2024 J jnl
Multim. Tools Appl.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj
2024 J jnl
Expert Syst. J. Knowl. Eng.
Kapil Gupta, Varun Bajaj, Deepak Kumar Jain, Amir Hussain
2024 J jnl
IEEE Trans. Instrum. Meas.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj, Shivam Mishra
2024 C conf
ICARCV
Rajveer Singh Lalawat, Varun Bajaj, Prabin Kumar Padhy
2023 J jnl
Expert Syst. Appl.
Kapil Gupta, Varun Bajaj, Irshad Ahmad Ansari
2023 J jnl
Turkish J. Electr. Eng. Comput. Sci.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj
2023 J jnl
Phys. Commun.
Nakul K. Pathak, Varun Bajaj
2023 J jnl
Biomed. Signal Process. Control.
Anurodh Kumar, Amit Vishwakarma, Varun Bajaj
2023 J jnl
Biomed. Signal Process. Control.
Kapil Gupta, Varun Bajaj
2023 J jnl
Sensors
Smith K. Khare, Varun Bajaj, Nikhil B. Gaikwad, Ganesh Ram Sinha
2023 J jnl
IEEE Trans. Instrum. Meas.
Kapil Gupta, Varun Bajaj, Irshad Ahmad Ansari
2023 conf
EMBC
Nithin Lakshmisha, Aman Butoliya, Varun Bajaj, Vikram M. Gadre, Soumyo Mukherji
2022 J jnl
Comput. Biol. Medicine
Smith K. Khare, Varun Bajaj
2022 J jnl
Multim. Tools Appl.
Rishi Sinhal, Sachin Sharma, Irshad Ahmad Ansari, Varun Bajaj
2022 J jnl
IEEE Trans. Instrum. Meas.
Kapil Gupta, Varun Bajaj, Irshad Ahmad Ansari
2022 J jnl
IEEE Trans. Instrum. Meas.
Smith K. Khare, Nikhil B. Gaikwad, Varun Bajaj
2021 J jnl
Expert Syst. Appl.
Himanshu Singh, Sethu Venkata Raghavendra Kommuri, Anil Kumar, Varun Bajaj
2021 J jnl
Comput. Methods Programs Biomed.
Smith K. Khare, Varun Bajaj
2021 J jnl
Expert Syst. Appl.
Santhos A. Kumar, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2021 J jnl
IEEE Trans. Instrum. Meas.
Smith K. Khare, Varun Bajaj, U. Rajendra Acharya
2021 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Smith K. Khare, Varun Bajaj
2020 J jnl
Comput. Methods Programs Biomed.
Smith K. Khare, Varun Bajaj
2020 J jnl
Comput. Methods Programs Biomed.
Shalu Chaudhary, Sachin Taran, Varun Bajaj, Siuly Siuly
2020 J jnl
IEEE CAA J. Autom. Sinica
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2020 J jnl
IEEE Trans. Instrum. Meas.
Smith K. Khare, Varun Bajaj, Ganesh Ram Sinha
2020 J jnl
IEEE Trans. Fuzzy Syst.
Santhos A. Kumar, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2020 J jnl
Health Inf. Sci. Syst.
Sravani Chada, Sachin Taran, Varun Bajaj
2020 J jnl
Knowl. Based Syst.
Sachin Taran, Prakash Chandra Sharma, Varun Bajaj
2020 J jnl
Circuits Syst. Signal Process.
Sethu Venkata Raghavendra Kommuri, Himanshu Singh, Anil Kumar, Varun Bajaj
2020 J jnl
Health Inf. Sci. Syst.
Fatih Demir, Abdulkadir Sengür, Varun Bajaj
2020 J jnl
Circuits Syst. Signal Process.
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2020 J jnl
IEEE Access
Silvia Liberata Ullo, Smith K. Khare, Varun Bajaj, Ganesh Ram Sinha
2020 J jnl
Multim. Tools Appl.
Santhos A. Kumar, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2020 J jnl
IEEE Trans. Instrum. Meas.
Sachin Taran, Varun Bajaj
2019 J jnl
Circuits Syst. Signal Process.
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2019 J jnl
Int. J. Autom. Comput.
Siuly Siuly, Varun Bajaj, Abdulkadir Sengür, Yanchun Zhang
2019 J jnl
Neural Comput. Appl.
Varun Bajaj, Mayank Pawar, Vinod Kumar Meena, Mukesh Kumar, Abdulkadir Sengür, Yanhui Guo
2019 J jnl
IEEE Trans. Ind. Electron.
Nikhil Agrawal, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2019 J jnl
Comput. Methods Programs Biomed.
Sachin Taran, Varun Bajaj
2019 J jnl
Neural Comput. Appl.
Sachin Taran, Varun Bajaj
2019 J jnl
Neural Comput. Appl.
Fatih Demir, Varun Bajaj, Melih Cevdet Ince, Sachin Taran, Abdulkadir Sengür
2019 J jnl
Health Inf. Sci. Syst.
Fatih Demir, Abdulkadir Sengür, Varun Bajaj, Kemal Polat
2018 J jnl
Signal Image Video Process.
Shreya Pare, Ashish Kumar Bhandari, Anil Kumar, Varun Bajaj
2018 J jnl
Soft Comput.
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2018 J jnl
Health Inf. Sci. Syst.
Varun Bajaj, Sachin Taran, Abdulkadir Sengür
2018 J jnl
Health Inf. Sci. Syst.
Sukumar Nagineni, Sachin Taran, Varun Bajaj
2018 conf
DSP
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2018 J jnl
IEEE J. Biomed. Health Informatics
Shweta Jain, Varun Bajaj, Anil Kumar
2018 J jnl
Health Inf. Sci. Syst.
Erkan Deniz, Abdulkadir Sengür, Zehra Kadiroglu, Yanhui Guo, Varun Bajaj, Ümit Budak
2017 J jnl
IEEE Trans. Emerg. Top. Comput. Intell.
Nikhil Agrawal, Anil Kumar, Varun Bajaj
2017 J jnl
Neural Comput. Appl.
Varun Bajaj, Yanhui Guo, Abdulkadir Sengür, Siuly Siuly, Omer F. Alcin
2017 J jnl
Appl. Soft Comput.
Shreya Pare, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2017 J jnl
Health Inf. Sci. Syst.
Sachin Taran, Varun Bajaj, Siuly Siuly
2017 J jnl
Health Inf. Sci. Syst.
Abdulkadir Sengür, Yaman Akbulut, Yanhui Guo, Varun Bajaj
2017 J jnl
Int. J. Autom. Comput.
Nikhil Agrawal, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2017 J jnl
IET Signal Process.
Varun Bajaj, Khushnandan Rai, Anil Kumar, Dheeraj Sharma, Girish Kumar Singh
2016 J jnl
Appl. Soft Comput.
Shreya Pare, Anil Kumar, Varun Bajaj, Girish Kumar Singh
2016 conf
DSP
Nikhil Agrawal, Anil Kumar, Varun Bajaj, Heung-No Lee
2016 J jnl
Neurocomputing
Ömer Faruk Alçin, Siuly Siuly, Varun Bajaj, Yanhui Guo, Abdulkadir Sengür, Yanchun Zhang
2016 conf
Astroinformatics
Matthew Bourque, Varun Bajaj, Ariel Bowers, Michael Dulude, Meredith Durbin, Catherine Gosmeyer, Heather Gunning, Harish Khandrika, Catherine Martlin, Ben Sunnquist, Alex Viana
2015 ch.
Brain-Computer Interfaces
Varun Bajaj, Ram Bilas Pachori
2015 conf
DSP
Khushnandan Rai, Varun Bajaj, Anil Kumar
2014 conf
ICMB
Varun Bajaj, Ram Bilas Pachori
2013 J jnl
Comput. Methods Programs Biomed.
Varun Bajaj, Ram Bilas Pachori
2012 J jnl
IEEE Trans. Inf. Technol. Biomed.
Varun Bajaj, Ram Bilas Pachori
2012 conf
ICHIT (1)
Varun Bajaj, Ram Bilas Pachori
2011 J jnl
Comput. Methods Programs Biomed.
Ram Bilas Pachori, Varun Bajaj
2011 conf
IICAI
Varun Bajaj, Ram Bilas Pachori
2011 conf
SocProS (2)
Varun Bajaj, Ram Bilas Pachori
redb/extractors/js_extractors/js_deobfuscation.py
← Index redb/extractors/js_extractors/js_deobfuscation.py python
import hashlib
import inspect
import re
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.js_extractor import JSExtractor
from redb.extractors.js_extractors.js_patterns import PATTERNS

# String literals of 4+ characters; only used by the deobfuscation diff to count
# strings revealed after deobfuscation. Compiled once at module load.
_STRING_LITERAL_4PLUS_RE = re.compile(r"[\"\']([^\"\']{4,})[\"\']")


class JSDeobfuscationExtractor(JSExtractor):
    """Compute pre/post-deobfuscation metrics for a JS sample.

    The actual deobfuscation pass (external tool with jsbeautifier fallback)
    lives on `JSContext.deobfuscated` and is cached per sample, so any other
    extractor that needs the deobfuscated text reads the same value without
    re-running the subprocess. Configure the external tool via env vars:
        JS_DEOBFUSCATOR_PATH    Path or name (default: webcrack)
        JS_DEOBFUSCATE_TIMEOUT  Seconds (default: 60)
    """

    def __init__(
        self, filepath, log, exporters=None, index_prefix=None,
        known_benign=False, known_malicious=False, source=None, context=None,
    ):
        super().__init__(
            filepath, log, exporters, index_prefix,
            known_benign, known_malicious, source, context=context,
        )
        self.deobfuscation_result = None
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def extract(self):
        src = self.js_source
        if not src:
            return None

        deobfuscated, deobfuscator_used = self._context.deobfuscated
        if deobfuscated is None:
            return None

        original_size = len(src)
        original_entropy = self._context.text_entropy
        deobfuscated_size = len(deobfuscated)
        deobfuscated_entropy = self._calculate_text_entropy(deobfuscated)
        size_change_ratio = round(deobfuscated_size / original_size, 4) if original_size else 0.0

        # Strings revealed by deobfuscation: matched literals are extracted from
        # both versions and the set difference is the count of "new" strings.
        original_strings = set(_STRING_LITERAL_4PLUS_RE.findall(src))
        deobfuscated_strings = set(_STRING_LITERAL_4PLUS_RE.findall(deobfuscated))
        new_strings = deobfuscated_strings - original_strings

        # Suspicious APIs revealed by deobfuscation. Both sides of the diff
        # come from JSContext caches: the raw scan is computed once for the
        # whole pipeline; the deobfuscated scan is computed once and reused
        # by JSSuspiciousAPIsExtractor's revealed_by_deobf rows.
        original_apis = {n for n in self._context.scan if n in PATTERNS}
        deobfuscated_apis = set(self._context.scan_deobfuscated)
        new_apis = deobfuscated_apis - original_apis

        deobfuscated_sha256 = hashlib.sha256(deobfuscated.encode('utf-8')).hexdigest()

        self.deobfuscation_result = {
            'deobfuscator_used': deobfuscator_used,
            'deobfuscation_successful': True,
            'original_size': original_size,
            'deobfuscated_size': deobfuscated_size,
            'size_change_ratio': size_change_ratio,
            'original_entropy': original_entropy,
            'deobfuscated_entropy': deobfuscated_entropy,
            'new_strings_found': len(new_strings),
            'new_apis_found': len(new_apis),
            'deobfuscated_sha256': deobfuscated_sha256,
        }
        return self.deobfuscation_result

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ClickHouseExporter":
            if not self.deobfuscation_result:
                return None

            r = self.deobfuscation_result
            current_time = datetime.now(timezone.utc)
            data = [[
                self.sha256,
                r['deobfuscator_used'],
                int(r['deobfuscation_successful']),
                r['original_size'],
                r['deobfuscated_size'],
                r['size_change_ratio'],
                r['original_entropy'],
                r['deobfuscated_entropy'],
                r['new_strings_found'],
                r['new_apis_found'],
                r['deobfuscated_sha256'],
                current_time,
            ]]

            column_names = [
                "sha256", "deobfuscator_used", "deobfuscation_successful",
                "original_size", "deobfuscated_size", "size_change_ratio",
                "original_entropy", "deobfuscated_entropy",
                "new_strings_found", "new_apis_found",
                "deobfuscated_sha256", "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)", "LowCardinality(String)", "UInt8",
                "UInt64", "UInt64", "Float64",
                "Float64", "Float64",
                "UInt32", "UInt32",
                "FixedString(64)", "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

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