Nees Jan van Eck

123 papers B 1C 2Journal 97Unranked 21
YearRankTypeTitle / Venue / Authors
2026 J jnl
Inf. Process. Manag.
Zhentao Liang, Nees Jan van Eck, Xuehua Wu, Jin Mao, Gang Li
2025 conf
WOOC
Nees Jan van Eck, Bram van den Boomen, Martijn S. Visser
2025 J jnl
CoRR
Lin Zhang, Zhe Cao, Jianhua Liu, Nees Jan van Eck
2025 J jnl
CoRR
Zhentao Liang, Nees Jan van Eck, Xuehua Wu, Jin Mao, Gang Li
2025 J jnl
CoRR
Gege Lin, Nees Jan van Eck, Haiyan Hou, Zhigang Hu
2025 J jnl
Scientometrics
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2024 J jnl
CoRR
Patricia Alonso-Álvarez, Nees Jan van Eck
2024 J jnl
CoRR
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2024 conf
BIR/IR4U2
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2023 J jnl
Scientometrics
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2022 J jnl
CoRR
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2022 J jnl
Quant. Sci. Stud.
Alexis-Michel Mugabushaka, Nees Jan van Eck, Ludo Waltman
2022 J jnl
CoRR
Alexis-Michel Mugabushaka, Nees Jan van Eck, Ludo Waltman
2021 J jnl
CoRR
Ciriaco Andrea D'Angelo, Nees Jan van Eck
2021 J jnl
Quant. Sci. Stud.
Martijn S. Visser, Nees Jan van Eck, Ludo Waltman
2021 J jnl
CoRR
Wout S. Lamers, Kevin W. Boyack, Vincent Larivière, Cassidy R. Sugimoto, Nees Jan van Eck, Ludo Waltman, Dakota S. Murray
2020 J jnl
Quant. Sci. Stud.
Ludo Waltman, Kevin W. Boyack, Giovanni Colavizza, Nees Jan van Eck
2020 conf
BIR@ECIR
Juan Pablo Bascur, Suzan Verberne, Nees Jan van Eck, Ludo Waltman
2020 J jnl
Scientometrics
Ciriaco Andrea D'Angelo, Nees Jan van Eck
2020 J jnl
Quant. Sci. Stud.
Paul Donner, Christine Rimmert, Nees Jan van Eck
2020 J jnl
Quant. Sci. Stud.
Per Ahlgren, Yunwei Chen, Cristian Colliander, Nees Jan van Eck
2020 J jnl
CoRR
Martijn S. Visser, Nees Jan van Eck, Ludo Waltman
2019 J jnl
CoRR
Ludo Waltman, Kevin W. Boyack, Giovanni Colavizza, Nees Jan van Eck
2019 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman
2019 conf
BIR@ECIR
Juan Pablo Bascur, Nees Jan van Eck, Ludo Waltman
2019 conf
ISSI
Per Ahlgren, Yunwei Chen, Cristian Colliander, Nees Jan van Eck
2019 conf
ISSI
Paul Donner, Christine Rimmert, Nees Jan van Eck
2019 ch.
Springer Handbook of Science and Technology Indicators
Ludo Waltman, Nees Jan van Eck
2019 conf
ISSI
Lovro Subelj, Ludo Waltman, Vincent A. Traag, Nees Jan van Eck
2019 conf
ISSI
Martijn S. Visser, Nees Jan van Eck, Ludo Waltman
2019 conf
ISSI
Dakota S. Murray, Wout Lamers, Kevin W. Boyack, Vincent Larivière, Cassidy R. Sugimoto, Nees Jan van Eck, Ludo Waltman
2019 conf
ISSI
Wout S. Lamers, Nees Jan van Eck, Ludo Waltman
2018 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman
2018 J jnl
J. Data Inf. Sci.
Nees Jan van Eck, Ludo Waltman
2018 J jnl
J. Informetrics
Kevin W. Boyack, Nees Jan van Eck, Giovanni Colavizza, Ludo Waltman
2018 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2018 J jnl
CoRR
Vincent A. Traag, Ludo Waltman, Nees Jan van Eck
2018 J jnl
Ethics Inf. Technol.
René Mahieu, Nees Jan van Eck, David van Putten, Jeroen van den Hoven
2018 J jnl
CoRR
Lovro Subelj, Ludo Waltman, Vincent A. Traag, Nees Jan van Eck
2018 J jnl
J. Assoc. Inf. Sci. Technol.
Giovanni Colavizza, Kevin W. Boyack, Nees Jan van Eck, Ludo Waltman
2017 conf
ISSI
Ludo Waltman, Kevin W. Boyack, Giovanni Colavizza, Nees Jan van Eck
2017 conf
ISSI
Nees Jan van Eck, Ludo Waltman
2017 J jnl
CoRR
Kevin W. Boyack, Nees Jan van Eck, Giovanni Colavizza, Ludo Waltman
2017 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman
2017 J jnl
Scientometrics
Nees Jan van Eck, Ludo Waltman
2017 conf
ISSI
Giovanni Colavizza, Kevin W. Boyack, Nees Jan van Eck, Ludo Waltman
2017 conf
ISSI
Kevin W. Boyack, Nees Jan van Eck, Giovanni Colavizza, Ludo Waltman
2017 J jnl
CoRR
Giovanni Colavizza, Kevin W. Boyack, Nees Jan van Eck, Ludo Waltman
2017 J jnl
Scientometrics
Kevin W. Boyack, Wolfgang Glänzel, Jochen Gläser, Frank Havemann, Andrea Scharnhorst, Bart Thijs, Nees Jan van Eck, Theresa Velden, Ludo Waltman
2017 conf
ISSI
Nees Jan van Eck, Ludo Waltman, Min Song, Yoo Kyung Jeong
2016 J jnl
CoRR
Antonio Perianes-Rodríguez, Ludo Waltman, Nees Jan van Eck
2016 J jnl
J. Informetrics
Antonio Perianes-Rodríguez, Ludo Waltman, Nees Jan van Eck
2016 J jnl
J. Assoc. Inf. Sci. Technol.
Marlies Olensky, Marion Schmidt, Nees Jan van Eck
2016 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Martijn S. Visser, Paul Wouters
2016 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck, Martijn S. Visser, Paul Wouters
2015 J jnl
CoRR
Lovro Subelj, Nees Jan van Eck, Ludo Waltman
2015 J jnl
CoRR
Marlies Olensky, Marion Schmidt, Nees Jan van Eck
2015 conf
ISSI
Ludo Waltman, Nees Jan van Eck
2015 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2015 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck
2014 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman
2014 J jnl
J. Informetrics
Nees Jan van Eck, Ludo Waltman
2014 conf
BIR@ECIR
Nees Jan van Eck, Ludo Waltman
2013 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2013 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2013 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck
2013 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Paul Wouters
2013 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck, Paul Wouters
2013 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser
2013 J jnl
Scientometrics
Ludo Waltman, Nees Jan van Eck
2012 J jnl
Soft Comput.
Ludo Waltman, Nees Jan van Eck
2012 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2012 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Nees Jan van Eck
2012 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman, Anthony F. J. van Raan, Robert J. M. Klautz, Wilco C. Peul
2012 J jnl
CoRR
Robert J. W. Tijssen, Ludo Waltman, Nees Jan van Eck
2012 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser
2012 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2012 J jnl
CoRR
Ludo Waltman, Clara Calero-Medina, Joost Kosten, Ed C. M. Noyons, Robert J. W. Tijssen, Nees Jan van Eck, Thed N. van Leeuwen, Anthony F. J. van Raan, Martijn S. Visser, Paul Wouters
2012 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Clara Calero-Medina, Joost Kosten, Ed C. M. Noyons, Robert J. W. Tijssen, Nees Jan van Eck, Thed N. van Leeuwen, Anthony F. J. van Raan, Martijn S. Visser, Paul Wouters
2012 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Nees Jan van Eck
2012 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Nees Jan van Eck, Anthony F. J. van Raan
2011 J jnl
CoRR
Ludo Waltman, Erjia Yan, Nees Jan van Eck
2011 J jnl
Scientometrics
Ludo Waltman, Erjia Yan, Nees Jan van Eck
2011 J jnl
CoRR
Ludo Waltman, Robert J. W. Tijssen, Nees Jan van Eck
2011 J jnl
J. Informetrics
Ludo Waltman, Robert J. W. Tijssen, Nees Jan van Eck
2011
Nees Jan van Eck
2011 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2011 J jnl
Scientometrics
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2011 J jnl
Scientometrics
Cathelijn J. F. Waaijer, Cornelis A. van Bochove, Nees Jan van Eck
2011 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman
2011 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2011 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2011 J jnl
Scientometrics
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2011 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Anthony F. J. van Raan
2010 J jnl
CoRR
Nees Jan van Eck, Ludo Waltman, Rommert Dekker, Jan van den Berg
2010 J jnl
J. Assoc. Inf. Sci. Technol.
Nees Jan van Eck, Ludo Waltman, Rommert Dekker, Jan van den Berg
2010 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Ed C. M. Noyons
2010 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck, Ed C. M. Noyons
2010 J jnl
Scientometrics
Nees Jan van Eck, Ludo Waltman, Ed C. M. Noyons, R. K. Buter
2010 J jnl
CoRR
Anthony F. J. van Raan, Thed N. van Leeuwen, Martijn S. Visser, Nees Jan van Eck, Ludo Waltman
2010 J jnl
J. Informetrics
Anthony F. J. van Raan, Thed N. van Leeuwen, Martijn S. Visser, Nees Jan van Eck, Ludo Waltman
2010 J jnl
Scientometrics
Nees Jan van Eck, Ludo Waltman
2010 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck
2010 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Nees Jan van Eck
2010 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2010 J jnl
CoRR
Ludo Waltman, Nees Jan van Eck, Thed N. van Leeuwen, Martijn S. Visser, Anthony F. J. van Raan
2009 J jnl
J. Assoc. Inf. Sci. Technol.
Nees Jan van Eck, Ludo Waltman
2009 J jnl
J. Informetrics
Nees Jan van Eck, Ludo Waltman
2009 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck
2008 J jnl
Comput. Oper. Res.
Nees Jan van Eck, Michiel C. van Wezel
2008 J jnl
J. Assoc. Inf. Sci. Technol.
Nees Jan van Eck, Ludo Waltman
2008 C conf
IV
Nees Jan van Eck, Flavius Frasincar, Dwain Chang
2008 J jnl
J. Informetrics
Nees Jan van Eck, Ludo Waltman
2008 J jnl
J. Informetrics
Ludo Waltman, Nees Jan van Eck
2007 J jnl
Int. J. Uncertain. Fuzziness Knowl. Based Syst.
Nees Jan van Eck, Ludo Waltman
2007 conf
MCDM
Ankit Soni, Nees Jan van Eck, Uzay Kaymak
2007 J jnl
J. Assoc. Inf. Sci. Technol.
Ludo Waltman, Nees Jan van Eck
2006 conf
GfKl
Nees Jan van Eck, Ludo Waltman
2006 C conf
IV
Nees Jan van Eck, Flavius Frasincar, Jan van den Berg
2006 B conf
FUZZ-IEEE
Nees Jan van Eck, Ludo Waltman, Jan van den Berg, Uzay Kaymak
2006 J jnl
IEEE Comput. Intell. Mag.
Nees Jan van Eck, Ludo Waltman, Jan van den Berg, Uzay Kaymak
2005 conf
BNAIC
Nees Jan van Eck, Ludo Waltman, Jan van den Berg
2005 conf
DEXA Workshops
Nees Jan van Eck, Ludo Waltman, Jan van den Berg
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"