Raghuraman Mudumbai

65 papers A* 2A 1B 4C 1Misc 16Journal 22Unranked 19
YearRankTypeTitle / Venue / Authors
2023 Misc conf
ACSSC
Fahim Ahmed Zaman, Xiaodong Wu, Weiyu Xu, Milan Sonka, Raghuraman Mudumbai
2023 J jnl
CoRR
Fahim Ahmed Zaman, Xiaodong Wu, Weiyu Xu, Milan Sonka, Raghuraman Mudumbai
2019 J jnl
CoRR
Jirong Yi, Hui Xie, Leixin Zhou, Xiaodong Wu, Weiyu Xu, Raghuraman Mudumbai
2018 J jnl
IEEE Trans. Wirel. Commun.
Sairam Goguri, Dennis Ogbe, Soura Dasgupta, Raghuraman Mudumbai, D. Richard Brown, David J. Love, Upamanyu Madhow
2018 J jnl
IEEE Access
Tomohiro Arakawa, Sairam Goguri, James V. Krogmeier, Anton Kruger, David J. Love, Raghuraman Mudumbai, Matthew A. Swabey
2017 J jnl
IEEE Trans. Wirel. Commun.
Amy Kumar, Raghuraman Mudumbai, Soura Dasgupta, Upamanyu Madhow, D. Richard Brown
2017 J jnl
IEEE Trans. Computational Imaging
Sampurna Biswas, Soura Dasgupta, Raghuraman Mudumbai, Mathews Jacob
2017 J jnl
Digit. Signal Process.
Hema Kumari Achanta, Sampurna Biswas, Bhanumati N. Dasgupta, Soura Dasgupta, Mathews Jacob, Raghuraman Mudumbai
2016 Misc conf
ACSSC
Sairam Goguri, Benjamin Peiffer, Raghuraman Mudumbai, Soura Dasgupta
2016 Misc conf
ICASSP
Sairam Goguri, Raghuraman Mudumbai, D. Richard Brown III, Soura Dasgupta, Upamanyu Madhow
2016 conf
ISGT
Josiah McClurg, Raghuraman Mudumbai, Joseph Hall
2016 conf
IEEE BigData
Gheorghi Guzun, Josiah C. McClurg, Guadalupe Canahuate, Raghuraman Mudumbai
2016 J jnl
CoRR
Josiah McClurg, Raghuraman Mudumbai
2015 J jnl
IEEE Trans. Signal Inf. Process. over Networks
Amy Kumar, Raghuraman Mudumbai, Soura Dasgupta, Muhammad Mahboob Ur Rahman, D. Richard Brown III, Upamanyu Madhow, T. Patrick Bidigare
2015 conf
CDC
Er-Wei Bai, Soura Dasgupta, Raghuraman Mudumbai
2015 Misc conf
CISS
Sairam Goguri, Joseph Hall, Raghuraman Mudumbai, Soura Dasgupta
2015 Misc conf
ACSSC
Benjamin Peiffer, Sairam Goguri, Soura Dasgupta, Raghuraman Mudumbai
2015 J jnl
CoRR
Henry E. Baidoo-Williams, Octav Chipara, Raghuraman Mudumbai, Soura Dasgupta
2015 J jnl
IEEE Signal Process. Lett.
Sampurna Biswas, Hema Kumari Achanta, Mathews Jacob, Soura Dasgupta, Raghuraman Mudumbai
2015 J jnl
Autom.
Er-Wei Bai, Henry Ernest Baidoo-Williams, Raghuraman Mudumbai, Soura Dasgupta
2015 Misc conf
ITA
Henry E. Baidoo-Williams, Raghuraman Mudumbai, Er-Wei Bai, Soura Dasgupta
2015 conf
EUSIPCO
Sampurna Biswas, Soura Dasgupta, Mathews Jacob, Raghuraman Mudumbai
2015 conf
ISBI
Sampurna Biswas, Sunrita Poddar, Soura Dasgupta, Raghuraman Mudumbai, Mathews Jacob
2015 Misc conf
ACSSC
T. Patrick Bidigare, Upamanyu Madhow, D. Richard Brown III, Raghuraman Mudumbai, A. Kumar, Benjamin Peiffer, Soura Dasgupta
2014 conf
ICACCI
Hema Kumari Achanta, Soura Dasgupta, Weiyu Xu, Raghuraman Mudumbai, Er-Wei Bai
2014 conf
DySPAN
Amy Kumar, Parker A. Koch, Henry E. Baidoo-Williams, Raghuraman Mudumbai, Soura Dasgupta
2014 conf
SAM
Hema Kumari Achanta, Sampurna Biswas, Soura Dasgupta, Mathews Jacob, Bhanumati N. Dasgupta, Raghuraman Mudumbai
2014 Misc conf
ITA
Raghuraman Mudumbai, Soura Dasgupta
2014 Misc conf
ITA
Upamanyu Madhow, Donald Richard Brown, Soura Dasgupta, Raghuraman Mudumbai
2014 Misc conf
ACSSC
Maryam Eslami Rasekh, Upamanyu Madhow, Raghuraman Mudumbai
2014 Misc conf
ACSSC
Sampurna Biswas, Sunrita Poddar, Soura Dasgupta, Raghuraman Mudumbai, Mathews Jacob
2014 J jnl
CoRR
Sampurna Biswas, Sunrita Poddar, Soura Dasgupta, Raghuraman Mudumbai, Mathews Jacob
2014 conf
CDC
Er-Wei Bai, Kidane Yosief, Soura Dasgupta, Raghuraman Mudumbai
2014 J jnl
CoRR
Sampurna Biswas, Sunrita Poddar, Soura Dasgupta, Raghuraman Mudumbai, Mathews Jacob
2013 J jnl
IEEE Trans. Wirel. Commun.
François Quitin, Muhammad Mahboob Ur Rahman, Raghuraman Mudumbai, Upamanyu Madhow
2013 conf
WICON
Muhammad Mahboob Ur Rahman, Soura Dasgupta, Raghuraman Mudumbai
2013 J jnl
IEEE Signal Process. Lett.
Henry E. Baidoo-Williams, Soura Dasgupta, Raghuraman Mudumbai, Er-Wei Bai
2012 Misc conf
ICASSP
Patrick Bidigare, Upamanyu Madhow, Raghuraman Mudumbai, Dzul Scherber
2012 conf
IPSN
Henry E. Baidoo-Williams, Jeremy S. Bril, Mehmed B. Diken, Jonathan Durst, Josiah McClurg, Soura Dasgupta, Craig L. Just, Anton Kruger, Raghuraman Mudumbai, Teresa Newton
2012 C conf
WOWMOM
François Quitin, Upamanyu Madhow, Muhammad Mahboob Ur Rahman, Raghuraman Mudumbai
2012 B conf
GLOBECOM
François Quitin, Muhammad Mahboob Ur Rahman, Raghuraman Mudumbai, Upamanyu Madhow
2012 conf
IPSN
Muhammad Mahboob Ur Rahman, Henry E. Baidoo-Williams, Raghuraman Mudumbai, Soura Dasgupta
2012 Misc conf
ICASSP
Donald Richard Brown, Raghuraman Mudumbai, Soura Dasgupta
2012 Misc conf
ICASSP
Raghuraman Mudumbai, Patrick Bidigare, Scott Pruessing, Soura Dasgupta, Miguel Oyarzyn, David Raeman
2011 conf
ACSCC
Raghuraman Mudumbai, Upamanyu Madhow, Rick Brown, Patrick Bidigare
2011 conf
CDC/ECC
Raghuraman Mudumbai, Soura Dasgupta, Brian B. Cho
2011 Misc conf
ITA
Sriram Venkateswaran, Sumit Singh, Upamanyu Madhow, Raghuraman Mudumbai
2011 J jnl
IEEE/ACM Trans. Netw.
Sumit Singh, Raghuraman Mudumbai, Upamanyu Madhow
2010 B conf
ISIT
Omar Bakr, Raghuraman Mudumbai
2010 A* conf
INFOCOM
Sumit Singh, Raghuraman Mudumbai, Upamanyu Madhow
2010 J jnl
IEEE Trans. Inf. Theory
Raghuraman Mudumbai, João Pedro Hespanha, Upamanyu Madhow, Gwen Barriac
2009 J jnl
IEEE Commun. Mag.
Raghuraman Mudumbai, D. Richard Brown III, Upamanyu Madhow, H. Vincent Poor
2009 A conf
ICME
Megha Manohara, Raghuraman Mudumbai, Jerry D. Gibson, Upamanyu Madhow
2009 conf
Allerton
Omar Bakr, Mark Johnson, Raghuraman Mudumbai, Upamanyu Madhow
2009 A* conf
INFOCOM
Raghuraman Mudumbai, Sumit Singh, Upamanyu Madhow
2009 B conf
WCNC
Omar Bakr, Mark Johnson, Raghuraman Mudumbai, Kannan Ramchandran
2009 J jnl
ACM Trans. Sens. Networks
Nisheeth Shrivastava, Raghuraman Mudumbai, Upamanyu Madhow, Subhash Suri
2008 B conf
ISIT
Raghuraman Mudumbai, Upamanyu Madhow
2008 conf
ICDSC
Michael J. Quinn, Raghuraman Mudumbai, Thomas Kuo, Zefeng Ni, Carter De Leo, Bangalore S. Manjunath
2007 J jnl
IEEE Trans. Wirel. Commun.
Raghuraman Mudumbai, Gwen Barriac, Upamanyu Madhow
2006 J jnl
CoRR
Raghuraman Mudumbai, João Pedro Hespanha, Upamanyu Madhow, Gwen Barriac
2006 Misc conf
SenSys
Nisheeth Shrivastava, Raghuraman Mudumbai, Upamanyu Madhow, Subhash Suri
2005 conf
ICC
Kristoffer Bruvold, Raghuraman Mudumbai, Upamanyu Madhow
2004 conf
IPSN
Gwen Barriac, Raghuraman Mudumbai, Upamanyu Madhow
2004 conf
VTC Fall (2)
Raghuraman Mudumbai, Gwen Barriac, Upamanyu Madhow
redb/extractors/js_extractors/js_deobfuscator.py
← Index redb/extractors/js_extractors/js_deobfuscator.py python
"""Subprocess-driven JavaScript deobfuscator with jsbeautifier fallback.

Owns the heavy lifting that was previously embedded inside
`JSDeobfuscationExtractor` (`_run_deobfuscator` + `_try_jsbeautifier`). Exposed
as a single module-level entry point `deobfuscate(source, log)` so it can be
called from `JSContext.deobfuscated` (cached per sample) without dragging
extractor state through the call.

Configuration (env vars):
    JS_DEOBFUSCATOR_PATH    Path or name of the external tool (default: webcrack).
    JS_DEOBFUSCATE_TIMEOUT  Seconds before the external tool is killed
                            (process-group SIGTERM, then SIGKILL). Default: 60.

If the external tool produces non-empty output and exits 0, that wins. Otherwise
the source is run through jsbeautifier (which only normalises formatting, but
already exposes strings hidden by minification). If neither path produces
output, returns (None, None).

`FileNotFoundError` for the external tool is treated as routine — the analysis
server is either provisioned with the tool or it isn't — and demoted to a
debug-level log.
"""

import os
import signal
import subprocess
import tempfile
from typing import Optional, Tuple

DEFAULT_DEOBFUSCATOR = "webcrack"
DEFAULT_TIMEOUT_SECS = 60


def _run_external(
    source: str, deobfuscator_path: str, timeout: int, log
) -> Tuple[Optional[str], int]:
    """Run the configured external deobfuscator over `source` and capture stdout.

    Returns (text, returncode). `text` is `None` and `returncode` is `-1` when
    the binary is missing, the run timed out, or any other unexpected failure
    occurred. Missing-binary is logged at debug; timeouts and unexpected errors
    surface at warning/error.
    """
    try:
        with tempfile.NamedTemporaryFile(
            suffix=".js", mode="w", delete=False, encoding="utf-8"
        ) as tmp:
            tmp.write(source)
            tmp_path = tmp.name

        try:
            process = subprocess.Popen(
                [deobfuscator_path, tmp_path],
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                preexec_fn=os.setsid,
            )

            try:
                stdout, _ = process.communicate(timeout=timeout)
                return stdout.decode("utf-8", errors="replace"), process.returncode
            except subprocess.TimeoutExpired:
                # Kill the entire process group so spawned helpers (e.g. node
                # subprocesses webcrack itself launches) get cleaned up too.
                try:
                    os.killpg(os.getpgid(process.pid), signal.SIGTERM)
                    process.wait(timeout=5)
                except Exception:
                    try:
                        os.killpg(os.getpgid(process.pid), signal.SIGKILL)
                    except Exception:
                        pass
                log.warning(f"Deobfuscation timed out after {timeout}s")
                return None, -1
        finally:
            try:
                os.unlink(tmp_path)
            except Exception:
                pass
    except FileNotFoundError:
        log.debug(f"Deobfuscator binary not found at {deobfuscator_path}")
        return None, -1
    except Exception as e:
        log.error(f"Error running deobfuscator: {e}")
        return None, -1


