I think the problem is outdated command info on the readme file and here: #44 (comment) regarding the --encrypt-key
option
Packaging the app into an asar archive...
error: unknown option '--encrypt-key'
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: ENOENT: no such file or directory, stat 'B:\HIDDENHIDDEN\test\release\win-unpacked\resources\app.asar'] {
errno: -4058,
code: 'ENOENT',
syscall: 'stat',
path: 'B:\\HIDDENHIDDEN\\test\\release\\win-unpacked\\resources\\app.asar'
}
Node.js v17.9.0
skipped call asar pack app app.asar
skipped rmdir /s /q app
Trying to package the app.asar before now like so: (Because I also tried without running asar pack app app.asar
and asarmor said that it's missing the app.asar file that its not found or something)
This is how I did it on Windows:
echo Packaging the app into an asar archive...
call yarn run asar pack app app.asar
call node --eval "fs.writeFileSync(path.join(__dirname, 'random.key.txt'), Array.prototype.map.call(crypto.randomBytes(32), (v => ('0x' + ('0' + v.toString(16)).slice(-2)))).toString());"
call yarn run asarmor -a ./app -o app.asar --encrypt-key random.key.txt
call yarn run asarmor -a app.asar -o asarmor.asar --trashify key.txt main.js index.ts style.css index.html index.load.ts index.js --bloat 420
del random.key.txt
echo skipped call asar pack app app.asar
echo skipped rmdir /s /q app
I guess this can be done on linux and mac like so:
echo Packaging the app into an asar archive...
yarn run asar pack app app.asar
node --eval "fs.writeFileSync(path.join(__dirname, 'random.key.txt'), Array.prototype.map.call(crypto.randomBytes(32), (v => ('0x' + ('0' + v.toString(16)).slice(-2)))).toString());"
yarn run asarmor -a ./app -o app.asar --encrypt-key random.key.txt
yarn run asarmor -a app.asar -o asarmor.asar --trashify key.txt main.js index.ts style.css index.html index.load.ts index.js --bloat 420
rm -f random.key.txt
nope still getting:
Packaging the app into an asar archive...
error: unknown option '--encrypt-key'
B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
throw new Error('Unable to read header size!');
^
Error: Unable to read header size!
at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)
Node.js v17.9.0
skipped rmdir /s /q app
folder view:
![image](https://user-images.githubusercontent.com/41600149/171700688-6b1dbb14-fb08-481d-a7c2-14c38cc3ca1c.png)
trying with -ek
flag instead
Usage: asarmor [options]
Options:
-V, --version output the version number
-a, --archive <archive> input asar file (required)
-o, --output <output> output asar file (required)
-b, --backup create backup
-r, --restore restore backup
-bl, --bloat [gigabytes] add huge random files to disk on extraction attempt
-t, --trashify [junkfiles...] add fake files to the archive
-e, --encrypt <src> encrypt file contents
-k, --key <file path> key file to use for encryption
-h, --help display help for command
B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
throw new Error('Unable to read header size!');
^
Error: Unable to read header size!
at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)
Node.js v17.9.0
skipped rmdir /s /q app
with this new options we got I noticed --key
is different than --encrypt-key
, let's try:
![image](https://user-images.githubusercontent.com/41600149/171702027-d11600b9-3e84-4f79-9f9b-399c2f6cc12f.png)
now I have no idea what's wrong:
Packaging the app into an asar archive...
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: EISDIR: illegal operation on a directory, read] {
errno: -4068,
code: 'EISDIR',
syscall: 'read'
}
Node.js v17.9.0
B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
throw new Error('Unable to read header size!');
^
Error: Unable to read header size!
at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)
Node.js v17.9.0
skipped rmdir /s /q app
I narrowed down the problem to this line:
asarmor -a app.asar -o app.protected.asar -k random.key.txt
tried every possible combo between -a and -o, both same, one like this, another, and all possibilities basically, when it doesnt throw the error of file missing it throws:
asar pack .\app app.asar
asarmor -a app.asar -o app.asar -k random.key.txt
asarmor -a app.asar -o app.protected.asar -k random.key.txt
asarmor -a app.protected.asar -o app.asar -k random.key.txt
asarmor -a .\app -o app.protected.asar -k random.key.txt
asarmor -a ./app -o app.protected.asar -k random.key.txt
asarmor -a app.protected.asar -o ./app -k random.key.txt
asarmor -a app.asar -o ./app -k random.key.txt
HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
throw new Error('Unable to read header size!');
^
Error: Unable to read header size!
at readHeaderSize (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
at async readArchive (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
at async read (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
at async Object.open (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
at async main (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)
Node.js v17.9.0
or this:
\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: ENOENT: no such file or directory, stat 'B:\hidden\test\release\win-unpacked\resources\app.protected.asar'] {
errno: -4058,
code: 'ENOENT',
syscall: 'stat',
path: 'B:\\hidden\\test\\release\\win-unpacked\\resources\\app.protected.asar'
}