ASAR解包脚本

脚本

Electron ASAR归档文件解包工具

该工具为脚本程序,源代码如下:

extract.js
const asar = require("asar");
const fs = require("fs");
const path = require("path");

const asarPath = path.join(__dirname, "app.asar");
const outDir = path.join(__dirname, "extracted_app");

if (fs.existsSync(outDir)) {
  fs.rmSync(outDir, { recursive: true, force: true });
}

const allEntries = asar.listPackage(asarPath);
let count = 0;
let skipped = 0;

for (const entry of allEntries) {
  // Strip leading slash/backslash for extractFile
  const relPath = entry.replace(/^[/\\]+/, "");
  try {
    const data = asar.extractFile(asarPath, relPath);
    const localPath = path.join(outDir, relPath);
    fs.mkdirSync(path.dirname(localPath), { recursive: true });
    fs.writeFileSync(localPath, data);
    count++;
  } catch (e) {
    skipped++;
  }
}

console.log("Extracted", count, "files, skipped", skipped, "entries");
console.log("Output:", outDir);