def _try_jsbeautifier(source: str, log) -> Tuple[Optional[str], Optional[str]]:
    """Fallback path: format the source with jsbeautifier. Returns
    `(text, "jsbeautifier")` or `(None, None)` if jsbeautifier isn't installed
    or the call raised."""
    try:
        import jsbeautifier
        opts = jsbeautifier.default_options()
        opts.indent_size = 2
        return jsbeautifier.beautify(source, opts), "jsbeautifier"
    except ImportError:
        log.debug("jsbeautifier not available")
        return None, None
    except Exception as e:
        log.warning(f"jsbeautifier failed: {e}")
        return None, None


def deobfuscate(source: str, log) -> Tuple[Optional[str], Optional[str]]:
    """Run the configured external deobfuscator, falling back to jsbeautifier.

    Returns `(text, normalizer_used)` on success, or `(None, None)` when neither
    path produced non-empty output. `normalizer_used` is the basename of the
    external tool (e.g. `"webcrack"`) or the literal `"jsbeautifier"`.
    """
    if not source:
        return None, None

    deobfuscator_path = os.getenv("JS_DEOBFUSCATOR_PATH", DEFAULT_DEOBFUSCATOR)
    timeout = int(os.getenv("JS_DEOBFUSCATE_TIMEOUT", str(DEFAULT_TIMEOUT_SECS)))

    text, returncode = _run_external(source, deobfuscator_path, timeout, log)
    if text and returncode == 0 and text.strip():
        return text, os.path.basename(deobfuscator_path)

    return _try_jsbeautifier(source, log)