Xiangui Kang

139 papers A* 4A 6B 9C 18Misc 13Journal 60Unranked 29
YearRankTypeTitle / Venue / Authors
2026 J jnl
Mach. Intell. Res.
Ziqiang He, Jun Wang, Xiangui Kang, Z. Jane Wang
2026 J jnl
CoRR
Li'an Zhong, Ziqiang He, Jibin Zheng, Jin Li, Z. Jane Wang, Xiangui Kang
2026 J jnl
CoRR
Zhe Ye, Xiangui Kang, Jiayi He, Chengxin Chen, Wei Zhu, Kai Wu, Yin Yang, Jiwu Huang
2026 J jnl
IEEE Trans. Big Data
Rongxin Tu, Xiangui Kang, Chee Wei Tan, Chi-Hung Chi, Kwok-Yan Lam
2025 J jnl
CoRR
Jin Li, Ziqiang He, Anwei Luo, Jian-Fang Hu, Z. Jane Wang, Xiangui Kang
2025 J jnl
IEEE Trans. Inf. Forensics Secur.
Rongxin Tu, Xiangui Kang, Chee-Wei Tan, Chi-Hung Chi, Kwok-Yan Lam
2025 Misc conf
ICASSP
Rui Lu, Ziqiang He, Jingyang Wen, Xiangui Kang, Z. Jane Wang
2025 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Qilang Ye, Zitong Yu, Rui Shao, Yawen Cui, Xiangui Kang, Xin Liu, Philip Torr, Xiaochun Cao
2025 conf
EUSIPCO
Yifang Chen, Tao Mai, Shanshan Wang, Xiangui Kang
2025 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Anwei Luo, Rizhao Cai, Chenqi Kong, Yakun Ju, Xiangui Kang, Jiwu Huang, Alex C. Kot
2025 A* conf
ACM Multimedia
Yingxin Lai, Hongyang Wang, Jing Yang, Xiangui Kang, Bin Li, Linlin Shen, Zitong Yu
2025 Misc conf
ICASSP
Fei Shang, Weixiang Zhao, Xiangui Kang, Z. Jane Wang
2025 J jnl
Int. J. Intell. Syst.
Jianhua Yang, Yi Liao, Fei Shang, Xiangui Kang, Yifang Chen, Yun-Qing Shi
2025 J jnl
Signal Process. Image Commun.
Chao Zhou, Yuan-Gen Wang, Zi-Jia Wang, Xiangui Kang
2025 Misc conf
ICASSP
Jin Li, Zitong Yu, Ziqiang He, Z. Jane Wang, Xiangui Kang
2025 A conf
ICME
Xinlin Leng, Kangyu Hu, Hanlin Gu, Xiangui Kang, Wenyuan Yang
2025 C conf
MMSP
Weixiang Zhao, Fei Shang, Jin Li, Jingyang Wen, Xiangui Kang, Z. Jane Wang
2025 A* conf
AAAI
Zhe Ye, Wenjie Zhang, Ying Ren, Xiangui Kang, Diqun Yan, Bin Ma, Shiqi Wang
2025 J jnl
IEEE Trans. Inf. Forensics Secur.
Zhe Ye, Qiben Yan, Jiahao Chen, Xiangui Kang, Jiwu Huang
2024 A* conf
NeurIPS
Jin Li, Ziqiang He, Anwei Luo, Jian-Fang Hu, Z. Jane Wang, Xiangui Kang
2024 J jnl
IEEE Trans. Inf. Forensics Secur.
Anwei Luo, Chenqi Kong, Jiwu Huang, Yongjian Hu, Xiangui Kang, Alex C. Kot
2024 J jnl
IEEE Signal Process. Lett.
Jicheng Li, Yongjian Hu, Beibei Liu, Zhaolong Gong, Xiangui Kang
2024 J jnl
CoRR
Yingxin Lai, Zitong Yu, Jing Yang, Bin Li, Xiangui Kang, Linlin Shen
2024 conf
DSC
Fei Shang, Weixiang Zhao, Jingyang Wen, Xiangui Kang, Z. Jane Wang
2024 J jnl
CoRR
Chao Zhou, Yuan-Gen Wang, Zi-jia Wang, Xiangui Kang
2024 J jnl
CoRR
Jin Li, Zitong Yu, Ziqiang He, Z. Jane Wang, Xiangui Kang
2024 J jnl
IEEE Trans. Inf. Forensics Secur.
Yuewang He, Xiangui Kang, Qiben Yan, Enping Li
2024 A conf
ICME
Kangze Xu, Ziqiang He, Xiangui Kang, Z. Jane Wang
2023 A conf
ICME
Pengcheng Su, Rongxin Tu, Hongmei Liu, Yue Qing, Xiangui Kang
2023 J jnl
IEEE Trans. Dependable Secur. Comput.
Jie Wang, Xuemei Yin, Yifang Chen, Jiwu Huang, Xiangui Kang
2023 J jnl
CoRR
Anwei Luo, Chenqi Kong, Jiwu Huang, Yongjian Hu, Xiangui Kang, Alex C. Kot
2023 Misc conf
ICASSP
Anjie Peng, Zhi Lin, Hui Zeng, Wenxin Yu, Xiangui Kang
2023 J jnl
IEEE Signal Process. Lett.
Bingyuan Huang, Sanshuai Cui, Jiwu Huang, Xiangui Kang
2023 Misc conf
ICASSP
Xiangui Kang, Pengcheng Su, Zisheng Huang, Yifang Chen, Jie Wang
2023 J jnl
CoRR
Anwei Luo, Rizhao Cai, Chenqi Kong, Xiangui Kang, Jiwu Huang, Alex C. Kot
2023 A* conf
AAAI
Yuhang Lan, Fei Shang, Jianhua Yang, Xiangui Kang, Enping Li
2023 J jnl
Neural Networks
Fei Shang, Yuhang Lan, Jianhua Yang, Enping Li, Xiangui Kang
2023 A conf
ICME
Bingyuan Huang, Sanshuai Cui, Xiangui Kang, Enping Li
2022 J jnl
Comput. Secur.
Jianyuan Wu, Tianyao Tong, Yifang Chen, Xiangui Kang, Wei Sun
2022 J jnl
IEEE Signal Process. Lett.
Da Lin, Yuan-Gen Wang, Weixuan Tang, Xiangui Kang
2022 conf
ICAIS (3)
Jiangqun Ni, Yichen Tong, Xianglei Hu, Wenkang Su, Xiangui Kang
2022 J jnl
IEEE Signal Process. Lett.
Sanshuai Cui, Bingyuan Huang, Jiwu Huang, Xiangui Kang
2021 Misc conf
ICASSP
Anwei Luo, Enlei Li, Yongliang Liu, Xiangui Kang, Z. Jane Wang
2021 Misc conf
ICASSP
Xiaoqing Jia, Jie Wang, Yongliang Liu, Xiangui Kang, Yun-Qing Shi
2021 J jnl
Multim. Syst.
Jianyuan Wu, Xiangui Kang, Jianhua Yang, Wei Sun
2021 conf
APSIPA ASC
Zhenhua Qu, Ziqiang He, Xiangui Kang
2021 B conf
ICIP
Yingbin Zhou, Anwei Luo, Xiangui Kang, Siwei Lyu
2021 J jnl
CoRR
Jianhua Yang, Yi Liao, Fei Shang, Xiangui Kang, Yun Qing Shi
2021 J jnl
IEEE Trans. Inf. Forensics Secur.
Jian Yu, Yuewang He, Qiben Yan, Xiangui Kang
2020 conf
APSIPA
Jianyuan Wu, Li Liu, Xiangui Kang, Wei Sun
2020 J jnl
IEEE Trans. Inf. Forensics Secur.
Jianhua Yang, Danyang Ruan, Jiwu Huang, Xiangui Kang, Yun-Qing Shi
2020 Misc conf
ICASSP
Jianhua Yang, Huilin Zheng, Xiangui Kang, Yun-Qing Shi
2020 A conf
ICME
Yujun Wei, Yifang Chen, Xiangui Kang, Z. Jane Wang, Liang Xiao
2020 J jnl
IEEE J. Sel. Top. Signal Process.
Yifang Chen, Zheng Wang, Z. Jane Wang, Xiangui Kang
2020 A conf
ICME
Sanshuai Cui, Enlei Li, Xiangui Kang
2020 conf
APSIPA
Zheng Wang, Sanshuai Cui, Xiangui Kang, Wei Sun, Zhonghua Li
2020 conf
IFIP Int. Conf. Digital Forensics
Maoyu Mao, Zhongcheng Xiao, Xiangui Kang, Xiang Li, Liang Xiao
2020 J jnl
Neural Process. Lett.
Chaowei Hu, Yunong Zhang, Xiangui Kang
2020 conf
ICAIS (2)
Hui Zeng, Anjie Peng, Xiangui Kang
2020 C conf
IH&MMSec
Jianhua Yang, Beiling Lu, Liang Xiao, Xiangui Kang, Yunqing Shi
2020 conf
ICACI
Zhenyu Li, Min Yang, Yunong Zhang, Chaowei Hu, Xiangui Kang
2019 J jnl
IEEE Access
Jie Wang, Xiaoqing Jia, Xiangui Kang, Yun-Qing Shi
2019 J jnl
Int. J. Digit. Crime Forensics
Anjie Peng, Gao Yu, Yadong Wu, Qiong Zhang, Xiangui Kang
2019 J jnl
J. Real Time Image Process.
Yifang Chen, Xiangui Kang, Yun Q. Shi, Z. Jane Wang
2019 J jnl
IEEE Access
Shenghai Luo, Anjie Peng, Hui Zeng, Xiangui Kang, Li Liu
2019 C conf
VCIP
Yifang Chen, Feng Peng, Xiangui Kang, Z. Jane Wang
2019 C conf
IWDW
Zhongliang Yang, Ke Wang, Sai Ma, Yongfeng Huang, Xiangui Kang, Xianfeng Zhao
2019 J jnl
CoRR
Zhongliang Yang, Ke Wang, Sai Ma, Yongfeng Huang, Xiangui Kang, Xianfeng Zhao
2019 J jnl
Multim. Tools Appl.
Jianhua Yang, Xiangui Kang, Edward K. Wong, Yun-Qing Shi
2019 conf
APSIPA
Jianyuan Wu, Zheng Wang, Hui Zeng, Xiangui Kang
2019 conf
ICSAI
Xiao Liu, Chaowei Hu, Xiangui Kang, Mingzhi Mao, Yunong Zhang, Binbin Qiu
2019 C conf
IH&MMSec
Jianhua Yang, Danyang Ruan, Xiangui Kang, Yun-Qing Shi
2018 Misc conf
ICASSP
Yifang Chen, Zi Xian Lyu, Xiangui Kang, Z. Jane Wang
2018 conf
EUSIPCO
Yingmin Luo, Hanqi Zi, Qiong Zhang, Xiangui Kang
2018 C conf
IWDW
Huilin Zheng, Xuan Li, Danyang Ruan, Xiangui Kang, Yun-Qing Shi
2018 J jnl
Sci. China Inf. Sci.
Hui Zeng, Jingjing Yu, Xiangui Kang, Siwei Lyu
2018 conf
APSIPA
Jianhua Yang, Xiangui Kang, Edward K. Wong, Yun-Qing Shi
2018 C conf
IH&MMSec
Yifang Chen, Xiangui Kang, Z. Jane Wang, Qiong Zhang
2018 conf
WIFS
Lihua Wang, Huixin Liang, Xiaodan Lin, Xiangui Kang
2018 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Xiaodan Lin, Xiangui Kang
2018 J jnl
CoRR
Jianhua Yang, Kai Liu, Xiangui Kang, Edward K. Wong, Yun-Qing Shi
2018 conf
APSIPA
Hanqi Zi, Qiong Zhang, Jianhua Yang, Xiangui Kang
2018 J jnl
Neurocomputing
Chaowei Hu, Xiangui Kang, Yunong Zhang
2017 J jnl
IEEE Trans. Cybern.
Hui Zeng, Jingxian Liu, Jingjing Yu, Xiangui Kang, Yun Qing Shi, Z. Jane Wang
2017 conf
IWSSIP
Kai Liu, Jianhua Yang, Xiangui Kang
2017 J jnl
Digit. Signal Process.
Xiaodan Lin, Xiangui Kang
2017 C conf
IH&MMSec
Yifeng Zhan, Yifang Chen, Qiong Zhang, Xiangui Kang
2017 J jnl
Multim. Tools Appl.
Hui Zeng, Yifeng Zhan, Xiangui Kang, Xiaodan Lin
2017 J jnl
CoRR
Jianhua Yang, Yun-Qing Shi, Edward K. Wong, Xiangui Kang
2017 conf
APSIPA
Kai Liu, Xuan Li, Qiong Zhang, Xiangui Kang
2017 conf
GlobalSIP
Huixin Liang, Xiaodan Lin, Qiong Zhang, Xiangui Kang
2017 J jnl
Adv. Multim.
Anjie Peng, Yadong Wu, Xiangui Kang
2017 C conf
IWDW
Jianhua Yang, Kai Liu, Xiangui Kang, Edward K. Wong, Yunqing Shi
2017 Misc conf
ICASSP
Xiaodan Lin, Xiangui Kang
2017 conf
ICNC-FSKD
Chaowei Hu, Dongsheng Guo, Xiangui Kang, Yunong Zhang
2016 C conf
IWDW
Jingjing Yu, Yifeng Zhan, Jianhua Yang, Xiangui Kang
2016 J jnl
Neurocomputing
Hui Zeng, Xiangui Kang, Anjie Peng
2016 J jnl
IEEE Trans. Multim.
Xiaodan Lin, Jingxian Liu, Xiangui Kang
2016 conf
APSIPA
Jingxian Liu, Xiangui Kang
2016 J jnl
Multim. Tools Appl.
Xiangui Kang, Jingxian Liu, Hongmei Liu, Z. Jane Wang
2016 B conf
ICIP
Gongbo Liang, Qi Li, Xiangui Kang
2015 B conf
ICIP
Anjie Peng, Hui Zeng, Xiaodan Lin, Xiangui Kang
2015 conf
ChinaSIP
Xiangui Kang, Tengfei Qin, Hui Zeng
2015 J jnl
IEEE Signal Process. Lett.
Jiansheng Chen, Xiangui Kang, Ye Liu, Z. Jane Wang
2015 B conf
ICIP
Hui Zeng, Jiansheng Chen, Xiangui Kang, Wenjun Zeng
2014 J jnl
EURASIP J. Image Video Process.
Xiangui Kang, Jiansheng Chen, Kerui Lin, Anjie Peng
2014 Misc conf
ICASSP
Hui Zeng, Tengfei Qin, Xiangui Kang, Li Liu
2014 Misc conf
ICNC
Chaowei Hu, Ying Wang, Xiangui Kang, Dongsheng Guo, Yunong Zhang
2013 C conf
IWDW
Hui Zeng, Xiangui Kang
2013 conf
ChinaSIP
Xiaochun Cao, Siyuan Li, Feng Jiang, Hua Zhang, Ling Du, Xiangui Kang
2013 Misc conf
ICASSP
Zhenhua Qu, Xiangui Kang, Jiwu Huang, Yinxiang Li
2013 conf
APSIPA
Hui Zeng, Yunwen Jiang, Xiangui Kang, Li Liu
2013 B conf
ICIP
Hui Zeng, Xiangui Kang, Jiwu Huang
2013 J jnl
EURASIP J. Image Video Process.
Xiangui Kang, Anjie Peng, Xianyu Xu, Xiaochun Cao
2013 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiangui Kang, Matthew C. Stamm, Anjie Peng, K. J. Ray Liu
2013 conf
APSIPA
Yunwen Jiang, Hui Zeng, Xiangui Kang, Li Liu
2012 B conf
ICIP
Guangdong Wu, Xiangui Kang, K. J. Ray Liu
2012 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiangui Kang, Yinxiang Li, Zhenhua Qu, Jiwu Huang
2012 C conf
IWDW
Anjie Peng, Xiangui Kang
2012 conf
APSIPA
Xiangui Kang, Matthew C. Stamm, Anjie Peng, K. J. Ray Liu
2012 B conf
DCC
Xiangui Kang, Xianyu Xu, Anjie Peng, Wenjun Zeng
2011 conf
Media Forensics and Security
Xiangui Kang, Yinxiang Li, Zhenhua Qu, Jiwu Huang
2011 J jnl
IEEE Trans. Multim.
Xiangui Kang, Rui Yang, Jiwu Huang
2010 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiangui Kang, Jiwu Huang, Wenjun Zeng
2009 J jnl
Sci. China Ser. F Inf. Sci.
Xiangui Kang, Jiwu Huang, Wenjun Zeng, Yun Q. Shi
2008 J jnl
Int. J. Netw. Secur.
Xiangui Kang, Wenjun Zeng, Jiwu Huang
2008 C conf
IWDW
Yongping Zhang, Xiangui Kang, Philipp Zhang
2008 B conf
ICIP
Xiangui Kang, Xiong Zhong, Jiwu Huang, Wenjun Zeng
2008 J jnl
IEEE Trans. Multim.
Xiangui Kang, Jiwu Huang, Wenjun Zeng
2008 C conf
IWDW
Rui Yang, Xiangui Kang, Jiwu Huang
2007 conf
Security, Steganography, and Watermarking of Multimedia Contents
Xiangui Kang, Chunhui Liu, Wenjun Zeng, Jiwu Huang, Congbai Liu
2006 conf
Security, Steganography, and Watermarking of Multimedia Contents
Xiangui Kang, Yun Q. Shi, Jiwu Huang
2006 conf
PCM
Xiangui Kang, Junqiang Lan, Li Liu, Xinhua Zhuang
2005 C conf
IWDW
Xiangui Kang, Yun Q. Shi, Jiwu Huang, Wenjun Zeng
2005 C conf
MMSP
Xinhua Zhuang, Xiangui Kang, Li Liu, Junqiang Lan, Guang Zhou, Guangdong Wu
2004 B conf
ICIP
Xiangui Kang, Jiwu Huang, Yun Q. Shi
2003 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Xiangui Kang, Jiwu Huang, Yun Q. Shi, Yan Lin
2003 C conf
IWDW
Xiangui Kang, Jiwu Huang, Yun Q. Shi, Jianxiang Zhu
2002 C conf
IWDW
Xiangui Kang, Jiwu Huang, Yun Q. Shi
sql/redb_js_tables.sql
← Index sql/redb_js_tables.sql sql
-- JavaScript malware analysis tables
-- Engine: ReplacingMergeTree(analysis_date) — latest analysis wins on re-processing
--
-- File order:
--   1. redb_js_features
--   2. redb_js_suspicious_apis
--   3. redb_js_deobfuscation
--   4. code_text_content              (generic text-content table; JS today,
--                                      PowerShell / Python / email / extracted
--                                      PDF / Office text in the future)
--   5. redb_iocs source_type ALTER    (extends Enum8 with text_raw/text_normalized
--                                      so JS — and any future text-based pipeline —
--                                      can distinguish IOCs found in the raw vs
--                                      normalised surface)
--   6. redb_iocs ioc_type ALTER       (adds registry_key=42 so HKLM/HKCU/HKEY_*
--                                      keys are extracted alongside file paths)
--
-- Decoded strings from JS still go into the shared code_binja_strings_raw
-- table (same schema used by DecompileBinja and DecompileAPK). JS
-- string_encoding values: hex, unicode, charcode, base64, concat. Plain long
-- literals are not extracted here — they're already in code_text_content and
-- scraped by the IOC pipeline over text_raw/text_normalized.
-- string_offset is the line number in the source file.
--
-- redb_js_features.script_type values (file format / container, first match):
--   jse, wsf, hta, embedded_html, wscript, esm, node_module, standalone, unknown
-- redb_js_features.detected_environment values (runtime by API surface, first
-- match):
--   wscript, browser_extension, service_worker, deno, node, browser, unknown

