Ian F. Blake

122 papers A* 1A 3B 7Misc 3Journal 93Unranked 11
YearRankTypeTitle / Venue / Authors
2020 J jnl
IEEE Trans. Inf. Theory
Seyed Ali Saberali, Lutz Lampe, Ian F. Blake
2019 J jnl
IEEE Trans. Wirel. Commun.
Seyed Ali Saberali, Lutz Lampe, Ian F. Blake
2018 J jnl
CoRR
Seyed Ali Saberali, Lutz Lampe, Ian F. Blake
2018 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, Shu Lin
2017 J jnl
CoRR
Seyed Ali Saberali, Hamidreza Ebrahimzadeh Saffar, Lutz Lampe, Ian F. Blake
2017 J jnl
CoRR
Seyed Ali Saberali, Lutz Lampe, Ian F. Blake
2016 J jnl
Adv. Math. Commun.
Ian F. Blake, V. Kumar Murty, Hamid Usefi
2016 J jnl
IEEE Commun. Lett.
Seyed Ali Saberali, Hamidreza Ebrahimzadeh Saffar, Lutz Lampe, Ian F. Blake
2016 J jnl
IEEE Trans. Inf. Theory
Qiuju Diao, Juane Li, Shu Lin, Ian F. Blake
2015 J jnl
Des. Codes Cryptogr.
Ian F. Blake, Alfred Menezes, Douglas R. Stinson
2015 conf
CWIT
Ian F. Blake, V. Kumar Murty, Hamid Usefi
2015 J jnl
CoRR
Qiuju Diao, Juane Li, Shu Lin, Ian F. Blake
2014 J jnl
CoRR
Ian F. Blake, V. Kumar Murty, Hamid Usefi
2014 conf
ISTC
Shu Lin, Qiuju Diao, Ian F. Blake
2014 J jnl
IEEE Trans Autom. Sci. Eng.
Ehsan Vahedi, Rabab K. Ward, Ian F. Blake
2014 J jnl
Appl. Algebra Eng. Commun. Comput.
Ian F. Blake, Florian Luca, Igor E. Shparlinski
2013 ch.
Handbook of Finite Fields
Ian F. Blake, W. Cary Huffman
2013 ch.
Handbook of Finite Fields
Ian F. Blake, W. Cary Huffman
2013 ch.
Handbook of Finite Fields
Ian F. Blake, W. Cary Huffman
2012 B conf
GLOBECOM
Ehsan Vahedi, Rabab K. Ward, Ian F. Blake
2012 J jnl
IEEE Trans. Mob. Comput.
Majid Khabbazian, Ian F. Blake, Vijay K. Bhargava
2011 J jnl
IEEE Trans. Wirel. Commun.
Amir Nasri, Robert Schober, Ian F. Blake
2011 J jnl
IEEE Trans Autom. Sci. Eng.
Ehsan Vahedi, Vincent W. S. Wong, Ian F. Blake, Rabab K. Ward
2011 J jnl
IEEE Trans. Inf. Forensics Secur.
Ehsan Vahedi, Vahid Shah-Mansouri, Vincent W. S. Wong, Ian F. Blake, Rabab K. Ward
2011 Misc conf
CISIS
Ehsan Vahedi, Rabab K. Ward, Ian F. Blake
2010 conf
ICC
Ehsan Vahedi, Vahid Shah-Mansouri, Vincent W. S. Wong, Ian F. Blake
2010 J jnl
Discret. Appl. Math.
Ian F. Blake, Theodoulos Garefalakis
2010 B conf
ITW
Ian F. Blake
2010 J jnl
IEEE Trans. Commun.
Li Zhang, Qin Huang, Shu Lin, Khaled A. S. Abdel-Ghaffar, Ian F. Blake
2010 Misc conf
ITA
Li Zhang, Qin Huang, Shu Lin, Khaled A. S. Abdel-Ghaffar, Ian F. Blake
2010 J jnl
Algorithmica
Chris Studholme, Ian F. Blake
2009 J jnl
J. Math. Cryptol.
Ian F. Blake, Vladimir Kolesnikov
2008 J jnl
Finite Fields Their Appl.
Ian F. Blake, Theodoulos Garefalakis
2007 J jnl
IACR Cryptol. ePrint Arch.
Chris Studholme, Ian F. Blake
2007 B conf
ICCCN
E. C. Park, Ian F. Blake
2007 J jnl
J. Math. Cryptol.
Ian F. Blake, Igor E. Shparlinski
2006 conf
Financial Cryptography
Ian F. Blake, Vladimir Kolesnikov
2006 Misc conf
INDOCRYPT
Ian F. Blake, Aldar C.-F. Chan
2006 J jnl
IEEE Trans. Commun.
Mehrdad Shamsi, Masoud Ardakani, Ian F. Blake
2006 J jnl
Appl. Algebra Eng. Commun. Comput.
Ian F. Blake, Theodoulos Garefalakis, Igor E. Shparlinski
2006 J jnl
J. Discrete Algorithms
E. C. Park, Ian F. Blake
2006 J jnl
J. Algorithms
Ian F. Blake, V. Kumar Murty, Guangwu Xu
2006 B conf
ISIT
Chris Studholme, Ian F. Blake
2005 conf
ICC
Mehrdad Shamsi, Masoud Ardakani, Ian F. Blake
2005 J jnl
Inf. Process. Lett.
Ian F. Blake, V. Kumar Murty, Guangwu Xu
2005 J jnl
IACR Cryptol. ePrint Arch.
Aldar C.-F. Chan, Ian F. Blake
2005 J jnl
J. Discrete Algorithms
Ian F. Blake, V. Kumar Murty, Guangwu Xu
2005 A conf
ICDCS
Aldar C.-F. Chan, Ian F. Blake
2004 J jnl
J. Complex.
Ian F. Blake, Theodoulos Garefalakis
2004 B conf
ISIT
Kenneth W. Shum, Ian F. Blake, V. Kumar Murty
2004 J jnl
IACR Cryptol. ePrint Arch.
Ian F. Blake, V. Kumar Murty, Guangwu Xu
2004 J jnl
IACR Cryptol. ePrint Arch.
Ian F. Blake, Aldar C.-F. Chan
2004 B conf
ISIT
Mehrdad Shamsi, Ian F. Blake
2004 conf
ICC
Mehrdad Shamsi, Ian F. Blake
2004 A conf
ASIACRYPT
Ian F. Blake, Vladimir Kolesnikov
2003 conf
Algebraic Coding Theory and Information Theory
Kenneth W. Shum, Ian F. Blake
2003 B conf
ITW
Jun Xu, Shu Lin, Ian F. Blake
2002 J jnl
IEEE Trans. Computers
Huapeng Wu, M. Anwarul Hasan, Ian F. Blake, Shuhong Gao
2002 J jnl
Des. Codes Cryptogr.
Ian F. Blake, Theodoulos Garefalakis
1999 conf
ICC
Dariush Dabiri, Ian F. Blake
1999 conf
AAECC
Ian F. Blake
1999 A conf
CHES
Huapeng Wu, M. Anwarul Hasan, Ian F. Blake
1999 J jnl
IEEE Trans. Inf. Theory
Amir H. Banihashemi, Ian F. Blake
1998 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, Chris Heegard, Tom Høholdt, V. Wei
1998 J jnl
IEEE Trans. Commun.
Cecilio Pimentel, Ian F. Blake
1998 J jnl
IEEE Trans. Computers
Huapeng Wu, M. Anwarul Hasan, Ian F. Blake
1998 J jnl
IEEE Trans. Inf. Theory
Amir H. Banihashemi, Ian F. Blake
1998 J jnl
IEEE Trans. Inf. Theory
Shraga I. Bross, Ian F. Blake
1997 conf
ICC (3)
Cecilio Pimentel, Ian F. Blake
1997 J jnl
IEEE Trans. Inf. Theory
Muzhong Wang, Ian F. Blake
1996 J jnl
SIAM J. Discret. Math.
Ian F. Blake, Vahid Tarokh
1996 J jnl
IEEE Trans. Image Process.
Christopher J. Wein, Ian F. Blake
1996 J jnl
IEEE Trans. Inf. Theory
Vahid Tarokh, Ian F. Blake
1996 J jnl
IEEE Trans. Inf. Theory
Vahid Tarokh, Ian F. Blake
1995 J jnl
IEEE Trans. Inf. Theory
Dariush Dabiri, Ian F. Blake
1994 J jnl
IEEE Trans. Commun.
Benny C. Y. Wong, Ian F. Blake
1994 J jnl
SIAM J. Discret. Math.
Ian F. Blake, Shuhong Gao, Ronald C. Mullin
1994 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake
1994 J jnl
IEEE J. Sel. Areas Commun.
Marcelo S. Alencar, Ian F. Blake
1994 J jnl
Appl. Algebra Eng. Commun. Comput.
Tomik Yaghoobian, Ian F. Blake
1993 conf
Information Theory and Applications
Ian F. Blake, Shuhong Gao, Robert J. Lambert
1993 J jnl
Appl. Algebra Eng. Commun. Comput.
Ian F. Blake, Shuhong Gao, Ronald C. Mullin
1992 J jnl
Des. Codes Cryptogr.
Tomik Yaghoobian, Ian F. Blake
1991 J jnl
Inf. Sci.
Ian F. Blake
1991 J jnl
SIAM J. Discret. Math.
Ian F. Blake, Khun Kith
1990 J jnl
IEEE Trans. Commun.
Benny C. Y. Wong, Ian F. Blake
1990 J jnl
SIAM J. Discret. Math.
Muzhong Wang, Ian F. Blake
1989 J jnl
IEEE Trans. Commun.
Gordon L. Stüber, Jon W. Mark, Ian F. Blake
1989 J jnl
Discret. Appl. Math.
David W. Ash, Ian F. Blake, Scott A. Vanstone
1989 J jnl
IEEE Trans. Inf. Theory
Guillermo E. Atkin, Ian F. Blake
1988 J jnl
IEEE Trans. Commun.
Gordon L. Stüber, Jon W. Mark, Ian F. Blake
1988 J jnl
IEEE Trans. Inf. Theory
George H. Freeman, Ian F. Blake, Jon W. Mark
1988 J jnl
IEEE Trans. Commun.
George H. Freeman, Jon W. Mark, Ian F. Blake
1987 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, H. Darabian
1987 J jnl
IEEE Trans. Commun.
Gordon L. Stüber, Jon W. Mark, Ian F. Blake
1987 J jnl
IEEE J. Sel. Areas Commun.
Gordon L. Stüber, Ian F. Blake, Jon W. Mark
1984 A* conf
CRYPTO
Ian F. Blake, Ronald C. Mullin, Scott A. Vanstone
1984 J jnl
Inf. Sci.
Gordon L. Stüber, Jon W. Mark, Ian F. Blake
1983 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake
1982 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, Jon W. Mark
1982 J jnl
IEEE Trans. Commun.
Ian F. Blake
1982 J jnl
Inf. Control.
Ian F. Blake
1979 J jnl
Inf. Control.
Ian F. Blake, Gérard D. Cohen, Mikhail Deza
1979 J jnl
Inf. Control.
Reihaneh Safavi-Naini, Ian F. Blake
1978 J jnl
Discret. Math.
Ian F. Blake, J. J. Stiffler
1978 J jnl
IEEE Trans. Inf. Theory
Ian B. Gibson, Ian F. Blake
1978 J jnl
Discret. Math.
Ian F. Blake, Avraham A. Melkman
1977 J jnl
J. ACM
Ian F. Blake, Alan G. Konheim
1976 J jnl
IEEE Trans. Inf. Theory
Mushfiqur Rahman, Ian F. Blake
1975 J jnl
Discret. Math.
J. J. Stiffler, Ian F. Blake
1975 J jnl
Inf. Control.
Ian F. Blake
1975 J jnl
IEEE Trans. Inf. Theory
Mushfiqur Rahman, Ian F. Blake
1975 J jnl
Inf. Control.
Ian F. Blake
1975 book
Ian F. Blake, Ronald C. Mullin
1974 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake
1974 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake
1973 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, James H. Gilchrist
1973 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, William C. Lindsey
1972 J jnl
Inf. Control.
Ian F. Blake
1971 J jnl
Inf. Control.
Ian F. Blake
1969 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake
1968 J jnl
IEEE Trans. Inf. Theory
Ian F. Blake, John B. Thomas
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)));