Raenu Kolandaisamy

14 papers Journal 11Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
Sustain. Comput. Informatics Syst.
Raenu Kolandaisamy, A. Arun Kumar, A. N. Sasikumar, V. Sivakumar, G. K. Kamalam, M. K. Mohamed Faizal, Muhammad Mohzary
2025 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Kranthi Kumar Singamaneni, Anil Kumar Budati, Shayla Islam, Raenu Kolandaisamy, Ghulam Muhammad
2025 J jnl
J. Netw. Comput. Appl.
Atallah Zainab Abdulsalam, Shayla Islam, Mohammad Kamrul Hasan, Raenu Kolandaisamy, Md Arafatur Rahman, Hashim Elshafie, Huda Saleh Abbas, Ala Eldin Awouda, Elankovan A. Sundararajan
2025 J jnl
IEEE Access
Tarak Nandy, Raenu Kolandaisamy, Rafidah Md Noor, Sananda Bhattacharyya
2025 J jnl
IEEE Access
Kranthi Kumar Singamaneni, Budati Anil Kumar, Raenu Kolandaisamy, Vijaya Saradhi Dommeti, Swetha Katragadda
2025 J jnl
J. Supercomput.
S. M. Topazal, Shayla Islam, Raenu Kolandaisamy, Mohammad Kamrul Hasan, Ahmad Fadzil Ismail, Nur Hanis Sabrina Suhaimi, Huda Saleh Abbas, Muhammad Attique Khan, Kamal Ali Alezabi
2025 J jnl
IEEE Open J. Commun. Soc.
Shayla Islam, Atallah Zainab Abdulsalam, Budati Anil Kumar, Mohammad Kamrul Hasan, Raenu Kolandaisamy, Nurhizam Safie
2025 J jnl
Frontiers Artif. Intell.
N. S. Kalyan Chakravarthi, S. Jafar Ali Ibrahim, Raenu Kolandaisamy, M. Parveena, Madhala Srenevasulu, G. Sivaprasad
2024 J jnl
J. King Saud Univ. Comput. Inf. Sci.
Tarak Nandy, Rafidah Md Noor, Raenu Kolandaisamy, Mohd Yamani Idna Bin Idris, Sananda Bhattacharyya
2023 conf
IC3I
Raenu Kolandaisamy, Ajay Rastogi, Yatin Adhana, K. Yuvaraj, K. Sriram Kumar, Komal M. Birare
2023 conf
HCI (42)
Yun Rou Tan, Kasthuri Subaramaniam, Raenu Kolandaisamy
2020 J jnl
J. Supercomput.
Raenu Kolandaisamy, Rafidah Md. Noor, Muhammad Reza Z'aba, Ismail Ahmedy, Indraah Kolandaisamy
2019 conf
ICSCA
Zafeera Rashid, Chit Su Mon, Raenu Kolandaisamy
2018 J jnl
Wirel. Commun. Mob. Comput.
Raenu Kolandaisamy, Rafidah Md Noor, Ismail Ahmedy, Iftikhar Ahmad, Muhammad Reza Z'aba, Muhammad Imran, Mohammed Abdullah Alnuem
redb/extractors/js_extractors/js_content.py
← Index redb/extractors/js_extractors/js_content.py python
"""Persists raw + normalised text into the generic `code_text_content` table.

Reads the raw source and the deobfuscation result directly from the shared
JSContext so no extra compute happens here — both values are computed once
per sample (the source at JSContext construction, the deobfuscation lazily
on first access) and reused by any extractor that needs them.

`text_normalized` is left NULL when the deobfuscation pass produced no
output, so analysts can distinguish "we tried and got nothing" from
"normalisation succeeded".
"""

import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.js_extractor import JSExtractor


class JSContentExtractor(JSExtractor):

    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.content_row = None
        self.log.debug(inspect.currentframe().f_code.co_name)

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

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

        deobfuscated, normalizer_used = self._context.deobfuscated

        self.content_row = {
            "content_type": self._context.content_type,
            "text_raw": src,
            "text_normalized": deobfuscated,  # may be None
            "normalizer_used": normalizer_used,  # may be None
        }
        return self.content_row

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

        r = self.content_row
        data = [[
            self.sha256,
            r["content_type"],
            r["text_raw"],
            r["text_normalized"],
            r["normalizer_used"],
            datetime.now(timezone.utc),
        ]]

        column_names = [
            "sha256",
            "content_type",
            "text_raw",
            "text_normalized",
            "normalizer_used",
            "analysis_date",
        ]

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

        return (data, column_names, column_type_names)

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