Vincent Van Asch

15 papers B 3Misc 2Journal 3Unranked 7
YearRankTypeTitle / Venue / Authors
2016 J jnl
CoRR
Vincent Van Asch, Walter Daelemans
2014 conf
SLSP
Mathias Verbeke, Vincent Van Asch, Walter Daelemans, Luc De Raedt
2012 conf
EMNLP-CoNLL
Mathias Verbeke, Vincent Van Asch, Roser Morante, Paolo Frasconi, Walter Daelemans, Luc De Raedt
2012 conf
CLEF (Online Working Notes/Labs/Workshop)
Claudia Peersman, Frederik Vaassen, Vincent Van Asch, Walter Daelemans
2011 J jnl
J. Biomed. Semant.
Dietrich Rebholz-Schuhmann, Antonio Jimeno-Yepes, Chen Li, Senay Kafkas, Ian Lewin, Ning Kang, Peter T. Corbett, David Milward, Ekaterina Buyko, Elena Beisswanger, Kerstin Hornbostel, Alexandre Kouznetsov, René Witte, Jonas B. Laurila, Christopher J. O. Baker, Cheng-Ju Kuo, Simon Clematide, Fabio Rinaldi, Richárd Farkas, György Móra, Kazuo Hara, Laura Inés Furlong, Michael Rautschka, Mariana L. Neves, Alberto D. Pascual-Montano, Qi Wei, Nigel Collier, Md. Faisal Mahbub Chowdhury, Alberto Lavelli, Rafael Berlanga Llavori, Roser Morante, Vincent Van Asch, Walter Daelemans, José Luís Marina, Erik M. van Mulligen, Jan A. Kors, Udo Hahn
2011 B conf
ILP
Mathias Verbeke, Paolo Frasconi, Vincent Van Asch, Roser Morante, Walter Daelemans, Luc De Raedt
2010 conf
Semantic Mining in Biomedicine
Dietrich Rebholz-Schuhmann, Antonio Jimeno-Yepes, Chen Li, Senay Kafkas, Ian Lewin, Ning Kang, Peter T. Corbett, David Milward, Ekaterina Buyko, Elena Beisswanger, Kerstin Hornbostel, Alexandre Kouznetsov, René Witte, Jonas B. Laurila, Christopher J. O. Baker, Cheng-Ju Kuo, Simon Clematide, Fabio Rinaldi, Richárd Farkas, György Móra, Kazuo Hara, Laura Inés Furlong, Michael Rautschka, Mariana L. Neves, Alberto D. Pascual-Montano, Qi Wei, Nigel Collier, Md. Faisal Mahbub Chowdhury, Alberto Lavelli, Rafael Berlanga Llavori, Roser Morante, Vincent Van Asch, Walter Daelemans, José Luís Marina, Erik M. van Mulligen, Jan A. Kors, Udo Hahn
2010 J jnl
BMC Bioinform.
Thomas Abeel, Sofie Van Landeghem, Roser Morante, Vincent Van Asch, Yves Van de Peer, Walter Daelemans, Yvan Saeys
2010 conf
CoNLL Shared Task
Roser Morante, Vincent Van Asch, Walter Daelemans
2009 conf
BioNLP@HLT-NAACL (Shared Task)
Roser Morante, Vincent Van Asch, Walter Daelemans
2009 Misc conf
RANLP
Roser Morante, Vincent Van Asch, Antal van den Bosch
2009 conf
CoNLL Shared Task
Roser Morante, Vincent Van Asch, Antal van den Bosch
2009 Misc conf
RANLP
Vincent Van Asch, Walter Daelemans
2008 B conf
CoNLL
Roser Morante, Walter Daelemans, Vincent Van Asch
2008 B conf
INLG
Iris Hendrickx, Walter Daelemans, Kim Luyckx, Roser Morante, Vincent Van Asch
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"