Kaiyan Zhao

32 papers A* 8Journal 21Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Kaiyan Zhao, Zheyong Xie, Zhongtao Miao, Xinze Lyu, Yao Hu, Shaosheng Cao
2026 A* conf
AAAI
Yiming Wang, Kaiyan Zhao, Ming Yang, Yan Li, Furui Liu, Jiayu Chen, Leong Hou U
2026 J jnl
CoRR
Shengrui Li, Fei Zhao, Kaiyan Zhao, Jieying Ye, Haifeng Liu, Fangcheng Shi, Zheyong Xie, Yao Hu, Shaosheng Cao
2026 J jnl
CoRR
Kaiyan Zhao, Zijie Meng, Zheyong Xie, Jin Duan, Yao Hu, Zuozhu Liu, Shaosheng Cao
2026 A* conf
AAAI
Yiming Wang, Kaiyan Zhao, Xu Li, Yan Li, Jiayu Chen, Steven Morad, Leong Hou U
2026 J jnl
Knowl. Based Syst.
Tao Zhong, Kaiyan Zhao, Steve Drew, Xiaoguang Niu
2026 J jnl
CoRR
Shiqin Wang, Haoyang Chen, Huaizhou Huang, Yinkan He, Dongfang Sun, Xiaoqing Chen, Xingyu Liu, Zheng Wang, Kaiyan Zhao
2026 A* conf
AAAI
Yiming Wang, Kaiyan Zhao, Borong Zhang, Yan Li, Leong Hou U
2026 J jnl
CoRR
Zhongtao Miao, Kaiyan Zhao, Masaaki Nagata, Yoshimasa Tsuruoka
2026 A* conf
AAAI
XueTao Li, Wenke Huang, Nengyuan Pan, Kaiyan Zhao, Songhua Yang, Yiming Wang, Mengde Li, Mang Ye, Jifeng Xuan, Miao Li
2026 J jnl
CoRR
XueTao Li, Pinhan Fu, Wenke Huang, Nengyuan Pan, Songhua Yang, Kaiyan Zhao, Guancheng Wan, Mengde Li, Jifeng Xuan, Miao Li
2025 A* conf
IJCAI
Yiming Wang, Kaiyan Zhao, Yan Li, Leong Hou U
2025 J jnl
IEEE Trans. Reliab.
Xi Luo, Junhui Wang, Lihua Yin, Kaiyan Zhao, Kexiang Qian, Daojuan Zhang, Kai Chen
2025 A* conf
IJCAI
Kaiyan Zhao, Yiming Wang, Yuyang Chen, Yan Li, Leong Hou U, Xiaoguang Niu
2025 A* conf
CVPR
Shaocheng Yan, Yiming Wang, Kaiyan Zhao, Pengcheng Shi, Zhenjun Zhao, Yongjun Zhang, Jiayuan Li
2025 J jnl
CoRR
Kaiyan Zhao, Zhongtao Miao, Yoshimasa Tsuruoka
2025 J jnl
CoRR
XueTao Li, Wenke Huang, Nengyuan Pan, Kaiyan Zhao, Songhua Yang, Yiming Wang, Mengde Li, Mang Ye, Jifeng Xuan, Miao Li
2024 conf
ICONIP (7)
Haoning Wu, Kaiyan Zhao, Shaowu Wu, Xiaoping Wu, Xiaoguang Niu
2024 J jnl
IEEE Trans. Netw. Serv. Manag.
Xi Luo, Honghui Fan, Lihua Yin, Shijie Jia, Kaiyan Zhao, Hongyu Yang
2024 J jnl
CoRR
Kaiyan Zhao, Tsuguchika Tabaru, Kenichi Kobayashi, Takumi Honda, Masafumi Yamazaki, Yoshimasa Tsuruoka
2024 J jnl
CoRR
Kaiyan Zhao, Yiming Wang, Yuyang Chen, Xiaoguang Niu, Yan Li, Leong Hou U
2024 conf
NAACL-HLT (Findings)
Zhongtao Miao, Qiyu Wu, Kaiyan Zhao, Zilong Wu, Yoshimasa Tsuruoka
2024 J jnl
CoRR
Zhongtao Miao, Qiyu Wu, Kaiyan Zhao, Zilong Wu, Yoshimasa Tsuruoka
2024 J jnl
CoRR
Yuyang Chen, Kaiyan Zhao, Yiming Wang, Ming Yang, Jian Zhang, Xiaoguang Niu
2024 J jnl
CoRR
Zhongtao Miao, Kaiyan Zhao, Yoshimasa Tsuruoka
2024 conf
EACL (1)
Kaiyan Zhao, Qiyu Wu, Xin-Qiang Cai, Yoshimasa Tsuruoka
2024 A* conf
NeurIPS
Yiming Wang, Kaiyan Zhao, Furui Liu, Leong Hou U
2024 J jnl
Auton. Agents Multi Agent Syst.
Ming Yang, Kaiyan Zhao, Yiming Wang, Renzhi Dong, Yali Du, Furui Liu, Mingliang Zhou, Leong Hou U
2023 J jnl
Math. Comput. Simul.
Jin Li, Xiaoning Su, Kaiyan Zhao
2023 J jnl
CoRR
Kaiyan Zhao, Qiyu Wu, Xin-Qiang Cai, Yoshimasa Tsuruoka
2023 J jnl
J. Intell. Fuzzy Syst.
Zihang He, Kaiyan Zhao, Bohan Li, Yong Li
2022 J jnl
Proc. VLDB Endow.
Tsz Nam Chan, Pak Lon Ip, Kaiyan Zhao, Leong Hou U, Byron Choi, Jianliang Xu
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"