James H. Elder

84 papers A* 6A 5B 1C 1Journal 26Unranked 43
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Sajjad Pakdamansavoji, Kumar Vaibhav Jha, Baher Abdulhai, James H. Elder
2025 conf
WACV (Workshops)
Maria Koshkina, James H. Elder
2025 J jnl
CoRR
Maria Koshkina, James H. Elder
2024 conf
CVPR Workshops
Maria Koshkina, James H. Elder
2024 J jnl
CoRR
Maria Koshkina, James H. Elder
2024 J jnl
Comput. Vis. Media
Yue Wang, Yuke Li, James H. Elder, Runmin Wu, Huchuan Lu
2024 J jnl
Frontiers Comput. Sci.
James H. Elder, Mary A. Peterson, Dirk B. Walther
2024 conf
ITSC
Sajjad Pakdamansavoji, Kumar Vaibhav Jha, Baher Abdulhai, James H. Elder
2024 conf
SM
Hélio Perroni Filho, Jenny Ren, Mohammad Akhavan, Yuqian Hou, Walleed Khan, Arian Haghparast, Julian Forsyth, Kimia Rajaeifar, Michael Jenkin, James H. Elder
2024 conf
CVPR Workshops
Jaime Spencer, Fabio Tosi, Matteo Poggi, Ripudaman Singh Arora, Chris Russell, Simon Hadfield, Richard Bowden, GuangYuan Zhou, Zhengxin Li, Qiang Rao, Yiping Bao, Xiao Liu, Dohyeong Kim, Jinseong Kim, Myunghyun Kim, Mykola Lavreniuk, Rui Li, Qing Mao, Jiang Wu, Yu Zhu, Jinqiu Sun, Yanning Zhang, Suraj Patni, Aradhye Agarwal, Chetan Arora, Pihai Sun, Kui Jiang, Gang Wu, Jian Liu, Xianming Liu, Junjun Jiang, Xidan Zhang, Jianing Wei, Fangjun Wang, Zhiming Tan, Jiabao Wang, Albert Luginov, Muhammad Shahzad, Seyed Hosseini, Aleksander Trajcevski, James H. Elder
2024 J jnl
CoRR
Jaime Spencer, Fabio Tosi, Matteo Poggi, Ripudaman Singh Arora, Chris Russell, Simon Hadfield, Richard Bowden, GuangYuan Zhou, Zhengxin Li, Qiang Rao, Yiping Bao, Xiao Liu, Dohyeong Kim, Jinseong Kim, Myunghyun Kim, Mykola Lavreniuk, Rui Li, Qing Mao, Jiang Wu, Yu Zhu, Jinqiu Sun, Yanning Zhang, Suraj Patni, Aradhye Agarwal, Chetan Arora, Pihai Sun, Kui Jiang, Gang Wu, Jian Liu, Xianming Liu, Junjun Jiang, Xidan Zhang, Jianing Wei, Fangjun Wang, Zhiming Tan, Jiabao Wang, Albert Luginov, Muhammad Shahzad, Seyed Hosseini, Aleksander Trajcevski, James H. Elder
2023 J jnl
Pattern Recognit.
Yue Wang, Xu Jia, Lu Zhang, Yuke Li, James H. Elder, Huchuan Lu
2023 conf
WACV (Workshops)
Hélio Perroni Filho, Aleksander Trajcevski, Kartikeya Bhargava, Nizwa Javed, James H. Elder
2023 conf
CRV
Keyi Liu, James H. Elder
2023 conf
WACV (Workshops)
Jaime Spencer, C. Stella Qian, Chris Russell, Simon Hadfield, Erich W. Graf, Wendy J. Adams, Andrew J. Schofield, James H. Elder, Richard Bowden, Heng Cong, Stefano Mattoccia, Matteo Poggi, Zeeshan Khan Suri, Yang Tang, Fabio Tosi, Hao Wang, Youmin Zhang, Yusheng Zhang, Chaoqiang Zhao
2023 conf
CVPR Workshops
Jaime Spencer, C. Stella Qian, Michaela Trescakova, Chris Russell, Simon Hadfield, Erich W. Graf, Wendy J. Adams, Andrew J. Schofield, James H. Elder, Richard Bowden, Ali Anwar, Hao Chen, Xiaozhi Chen, Kai Cheng, Yuchao Dai, Huynh Thai Hoa, Sadat Hossain, Jianmian Huang, Mohan Jing, Bo Li, Chao Li, Baojun Li, Zhiwen Liu, Stefano Mattoccia, Siegfried Mercelis, Myungwoo Nam, Matteo Poggi, Xiaohua Qi, Jiahui Ren, Yang Tang, Fabio Tosi, Linh Trinh, S. M. Nadim Uddin, Khan Muhammad Umair, Kaixuan Wang, Yufei Wang, Yixing Wang, Mochu Xiang, Guangkai Xu, Wei Yin, Jun Yu, Qi Zhang, Chaoqiang Zhao
2023 J jnl
CoRR
Jaime Spencer, C. Stella Qian, Michaela Trescakova, Chris Russell, Simon Hadfield, Erich W. Graf, Wendy J. Adams, Andrew J. Schofield, James H. Elder, Richard Bowden, Ali Anwar, Hao Chen, Xiaozhi Chen, Kai Cheng, Yuchao Dai, Huynh Thai Hoa, Sadat Hossain, Jianmian Huang, Mohan Jing, Bo Li, Chao Li, Baojun Li, Zhiwen Liu, Stefano Mattoccia, Siegfried Mercelis, Myungwoo Nam, Matteo Poggi, Xiaohua Qi, Jiahui Ren, Yang Tang, Fabio Tosi, Linh Trinh, S. M. Nadim Uddin, Khan Muhammad Umair, Kaixuan Wang, Yufei Wang, Yixing Wang, Mochu Xiang, Guangkai Xu, Wei Yin, Jun Yu, Qi Zhang, Chaoqiang Zhao
2023 conf
CRV
Yiming Qian, James H. Elder
2022 conf
ECCV (1)
Yiming Qian, James H. Elder
2022 J jnl
CoRR
Yiming Qian, James H. Elder
2022 conf
ACCV (3)
Yue Wang, Jiawen Ming, Xu Jia, James H. Elder, Huchuan Lu
2022 conf
ICPR Workshops (4)
Aleksander Trajcevski, Hélio Perroni Filho, Nizwa Javed, Tasneem Naheyan, Kartikeya Bhargava, James H. Elder
2022 J jnl
CoRR
Jaime Spencer, C. Stella Qian, Chris Russell, Simon Hadfield, Erich W. Graf, Wendy J. Adams, Andrew J. Schofield, James H. Elder, Richard Bowden, Heng Cong, Stefano Mattoccia, Matteo Poggi, Zeeshan Khan Suri, Yang Tang, Fabio Tosi, Hao Wang, Youmin Zhang, Yusheng Zhang, Chaoqiang Zhao
2022 A conf
WACV
Gong Cheng, James H. Elder
2021 conf
CVPR Workshops
Hemanth Pidaparthy, Michael H. Dowling, James H. Elder
2021 conf
CVPR Workshops
Maria Koshkina, Hemanth Pidaparthy, James H. Elder
2021 J jnl
CoRR
Maria Koshkina, Hemanth Pidaparthy, James H. Elder
2021 J jnl
CoRR
Yue Wang, Xu Jia, Lu Zhang, Yuke Li, James H. Elder, Huchuan Lu
2020 conf
CRV
Gong Cheng, Yue Wang, Yiming Qian, James H. Elder
2020 J jnl
CoRR
James H. Elder, Emilio J. Almazan, Yiming Qian, Ron Tal
2020 conf
ACCV (2)
Yue Wang, Yuke Li, James H. Elder, Runmin Wu, Huchuan Lu, Lu Zhang
2020 J jnl
CoRR
Yue Wang, Yuke Li, James H. Elder, Huchuan Lu, Runmin Wu
2019 J jnl
CoRR
Yue Wang, Yuke Li, James H. Elder, Runmin Wu, Huchuan Lu
2019 A conf
WACV
Hemanth Pidaparthy, James H. Elder
2018 conf
ACCV (4)
Yiming Qian, Srikumar Ramalingam, James H. Elder
2017 conf
CRV
Nada Elassal, James H. Elder
2017 conf
VISIGRAPP (4: VISAPP)
Paria Mehrani, James H. Elder
2017 conf
ICCV Workshops
Gong Cheng, Yiming Qian, James H. Elder
2017 conf
ICCV Workshops
Krista A. Ehinger, Erich W. Graf, Wendy J. Adams, James H. Elder
2017 A* conf
CVPR
Emilio J. Almazan, Ron Tal, Yiming Qian, James H. Elder
2017 conf
CVPR Workshops
Eduardo R. Corral-Soto, James H. Elder
2016 B conf
ICIP
Yiming Qian, Emilio J. Almazan, James H. Elder
2016 conf
ECCV Workshops (1)
Emilio J. Almazan, Yiming Qian, James H. Elder
2016 conf
ACCV (5)
Nada Elassal, James H. Elder
2015 conf
CVMP
Wendy J. Adams, Alexander A. Muryy, Erich W. Graf, Arthur J. Lugtigheid, James H. Elder
2014 conf
ECCV (4)
Eduardo R. Corral-Soto, James H. Elder
2014 conf
CRV
Alex Yakubovich, James H. Elder
2014 ch.
Computer Vision, A Reference Guide
James H. Elder
2014 J jnl
PLoS Comput. Biol.
Wendy J. Adams, James H. Elder
2013 A conf
BMVC
Vida Movahedi, James H. Elder
2013 J jnl
Image Vis. Comput.
James H. Elder, Timothy D. Oleskiw, Alex Yakubovich, Gabriel Peyré
2013 ch.
Shape Perception in Human and Computer Vision
James H. Elder
2012 conf
CRV
Eduardo R. Corral-Soto, Ron Tal, Langyue Wang, Ravi Ancil Persad, Luo Chao, Chan Solomon, Bob Hou, Gunho Sohn, James H. Elder
2012 A* conf
VR
Eduardo R. Corral-Soto, Ron Tal, Larry Wang, Ravi Ancil Persad, Luo Chao, Chan Solomon, Bob Hou, Gunho Sohn, James H. Elder
2012 conf
ACCV Workshops (2)
Ron Tal, James H. Elder
2012 J jnl
J. Intell. Robotic Syst.
Ehsan Fazl Ersi, James H. Elder, John K. Tsotsos
2012 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Fadi Dornaika, James H. Elder
2012 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Simon Prince, Peng Li, Yun Fu, Umar Mohammed, James H. Elder
2010 conf
CRV
Simon J. D. Prince, James H. Elder
2010 conf
CVPR Workshops
Vida Movahedi, James H. Elder
2010 A* conf
CVPR
Timothy D. Oleskiw, James H. Elder, Gabriel Peyré
2009 A conf
IROS
Ehsan Fazl Ersi, James H. Elder, John K. Tsotsos
2008 conf
ECCV (2)
Patrick Denis, James H. Elder, Francisco J. Estrada
2008 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Simon J. D. Prince, James H. Elder, Jonathan Warrell, Fatima M. Felisberti
2007 J jnl
Int. J. Comput. Vis.
James H. Elder, Simon J. D. Prince, Yuqian Hou, Mikhail Sizintsev, E. Olevskiy
2007 A* conf
ICCV
Simon J. D. Prince, James H. Elder
2006 conf
CVPR Workshops
Francisco J. Estrada, James H. Elder
2006 A conf
BMVC
Simon J. D. Prince, James H. Elder
2005 conf
CVPR (2)
Simon J. D. Prince, James H. Elder
2005 conf
WACV/MOTION
Simon Prince, James H. Elder, Yuqian Hou, Mikhail Sizintsev
2005 conf
CVPR (2)
Simon J. D. Prince, James H. Elder, Yuqian Hou, Mikhail Sizintsev, Yevgen Olevskiy
2004 conf
CVPR Workshops
Leigh A. Johnston, James H. Elder
2003 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
James H. Elder, Amnon Krupnik, Leigh A. Johnston
2002 conf
Biologically Motivated Computer Vision
James H. Elder
2002 conf
ECCV (4)
Fadi Dornaika, James H. Elder
2001 conf
CVPR (2)
James H. Elder, Amnon Krupnik
2001 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
James H. Elder, Richard M. Goldberg
1999 J jnl
Int. J. Comput. Vis.
James H. Elder
1998 A* conf
CVPR
James H. Elder, Richard M. Goldberg
1998 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
James H. Elder, Steven W. Zucker
1996 conf
ECCV (1)
James H. Elder, Steven W. Zucker
1996 conf
ECCV (2)
James H. Elder, Steven W. Zucker
1996 A* conf
CVPR
James H. Elder, Steven W. Zucker
1995 C conf
CAIP
James H. Elder, Steven W. Zucker
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)));