Oren Zuckerman

82 papers A* 15A 3B 11Misc 15Journal 10Unranked 28
YearRankTypeTitle / Venue / Authors
2026 A* conf
CHI
Tamar Dublin, Jonathan Giron, Andrey Grishko, Emanuel Talmasky, Gil Zilberstein, Hadas Erel, Oren Zuckerman
2026 conf
HRI Companion
Elior Carsenti, Adi Manor, Ofir Sadka, Michael Kupferman, Guy Benadon, Lior Simchon, Rotem Dagan, Hili Megory, Sean Friedman, Jason F. Gilbert, Oren Zuckerman, Hadas Erel
2026 conf
CHI Extended Abstracts
Ofir Sadka, Iddo Yehoshua Wald, Andrey Grishko, Ken Nakagaki, Julia Dominiak, Tanja Döring, Oren Zuckerman
2026 conf
CHI Extended Abstracts
Alina Rachlewski, Tamar Dublin, Micha Glikman, Oren Zuckerman
2026 A* conf
HRI
Or Yizhar, Amber Maimon, Zohar Tal, Iddo Yehoshua Wald, Hadas Erel, Doron Friedman, Oren Zuckerman, Amir Amedi
2026 conf
HRI Companion
Ofir Sadka, Michael Kupferman, Hili Megory, Lior Simchon, Rotem Dagan, Guy Benadon, Sean Friedman, Jason F. Gilbert, Oren Zuckerman, Hadas Erel
2025 A conf
Conference on Designing Interactive Systems (Companion Volume)
Ruth Kedem, Maya Prozan, Andrey Grishko, Oren Zuckerman
2025 conf
HCI (66)
Idan Dov Vidra, Aviv Yehezkel, Udi Lumnitz, Hadas Erel, Oren Zuckerman, Ariel Shamir
2025 A* conf
CHI
Tamar Dublin, Oren Zuckerman
2024 conf
CHI Extended Abstracts
Tamar Dublin, Talia Sofia Ezer, Oren Zuckerman
2024 conf
CHI Extended Abstracts
Noa Morag Yaar, Ofir Sadka, Itay Shatil, Maayan Aharonson, Bar Efrima, Tal Barda, Mira Hayat, Oren Zuckerman, Hadas Erel
2024 conf
CHI Extended Abstracts
Gal Yaar, Agam Oberlender, Nevo Heimann Saadon, Oren Zuckerman, Hadas Erel
2024 A* conf
CHI
Talia Sofia Ezer, Jonathan Giron, Hadas Erel, Oren Zuckerman
2023 Misc conf
IDC
Noa Morag Yaar, Ofir Sadka, Aviv Yativ, Gilad Kfir, Noga Rosenberg, Yonatan Michael Ozbaher, Oren Zuckerman, Hadas Erel
2023 conf
CHI Extended Abstracts
Ofir Sadka, Avi Parush, Oren Zuckerman, Hadas Erel
2023 Misc conf
IDC
Elior Carsenti, Hadas Erel, Mario Mikulincer, Oren Zuckerman
2022 A* conf
HRI
Hadas Erel, Elior Carsenti, Oren Zuckerman
2022 J jnl
Int. J. Soc. Robotics
Hadas Erel, Denis Trayman, Chen Levy, Adi Manor, Mario Mikulincer, Oren Zuckerman
2022 A* conf
CHI
Oren Zuckerman, Viva Sarah Press, Ehud Barda, Benny Megidish, Hadas Erel
2021 A* conf
HRI
Hadas Erel, Yoav Cohen, Klil Shafrir, Sara Daniela Levy, Idan Dov Vidra, Tzachi Shem Tov, Oren Zuckerman
2021 J jnl
Hum. Comput. Interact.
Danielle Rifinski, Hadas Erel, Adi Feiner, Guy Hoffman, Oren Zuckerman
2021 B conf
TEI
Iddo Yehoshua Wald, Oren Zuckerman
2021 conf
CHI Extended Abstracts
Raphael Kim, Pat Pataranutaporn, Jack Forman, Seung Ah Lee, Ingmar H. Riedel-Kruse, Mirela Alistar, Eldy S. Lazaro Vasquez, Katia Vega, Roland van Dierendonck, Gilad Gome, Oren Zuckerman, Angela Vujic, David Sun Kong, Pattie Maes, Hiroshi Ishii, Misha Sra, Stefan Poslad
2021 A* conf
CHI
Oren Zuckerman, Ofir Sadka, Ron Gissin, Hadas Erel
2021 conf
CHI Extended Abstracts
Hadas Erel, Omer Dado, Adi Manor, Oren Zuckerman
2020 A* conf
CHI
Oren Zuckerman, Dina Walker, Andrey Grishko, Tal Moran, Chen Levy, Barak Lisak, Iddo Yehoshua Wald, Hadas Erel
2020 J jnl
Sensors
Tal Krasovsky, Patrice L. Weiss, Oren Zuckerman, Avihay Bar, Tal Keren-Capelovitch, Jason Friedman
2020 A conf
Conference on Designing Interactive Systems (Companion Volume)
Andrey Grishko, Iddo Yehoshua Wald, Hadas Erel, Oren Zuckerman
2020 conf
IDC (Extended Abstracts)
Yuval Fein, Gilad Gome, Oren Zuckerman, Hadas Erel
2020 conf
IDC (Extended Abstracts)
Hadas Erel, Nadav Viduchinsky, Oren Zuckerman
2020 conf
CHI Extended Abstracts
Ofir Sadka, Jonathan Giron, Doron Friedman, Oren Zuckerman, Hadas Erel
2019 conf
CSCL
Yael Kali, Iris Tabak, Dani Ben-Zvi, Christopher Hoadley, Hava Ben-Horin, Dror Angel, Keren Aridor, Osnat Atias, Ayelet Baram-Tsabari, Maya Benichou, Oren Golan, Yaela Golumbic, Yotam Hod, Carmel Kent, Adi Kidron, Hana Manor, Nakhi Mishol-Shauli, Carmit Pion, Sheizaf Rafaeli, Amit Rechavi, Malka Shacham, Amit M. Schejter, Noam Tirosh, Patrice L. Weiss, Oren Zuckerman
2019 A* conf
CHI
Tom Hitron, Yoav Orlev, Iddo Wald, Ariel Shamir, Hadas Erel, Oren Zuckerman
2019 A* conf
CHI
Netta Ofer, Idan David, Hadas Erel, Oren Zuckerman
2019 J jnl
Comput. Hum. Behav.
Inbal Deutsch, Hadas Erel, Michal Paz, Guy Hoffman, Oren Zuckerman
2019 conf
CHI Extended Abstracts
Gilad Gome, Yuval Fein, Julian Waksberg, Yuval Maayan, Andrey Grishko, Iddo Yehoshua Wald, Oren Zuckerman
2019 conf
CHI Extended Abstracts
Carolina Fuentes, Martin Porcheron, Joel E. Fischer, Enrico Costanza, Nervo Verdezoto, Valeria Herskovic, Oren Zuckerman, Leila Takayama
2019 B conf
TEI
Gilad Gome, Julian Waksberg, Andrey Grishko, Iddo Yehoshua Wald, Oren Zuckerman
2019 J jnl
CoRR
Carolina Fuentes, Martin Porcheron, Joel E. Fischer, Nervo Verdezoto, Oren Zuckerman, Enrico Costanza, Valeria Herskovic, Leila Takayama
2019 conf
CHI Extended Abstracts
Hadas Erel, Tzachi Shem Tov, Yoav Kessler, Oren Zuckerman
2019 conf
CHI Extended Abstracts
Adam Agassi, Hadas Erel, Iddo Yehoshua Wald, Oren Zuckerman
2019 conf
CHI Extended Abstracts
Lars Erik Holmquist, Oren Zuckerman, Rafael Ballagas, Hiroshi Ishii, Kimiko Ryokai, Haiyan Zhang
2018 Misc conf
IDC
Netta Ofer, Hadas Erel, Idan David, Tom Hitron, Oren Zuckerman
2018 A* conf
CHI
Tom Hitron, Idan David, Netta Ofer, Andrey Grishko, Iddo Yehoshua Wald, Hadas Erel, Oren Zuckerman
2018 Misc conf
IDC
Tom Hitron, Iddo Wald, Hadas Erel, Oren Zuckerman
2018 Misc conf
IDC
Ofir Sadka, Hadas Erel, Andrey Grishko, Oren Zuckerman
2018 B conf
RO-MAN
Lucy Anderson-Bashan, Benny Megidish, Hadas Erel, Iddo Wald, Guy Hoffman, Oren Zuckerman, Andrey Grishko
2017 A conf
Conference on Designing Interactive Systems (Companion Volume)
Iddo Wald, Yoav Orlev, Andrey Grishko, Oren Zuckerman
2017 conf
HRI (Companion)
Benny Megidish, Oren Zuckerman, Guy Hoffman
2017 A* conf
CHI
Michal Luria, Guy Hoffman, Oren Zuckerman
2017 Misc conf
IDC
Ofir Sadka, Oren Zuckerman
2017 Misc conf
IDC
Aviv Sheriff, Rona Sadan, Yasmin Keats, Oren Zuckerman
2017 Misc conf
IDC
Tom Hitron, Itamar Apelblat, Iddo Wald, Eitan Moriano, Andrey Grishko, Idan David, Avihay Bar, Oren Zuckerman
2016 B conf
TEI
Oren Zuckerman, Tamar Gal, Tal Keren-Capelovitch, Tal Krasovsky, Ayelet Gal-Oz, Patrice L. (Tamar) Weiss
2016 B conf
RO-MAN
Michal Luria, Guy Hoffman, Benny Megidish, Oren Zuckerman, Sung Park
2016 B conf
TEI
Oren Zuckerman, Guy Hoffman, Daphne Kopelman-Rubin, Anat Brunstein Klomek, Noa Shitrit, Yahav Amsalem, Yaron Shlomi
2016 B conf
TEI
David Bar-El, Oren Zuckerman
2016 Misc conf
IDC
David Bar-El, Oren Zuckerman, Yaron Shlomi
2015 B conf
TEI
Oren Zuckerman, Ronit Slyper, Tal Keren-Capelovitch, Ayelet Gal-Oz, Tamar Gal, Patrice L. (Tamar) Weiss
2015 A* conf
HRI
Guy Hoffman, Oren Zuckerman, Gilad Hirschberger, Michal Luria, Tal Shani-Sherman
2015 Misc conf
CHI PLAY
Ayelet Gal-Oz, Oren Zuckerman
2015 B conf
TEI
Oren Zuckerman, Guy Hoffman
2015 Misc conf
IDC
Oren Zuckerman, Ayelet Gal-Oz, Neta Tamir, Daphne Kopelman-Rubin
2015 B conf
MobileHCI
Oren Zuckerman, Ayelet Gal-Oz, Oran Peretz, Orad Weisberg, Ricardo Tarrasch
2015 B conf
TEI
Oren Zuckerman
2014 J jnl
Pers. Ubiquitous Comput.
Oren Zuckerman, Ayelet Gal-Oz
2014 Misc conf
IDC
Ayelet Gal-Oz, Orad Weisberg, Tal Keren-Capelovitch, Yair Uziel, Ronit Slyper, Patrice L. (Tamar) Weiss, Oren Zuckerman
2014 J jnl
Int. J. Child Comput. Interact.
Oren Zuckerman, Guy Hoffman, Ayelet Gal-Oz
2014 Misc conf
IDC
Orad Weisberg, Ayelet Gal-Oz, Ruth Berkowitz, Noa Weiss, Oran Peretz, Shlomi Azoulai, Daphne Kopelman-Rubin, Oren Zuckerman
2014 J jnl
Comput. Hum. Behav.
Yair Amichai-Hamburger, Anat Brunstein Klomek, Doron Friedman, Oren Zuckerman, Tal Shani-Sherman
2013 Misc conf
IDC
Guy Hoffman, Ayelet Gal-Oz, Shlomi David, Oren Zuckerman
2013 J jnl
Int. J. Hum. Comput. Stud.
Oren Zuckerman, Ayelet Gal-Oz
2010 J jnl
Int. J. Arts Technol.
Oren Zuckerman
2006 conf
CHI Extended Abstracts
Susanne Seitinger, Elisabeth Sylvan, Oren Zuckerman, Marko B. Popovic, Orit Zuckerman
2006 conf
CHI Extended Abstracts
Oren Zuckerman, Narcís Parés, Steve Benford, Henrik Hautop Lund
2006 conf
ICLS
Oren Zuckerman, Tina A. Grotzer, Kelly Leahy
2006 conf
CHI Extended Abstracts
Oren Zuckerman, Brygg Ullmer, Lars Erik Holmquist, Hiroshi Ishii, George W. Fitzmaurice, Yvonne Rogers, Wendy E. Mackay, Tom Rodden
2005 conf
CHI Extended Abstracts
Lori L. Scarlatos, Amy S. Bruckman, Allison Druin, Michael Eisenberg, Molly Lenore, Oren Zuckerman
2005 A* conf
CHI
Oren Zuckerman, Saeed Arida, Mitchel Resnick
2005 conf
CHI Extended Abstracts
Glenda Revelle, Oren Zuckerman, Allison Druin, Mark T. Bolas
2004 Misc conf
IDC
Oren Zuckerman, Mitchel Resnick
2003 conf
CHI Extended Abstracts
Oren Zuckerman, Mitchel Resnick
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"