Xiao Lu

51 papers C 5Journal 41Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Eng. Appl. Artif. Intell.
Yunxia Liu, Xiao Lu, Haixia Wang, Jianqiang Yi, Chengdong Li
2026 J jnl
Knowl. Based Syst.
Qiang Liu, Teng Wang, Zhiguo Zhang, Jun Nie, Xiao Lu, Chunyang Sheng, Shibin Song, Qiaoqiao Sun, Haixia Wang
2026 J jnl
Expert Syst. Appl.
Haixia Wang, Yuqin Chen, Qiang Liu, Mengyu Gao, Xiao Lu, Zhiguo Zhang, Qiulei Dong
2026 J jnl
Eng. Appl. Artif. Intell.
Honghao Liu, Haixia Wang, Xiao Lu, Zhiguo Zhang
2025 J jnl
Expert Syst. Appl.
Yunxia Liu, Xiao Lu, Haixia Wang, Jianqiang Yi, Chengdong Li
2025 J jnl
Autom.
Na Wang, Hongdan Li, Xiao Lu, Xun Li, Huanshui Zhang
2025 J jnl
IEEE Trans. Veh. Technol.
Chunyang Sheng, Hao An, Jun Nie, Haixia Wang, Xiao Lu
2025 J jnl
IET Image Process.
Haixia Wang, Teng Wang, Zhiguo Zhang, Xiao Lu, Qiaoqiao Sun, Shibin Song, Jun Nie
2025 J jnl
Neurocomputing
Jun Nie, Guihua Zhang, Xiao Lu, Haixia Wang, Chunyang Sheng, Lijie Sun
2025 J jnl
Neural Networks
Qiang Liu, Qiulei Dong, Yangyong Zhang, Xiao Lu, Zhiguo Zhang, Yuqin Chen, Huanzhou Shu, Haixia Wang
2024 conf
ASCC
Menghan Dai, Chunyang Sheng, Chen Wang, Xiao Lu, Haixia Wang, Jun Nie
2024 J jnl
Expert Syst. Appl.
Zhiguo Zhang, Luwen Zhang, Huan Zhang, Yimo Guo, Haixia Wang, Xiao Lu
2024 J jnl
IEEE CAA J. Autom. Sinica
Na Wang, Xiao Liang, Hongdan Li, Xiao Lu
2024 J jnl
Axioms
Jun Nie, Lichao Hao, Xiao Lu, Haixia Wang, Chunyang Sheng
2024 J jnl
Expert Syst. Appl.
Muhammad Taimoor, Xiao Lu, Wasif Shabbir, Chunyang Sheng
2024 J jnl
IEEE Geosci. Remote. Sens. Lett.
Qiaoqiao Sun, Yanping Liu, Chunyang Sheng, Haixia Wang, Xiao Lu
2024 J jnl
Neural Comput. Appl.
Yunxia Liu, Wei Peng, Haixia Wang, Chengdong Li, Xiao Lu
2023 J jnl
J. Ambient Intell. Humaniz. Comput.
Muhammad Taimoor, Xiao Lu, Hamid Maqsood, Chunyang Sheng
2023 J jnl
IEEE Internet Things J.
Xiao Lu, Yuli Li, Wei Cui, Haixia Wang
2023 conf
SPCNC
Zhonghao Yin, Haiqing Liu, Xiao Lu
2022 J jnl
Inf. Sci.
Yunxia Liu, Xiao Lu, Wei Peng, Chengdong Li, Haixia Wang
2022 J jnl
Expert Syst. Appl.
Xin Liu, Jinshuai Hu, Haixia Wang, Zhiguo Zhang, Xiao Lu, Chunyang Sheng, Shibin Song, Jun Nie
2022 J jnl
IEEE Signal Process. Lett.
Qiang Liu, Xiao Lu, Qiulei Dong, Yangyong Zhang, Haixia Wang
2022 J jnl
IET Image Process.
Xiao Lu, Haoran Sun, Xiuling Wang, Zhiguo Zhang, Haixia Wang
2021 J jnl
Int. J. Syst. Sci.
Xiao Lu, Ruidong Liu, Chuanzhi Lv, Na Wang, Qiyan Zhang, Haixia Wang, Guilin Zhang, Xiao Liang
2021 J jnl
J. Intell. Fuzzy Syst.
Muhammad Taimoor, Xiao Lu, Wasif Shabbir, Chunyang Sheng, Muhammad Samiuddin
2021 J jnl
Neurocomputing
Haixia Wang, Yehao Sun, Q. M. Jonathan Wu, Xiao Lu, Xiuling Wang, Zhiguo Zhang
2020 C conf
ICARCV
Hongxia Wang, Minyue Fu, Xiao Lu
2020 J jnl
IEEE Access
Chuanzhi Lv, Xiao Liang, Haixia Wang, Xiao Lu
2020 conf
ICCSIP
Shulin Du, Qingchao Wang, Yan Zhao, Fuchun Sun, Xiao Lu, Bin Fang, Shoucheng Hou
2019 J jnl
Complex.
Chunyang Sheng, Haixia Wang, Xiao Lu, Zhiguo Zhang, Wei Cui, Yuxia Li
2019 J jnl
J. Sensors
Haixia Wang, Junliang Li, Wei Cui, Xiao Lu, Zhiguo Zhang, Chunyang Sheng, Qingde Liu
2018 J jnl
Robotics Auton. Syst.
Haixia Wang, Xiao Lu, Chunyang Sheng, Zhiguo Zhang, Wei Cui, Yuxia Li
2018 J jnl
Comput. Math. Methods Medicine
Yulin Zhang, Mao-Xian Zhao, Jionglong Su, Xiao Lu, Kebo Lv
2018 C conf
ICARCV
Xiao Liang, Huanshui Zhang, Juanjuan Xu, Xiao Lu, Haixia Wang
2017 J jnl
IEEE Access
Haixia Wang, Chunyang Sheng, Xiao Lu
2015 J jnl
Ind. Robot
Haixia Wang, Xiao Lu, Zhanyi Hu, Yuxia Li
2013 conf
ROBIO
Haixia Wang, Yuanyuan Ma, Sheng Cheng, Yuxia Li, Xiao Lu, Xuecheng Su
2013 conf
ICCA
Xiao Lu, Jing Chen
2012 J jnl
Ind. Robot
Haixia Wang, Shuhan Shen, Xiao Lu
2012 J jnl
J. Appl. Math.
Xiao Lu, Haixia Wang, Xi Wang
2007 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Xiao Lu, Lihua Xie, Huanshui Zhang, Wei Wang
2007 J jnl
Signal Process.
Huanshui Zhang, Gang Feng, Xiao Lu
2006 C conf
ACC
Xiao Lu, Huanshui Zhang, Wei Wang, Chenghui Zhang
2006 J jnl
IEEE Trans. Signal Process.
Huanshui Zhang, Gang Feng, Guang-Ren Duan, Xiao Lu
2006 C conf
ACC
Xiao Lu, Huanshui Zhang, Wei Wang, Chenghui Zhang
2006 J jnl
Sci. China Ser. F Inf. Sci.
Xiao Lu, Wei Wang
2006 J jnl
IEEE Trans. Autom. Control.
Huanshui Zhang, Xiao Lu, Daizhan Cheng
2005 J jnl
Autom.
Xiao Lu, Huanshui Zhang, Wei Wang, Kok Lay Teo
2004 J jnl
IEEE Trans. Autom. Control.
Huanshui Zhang, Lihua Xie, Wei Wang, Xiao Lu
2004 C conf
ICARCV
Xiao Lu, Huanshui Zhang, Wei Wang
redb/extractors/js_extractors/scripts/js-xray-runner.js
← Index redb/extractors/js_extractors/scripts/js-xray-runner.js javascript
#!/usr/bin/env node
// Bridge between the Python JS pipeline and @nodesecure/js-x-ray.
//
// Usage: node js-xray-runner.js <path-to-js-file>
//   stdout  one JSON object: {"obfuscator": <name|null>, "warnings": [...]}
//   stderr  human-readable error on failure
//   exit 0  analysis ran (the file may still be benign — see "obfuscator")
//   exit 1  the file could not be read or analysed
//
// Each warning is emitted as {kind, value} so the Python side can tag
// supporting signals (encoded-literal, short-identifiers, suspicious-literal,
// unsafe-stmt) without having to mirror js-x-ray's whole schema.
//
// js-x-ray ≥7 ships as an ES module, which CommonJS `require()` cannot load
// from a `.js` script — the dynamic `import()` below is what makes the
// bridge work without renaming the file to `.mjs` or adding `"type":
// "module"` to package.json (which would break tools that still
// `require()` from this directory).

