Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pe-library

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pe-library

Node.js library for Portable Executable format

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

NPM version Build Status

pe-library

pe-library provides parsing and generating Portable Executable (known as Windows Executables) binaries.

Usage

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));

from CommonJS (using 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));
});
for CommonJS-based TypeScript module
// you can use PE namespace for type-reference only
import { type PE, load } from 'pe-library/cjs';
load().then((pe: typeof PE) => {
  ...
});

License

  • All programs / source codes / binaries in this package, EXCEPT FOLLOWINGS, are licensed with MIT License.
  • The followings are licensed with 0-BSD license:

Keywords

FAQs

Package last updated on 19 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc