Awesome
upx
Node cross-platform wrapper for UPX
Install
$ npm install --save upx
Usage
const UPX = require('upx')(opts) // see options below
UPX('Hello.exe')
.output('Compressed.exe')
.start().then(function(stats){
/* stats:
{ cmd: 'compress',
name: 'Compressed.exe',
fileSize: { before: '1859072', after: '408064' },
ratio: '21.95%',
format: 'win32/pe',
affected: 1 }
*/
}).catch(function (err) {
// ...
})
Methods
upx(<path>)
: path is the absolute path to the file to compress/decompress.
.output(<output>)
: path to the output file.
.start()
: Start the compress/decompress process.
Options
The options below can be true or false.
Option | Description |
---|---|
faster | compress faster |
better | compress better |
best | compress best (can be slow for big files) |
decompress | decompress |
list | list compressed files |
force | force compression of suspicious files |
brute | try all available compression methods & filters (slow) |
ultraBrute | try even more compression variants (very slow) |
overlayCopy | copy any extra data attached to the file (default) |
overlayStrip | strip any extra data attached to the file (dangerous) |
overlaySkip | don't compress a file with an overlay |
8086 | make compressed sys work on any 8086 (for dos) |
noReloc | put no relocations in to the exe header (for dos) |
8bit | uses 8 bit size compression (default: 32 bit) |
8mibRam | 8 megabyte memory limit (default 2MiB) |
Debug
set the env DEBUG: DEBUG=upx node myScript.js
Author
Rocco Musolino (@roccomuso)
License
MIT