Katarzyna Radecka

65 papers A* 1A 5B 2C 12Misc 3Journal 16Unranked 26
YearRankTypeTitle / Venue / Authors
2022 J jnl
Mob. Networks Appl.
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2019 Misc conf
MVA
Jianing Sun, Katarzyna Radecka, Zeljko Zilic
2019 J jnl
CoRR
Jianing Sun, Katarzyna Radecka, Zeljko Zilic
2017 J jnl
Sensors
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2017 conf
MobiHealth
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2017 conf
MobiHealth
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2016 conf
BHI
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2016 J jnl
IEEE J. Biomed. Health Informatics
Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2015 J jnl
IEEE J. Biomed. Health Informatics
Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2015 J jnl
J. Circuits Syst. Comput.
Yu Pang, Yafeng Yan, Jinzhao Lin, Guoquan Li, Huawei Huang, Lei Shi, Katarzyna Radecka
2015 J jnl
Netw. Model. Anal. Health Informatics Bioinform.
Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2014 J jnl
Sensors
Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2014 conf
NEWCAS
Omid Sarbishei, Katarzyna Radecka, Zeljko Zilic
2014 conf
IHTC
Majid Janidarmian, Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2014 conf
MobiHealth
Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2014 C conf
BIBE
Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2014 conf
IoT360 (1)
Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2014 conf
IHTC
Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic
2014 conf
MobiHealth
Atena Roshan Fekr, Katarzyna Radecka, Zeljko Zilic
2013 B conf
ETS
Omid Sarbishei, Atena Roshan Fekr, Majid Janidarmian, Benjamin Nahill, Katarzyna Radecka
2013 C conf
BSN
Omid Sarbishei, Benjamin Nahill, Atena Roshan Fekr, Majid Janidarmian, Katarzyna Radecka, Zeljko Zilic, Boris Karajica
2013 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Omid Sarbishei, Katarzyna Radecka
2013 conf
BODYNETS
Yu Pang, Qian Lei, Jinzhao Lin, Zhiyong Luo, Zhangyong Li, Zeljko Zilic, Katarzyna Radecka
2013 conf
MWSCAS
Sayeeda Sultana, Atena Roshan Fekr, Katarzyna Radecka
2013 conf
MWSCAS
Sayeeda Sultana, Katarzyna Radecka
2012 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Omid Sarbishei, Katarzyna Radecka, Zeljko Zilic
2012 conf
ASP-DAC
Omid Sarbishei, Katarzyna Radecka
2012 conf
ISMVL
Majid Janidarmian, Zeljko Zilic, Katarzyna Radecka
2012 C conf
ICCD
Atena Roshan Fekr, Majid Janidarmian, Omid Sarbishei, Benjamin Nahill, Katarzyna Radecka, Zeljko Zilic
2012 C conf
ISCAS
Omid Sarbishei, Katarzyna Radecka
2011 C conf
ISCAS
Yu Pang, Jinzhao Lin, Sayeeda Sultana, Katarzyna Radecka
2011 C conf
ICCD
Sayeeda Sultana, Katarzyna Radecka, Yu Pang
2011 C conf
ISCAS
Yu Pang, Katarzyna Radecka
2011 conf
ASP-DAC
Yu Pang, Katarzyna Radecka, Zeljko Zilic
2011 C conf
ISCAS
Omid Sarbishei, Katarzyna Radecka
2011 conf
Wireless Health
Zeljko Zilic, Katarzyna Radecka
2011 C conf
IEEE Symposium on Computer Arithmetic
Omid Sarbishei, Katarzyna Radecka
2011 C conf
ICCD
Yu Pang, Shaoquan Wang, Zhilong He, Jinzhao Lin, Sayeeda Sultana, Katarzyna Radecka
2011 conf
ISMVL
Sayeeda Sultana, Katarzyna Radecka
2011 conf
ICECS
Sayeeda Sultana, Katarzyna Radecka
2010 conf
ICECS
Yu Pang, Katarzyna Radecka, Zeljko Zilic
2010 A conf
ICCAD
Omid Sarbishei, Katarzyna Radecka
2010 conf
HLDVT
Omid Sarbishei, Yu Pang, Katarzyna Radecka
2010 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Yu Pang, Katarzyna Radecka, Zeljko Zilic
2008 J jnl
J. Multiple Valued Log. Soft Comput.
Sayeeda Sultana, Shahriar Al-Imam, Katarzyna Radecka
2008 A* conf
DAC
Yu Pang, Katarzyna Radecka
2007 J jnl
J. Multiple Valued Log. Soft Comput.
Ali Khazamipour, Katarzyna Radecka
2007 A conf
DATE
Zeljko Zilic, Katarzyna Radecka, Ali Kazamiphur
2007 J jnl
IEEE Trans. Computers
Zeljko Zilic, Katarzyna Radecka
2006 conf
ICECS
Yu Pang, Katarzyna Radecka, Zeljko Zilic
2006 conf
ICECS
Yu Pang, Katarzyna Radecka, Zeljko Zilic
2006 Misc conf
VTS
Rong Zhang, Zeljko Zilic, Katarzyna Radecka
2006 conf
ICECS
Sayeeda Sultana, Shahriar Al-Imam, Katarzyna Radecka
2004 A conf
ITC
Man Wah Chiang, Zeljko Zilic, Jean-Samuel Chenard, Katarzyna Radecka
2004 J jnl
IEEE Trans. Computers
Katarzyna Radecka, Zeljko Zilic
2004 C conf
ICCD
Ahmed Usman Khalid, Zeljko Zilic, Katarzyna Radecka
2002 conf
ASP-DAC/VLSI Design
Katarzyna Radecka, Zeljko Zilic
2002 A conf
ICCAD
Katarzyna Radecka, Zeljko Zilic
2002 conf
ISMVL
Zeljko Zilic, Katarzyna Radecka
2001 A conf
ITC
Zeljko Zilic, Katarzyna Radecka
2001 C conf
ICCD
Katarzyna Radecka, Zeljko Zilic
2001 conf
ICECS
Katarzyna Radecka, Zeljko Zilic, Karim Khordoc
2000 Misc conf
VTS
Katarzyna Radecka, Zeljko Zilic
1999 B conf
ISSAC
Zeljko Zilic, Katarzyna Radecka
1997 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Katarzyna Radecka, Janusz Rajski, Jerzy Tyszer
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)));