Muqriz 48f16bfc3e initail first | 4 months ago | |
---|---|---|
.. | ||
dist | 4 months ago | |
CHANGELOG.md | 4 months ago | |
LICENSE | 4 months ago | |
README.md | 4 months ago | |
cjs.cjs | 4 months ago | |
cjs.d.ts | 4 months ago | |
package.json | 4 months ago |
pe-library provides parsing and generating Portable Executable (known as Windows Executables) binaries.
import * as PE from 'pe-library';
import * as fs from 'fs';
// load and parse data
let data = fs.readFileSync('MyApp.exe');
// (the Node.js Buffer instance can be specified directly to NtExecutable.from)
let exe = PE.NtExecutable.from(data);
// get section data
let exportSection = exe.getSectionByEntry(PE.Format.ImageDirectoryEntry.Export);
// read binary data stored in exportSection.data ...
// to write binary: use exe.setSectionByEntry
// write to buffer
let newBin = exe.generate();
fs.writeFileSync('MyApp_modified.exe', new Buffer(newBin));
require
)Starting from v1.0.0, CommonJS support is changed; you must use
pe-library/cjs
to use from CommonJS file.
const { load } = require('pe-library/cjs');
const fs = require('fs');
load().then((PE) => {
// load and parse data
let data = fs.readFileSync('MyApp.exe');
// (the Node.js Buffer instance can be specified directly to NtExecutable.from)
let exe = PE.NtExecutable.from(data);
// get section data
let exportSection = exe.getSectionByEntry(
PE.Format.ImageDirectoryEntry.Export
);
// read binary data stored in exportSection.data ...
// to write binary: use exe.setSectionByEntry
// write to buffer
let newBin = exe.generate();
fs.writeFileSync('MyApp_modified.exe', new Buffer(newBin));
});
// you can use PE namespace for type-reference only
import { type PE, load } from 'pe-library/cjs';
load().then((pe: typeof PE) => {
...
});
DOS_STUB_PROGRAM