const fs = require("fs");
const path = require("path");

function fail(msg) {
  process.stderr.write(msg + "\n");
  process.exit(1);
}

async function main() {
  const target = process.argv[2];
  if (!target) fail("usage: js-xray-runner.js <file>");

  let source;
  try {
    source = fs.readFileSync(target, "utf8");
  } catch (e) {
    fail(`read failed: ${e.message}`);
  }

  // The legacy `runASTAnalysis` function is deprecated (removed in v8); the
  // current API is the `AstAnalyser` class. Both produce a result with the
  // same `warnings` shape, so the rest of the bridge is unchanged.
  let AstAnalyser;
  try {
    ({ AstAnalyser } = await import("@nodesecure/js-x-ray"));
  } catch (e) {
    fail(`@nodesecure/js-x-ray not installed (run \`npm install\` in ${path.dirname(__filename)}): ${e.message}`);
  }

  // js-x-ray defaults to module-mode parsing, which rejects scripts that
  // (legally) use reserved words as identifiers, top-level `return`, etc.
  // A lot of real-world JS malware is script-style (WScript/HTA bodies,
  // pasted snippets) — retrying in script mode catches those without
  // pulling in a more lenient parser. Both attempts share the same
  // analyser; only the parse mode flips. If both fail, the original error
  // (module-mode) is reported because that's the more informative one for
  // genuinely broken sources.
  let result;
  const analyser = new AstAnalyser();
  let firstErr;
  try {
    result = await analyser.analyse(source, { module: true });
  } catch (e) {
    firstErr = e;
    try {
      result = await analyser.analyse(source, { module: false });
    } catch (e2) {
      fail(`js-x-ray analysis failed: ${firstErr.message}`);
    }
  }

  const warnings = (result.warnings || []).map((w) => ({
    kind: w.kind,
    value: w.value !== undefined ? w.value : null,
  }));

  // js-x-ray flags the obfuscator family in a warning whose kind is
  // "obfuscated-code" and whose value names the family (jsfuck, obfuscator.io,
  // freejsobfuscator, morse, jjencode, ...). Absent => not detected.
  const obfWarning = warnings.find((w) => w.kind === "obfuscated-code");
  const obfuscator = obfWarning ? obfWarning.value : null;

  // js-x-ray runs its own AST internally with a modern parser, so its
  // identifier-length average is the only path the Python pipeline has to
  // that signal on ES2015+ sources — pyjsparser is ES5.1-only and silently
  // drops to 0 the moment it hits destructuring, classes, optional chaining,
  // etc. Surfacing this lets the heuristic's `avg_identifier_length<2`
  // strong signal fire on real obfuscator.io output. `null` when the value
  // is missing or non-numeric (defensive — older js-x-ray builds may differ).
  const idsLengthAvg =
    typeof result.idsLengthAvg === "number" && !Number.isNaN(result.idsLengthAvg)
      ? result.idsLengthAvg
      : null;

  process.stdout.write(JSON.stringify({ obfuscator, warnings, idsLengthAvg }));
}

main().catch((e) => fail(e.message || String(e)));