-- 1. Core features & obfuscation metrics (1 row per sample)
CREATE TABLE IF NOT EXISTS redb_js_features (
    sha256 FixedString(64),
    line_count UInt32,
    char_count UInt64,
    text_entropy Float64,
    max_line_length UInt32,
    avg_line_length Float64,
    is_minified UInt8,
    is_likely_obfuscated UInt8,
    obfuscator_name LowCardinality(String),
    obfuscation_score UInt8,
    obfuscation_techniques Array(String),
    eval_count UInt32,
    function_constructor_count UInt32,
    settimeout_setinterval_count UInt32,
    document_write_count UInt32,
    innerhtml_count UInt32,
    unescape_count UInt32,
    fromcharcode_count UInt32,
    atob_count UInt32,
    decodeuri_count UInt32,
    total_function_count UInt32,
    total_variable_count UInt32,
    max_nesting_depth UInt16,
    avg_identifier_length Float64,
    hex_string_count UInt32,
    unicode_escape_count UInt32,
    long_string_count UInt32,
    base64_string_count UInt32,
    comment_ratio Float64,
    script_type LowCardinality(String),
    detected_environment LowCardinality(String),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 2. Suspicious API calls (multi-row per sample)
--
-- `revealed_by_deobf` is 1 when the API only appears after the deobfuscation
-- pass (i.e. the call site is hidden in the raw artefact and surfaces only in
-- text_normalized). Useful for filtering "what did normalisation actually
-- buy us" without re-running the diff.
CREATE TABLE IF NOT EXISTS redb_js_suspicious_apis (
    sha256 FixedString(64),
    api_name String,
    api_category LowCardinality(String),
    call_count UInt32,
    line_numbers Array(UInt32),
    context_snippet String,
    revealed_by_deobf UInt8,
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY (sha256, api_name);

-- 3. Deobfuscation results (1 row per sample)
CREATE TABLE IF NOT EXISTS redb_js_deobfuscation (
    sha256 FixedString(64),
    deobfuscator_used LowCardinality(String),
    deobfuscation_successful UInt8,
    original_size UInt64,
    deobfuscated_size UInt64,
    size_change_ratio Float64,
    original_entropy Float64,
    deobfuscated_entropy Float64,
    new_strings_found UInt32,
    new_apis_found UInt32,
    deobfuscated_sha256 FixedString(64),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 4. Generic text-content table for any text-based artefact (JS today;
--    PowerShell, Python, plain text, email bodies, extracted PDF/Office text
--    in the future). One row per sha256. content_type carries the magika
--    label so callers can filter without joining other tables.
CREATE TABLE IF NOT EXISTS code_text_content (
    sha256 FixedString(64),
    content_type LowCardinality(String),
    text_raw String CODEC(ZSTD(3)),
    text_normalized Nullable(String) CODEC(ZSTD(3)),
    normalizer_used Nullable(String),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 5. Extend redb_iocs.source_type Enum8 with two universal text-content
--    surfaces: text_raw (the artefact's original text) and text_normalized
--    (a deobfuscated/canonicalised form). Used by the JS IOC extraction
--    pipeline today; any future text-based pipeline (PowerShell, PDF, etc.)
--    plugs into the same two values.
--
-- Existing rows keep their stored integer values; only newly-inserted rows
-- can use 4/5. The MODIFY COLUMN must list the full final enum, including
-- the existing values (1/2/3) — ClickHouse rejects partial alters.
ALTER TABLE redb_iocs
    MODIFY COLUMN source_type
    Enum8('decompiled_function'=1, 'disassembled_function'=2, 'string'=3,
          'text_raw'=4, 'text_normalized'=5);

-- 6. Extend redb_iocs.ioc_type Enum8 with registry_key=42. Windows registry
--    paths (HKLM\..., HKCU\..., HKEY_LOCAL_MACHINE\...) are a distinct class
--    of IOC from filesystem paths and were previously extracted by nothing.
--    Same MODIFY COLUMN constraint as the source_type alter — the full final
--    enum must be listed.
ALTER TABLE redb_iocs
    MODIFY COLUMN ioc_type
    Enum8('ipv4'=1, 'ipv6'=2, 'fqdn'=3, 'url'=4, 'email'=5, 'server'=6,
          'hash_md5'=10, 'hash_sha1'=11, 'hash_sha256'=12,
          'cve'=20, 'cwe'=21, 'cpe'=22,
          'crypto_btc'=30, 'crypto_eth'=31, 'crypto_xrp'=32, 'crypto_bch'=33,
          'crypto_ada'=34, 'crypto_substrate'=35,
          'path_linux'=40, 'path_windows'=41, 'registry_key'=42,
          'onion'=50);

-- 7. Migrate redb_js_features to the two-tier obfuscation verdict.
--    `is_obfuscated` (binary heuristic at score >=40) is renamed to
--    `is_likely_obfuscated` (heuristic at >=60 + ≥1 strong signal, OR
--    js-x-ray flagged the obfuscator family). `obfuscator_name` is the
--    family name reported by @nodesecure/js-x-ray (jsfuck, obfuscator.io,
--    morse, jjencode, freejsobfuscator, ...) or empty when not detected.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE redb_js_features
    RENAME COLUMN is_obfuscated TO is_likely_obfuscated;
ALTER TABLE redb_js_features
    ADD COLUMN IF NOT EXISTS obfuscator_name LowCardinality(String) AFTER is_likely_obfuscated;

-- 8. Harmonise code_text_content column names with redb_iocs.source_type
--    enum values. The enum already uses `text_raw` / `text_normalized` for
--    the surface labels; the table previously stored the same data under
--    `content_raw` / `content_normalized`, forcing every join across the two
--    to translate names. Renaming the columns produces a self-documenting
--    schema where `redb_iocs.source_type='text_raw'` points directly at
--    `code_text_content.text_raw`.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE code_text_content
    RENAME COLUMN content_raw TO text_raw;
ALTER TABLE code_text_content
    RENAME COLUMN content_normalized TO text_normalized;

-- 9. Add revealed_by_deobf flag to redb_js_suspicious_apis. The strings/APIs
--    extractors now scan both the raw source and the deobfuscated text so APIs
--    hidden behind one obfuscation layer (Vjw0rm-style array.join + eval,
--    Dean-Edwards packers, ...) surface in the table. The flag is 1 only when
--    the API was *not* found in the raw source — querying for it isolates
--    "deobf-only" findings without joining redb_js_deobfuscation.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE redb_js_suspicious_apis
    ADD COLUMN IF NOT EXISTS revealed_by_deobf UInt8 AFTER context_snippet;