@Drovosek01

Как распаковать app.asar файл если появляется ошибка errno: -2?

Есть приложение XMind.
В его внутренностях есть файл/архив app.asar. Хочу исследовать содержимое этого файла.

Установил @electron/asar и попробовал распаковать app.asar выполнив команду
asar extract app.asar test
Но получаю ошибку:
% asar extract app.asar test
node:internal/fs/utils:347
    throw err;
    ^

Error: ENOENT: no such file or directory, open '/Users/myuser/Downloads/xmind/app.asar.unpacked/node_modules/acorn/bin/acorn'
    at Object.openSync (node:fs:601:3)
    at Object.readFileSync (node:fs:469:35)
    at module.exports.readFileSync (/usr/local/lib/node_modules/asar/lib/disk.js:110:17)
    at module.exports.extractAll (/usr/local/lib/node_modules/asar/lib/asar.js:204:28)
    at Command.<anonymous> (/usr/local/lib/node_modules/asar/bin/asar.js:72:10)
    at Command.listener [as _actionHandler] (/usr/local/lib/node_modules/asar/node_modules/commander/index.js:413:31)
    at Command._parseCommand (/usr/local/lib/node_modules/asar/node_modules/commander/index.js:914:14)
    at Command._dispatchSubcommand (/usr/local/lib/node_modules/asar/node_modules/commander/index.js:865:18)
    at Command._parseCommand (/usr/local/lib/node_modules/asar/node_modules/commander/index.js:882:12)
    at Command.parse (/usr/local/lib/node_modules/asar/node_modules/commander/index.js:717:10) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/Users/myuser/Downloads/xmind/app.asar.unpacked/node_modules/acorn/bin/acorn'
}

Node.js v18.15.0


Пробовал с помощью плагина для 7-zip распаковать этот app.asar, но также получал ошибки распаковки.
https://www.tc4shell.com/en/7zip/asar/

Собственно как распаковать этот файл?
https://mega.nz/file/7ZgiQJ5a#-SQZbmatuOu6WgpPQPAt...

Я извлек его из Xmind for macOS v22.11.3656:
https://dl3.xmind.net/Xmind-for-macOS-22.11.3656.dmg
  • Вопрос задан
  • 3119 просмотров
Решения вопроса 1
@Drovosek01 Автор вопроса
На одном форуме посоветовали следующие утилиты для решения проблемы распаковки app.asar:
https://github.com/Zerthox/rasar
https://github.com/Lem/asar_extract
https://github.com/tylerlong/asar-extractor-app/re...

С asar-extractor-app app.asar также распаковался не полностью, как и с помощью оригинальных инструментов распаковки.
С помощью rasar и asar_extract удалось полностью распаковать app.asar.

Пришлось потратить некоторое время, чтобы разобраться как запускать проекты Rust, но это было полезно и в итоге мне удалось распаковать app.asar с помощью обеих утилит.

Потом я сравнил результаты в Beyond Compare и заметил, что rasar создает дополнительные пустые папки, поэтому лучше его не использовать.

642ddd072246c982574136.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
i229194964
@i229194964
Веб разработчик
это ошибка возникает когда указанный путь или каталог не может быть найден.
Может быть вы выполняете команду из не правильного каталога где нету файла app.asar.
Перейдите в каталог где нах-ся файл app.asar.
И выполните команду
asar extract app.asar test
Убедитесь то что у вас установлена @electron/asar
Или установите его
npm install -g @electron/asar
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы