npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@midasr/novashadowcookie

v1.6.0

Published

Module NPM natif pour le décryptage des données Chrome App-Bound Encryption, compatible avec Node.js et Bun

Downloads

9

Readme

Chrome Decrypt Native

Module NPM natif pour le décryptage des données Chrome App-Bound Encryption, compatible avec Node.js et Bun.

🚀 Installation

npm install
# ou avec Bun
bun install

🔨 Build

npm run build
# ou directement
node scripts/build.js

📖 Usage

JavaScript/Node.js

const chromeDecrypt = require('./index.js');

// Décrypter un profil Chrome
async function example() {
    try {
        const result = await chromeDecrypt.decryptChromeData(
            'C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data\\Default',
            './output'
        );
        
        console.log('Succès:', result.success);
        console.log('Clé AES:', result.aesKey);
        console.log('Cookies:', result.cookiesCount);
        console.log('Mots de passe:', result.passwordsCount);
    } catch (error) {
        console.error('Erreur:', error.message);
    }
}

example();

TypeScript

import * as chromeDecrypt from './index';

async function example(): Promise<void> {
    const result = await chromeDecrypt.decryptChromeData(
        'C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data\\Default',
        './output'
    );
    
    console.log(`Trouvé ${result.cookiesCount} cookies`);
}

Avec Bun

import chromeDecrypt from './index.js';

// Trouver automatiquement les profils
const profiles = chromeDecrypt.findChromeProfiles();
console.log('Profils trouvés:', profiles);

// Décrypter
for (const profile of profiles) {
    const result = await chromeDecrypt.decryptChromeData(profile, './output');
    console.log(`Profil ${profile}:`, result);
}

🔧 API

decryptChromeData(profilePath, outputPath)

Décrypte les données d'un profil Chrome.

  • profilePath (string): Chemin vers le profil Chrome
  • outputPath (string): Dossier de sortie
  • Returns: Promise<ChromeDecryptResult>

chaCha20Encrypt(data, key, nonce)

Chiffre/déchiffre des données avec ChaCha20.

  • data (Buffer): Données à traiter
  • key (Buffer): Clé de 32 bytes
  • nonce (Buffer): Nonce de 12 bytes
  • Returns: Buffer

getEncryptedMasterKey(localStatePath)

Extrait la clé maître du fichier Local State.

  • localStatePath (string): Chemin vers Local State
  • Returns: Buffer

decryptGCM(key, encryptedData)

Décrypte des données AES-GCM.

  • key (Buffer): Clé de déchiffrement
  • encryptedData (Buffer): Données chiffrées
  • Returns: Buffer | null

findChromeProfiles()

Trouve automatiquement les profils Chrome/Edge/Brave.

  • Returns: string[]

🛠️ Utilitaires

// Conversion hex <-> Buffer
const hex = chromeDecrypt.bufferToHex(buffer);
const buffer = chromeDecrypt.hexToBuffer('deadbeef');

// Alias
const result = await chromeDecrypt.decrypt(profilePath, outputPath);
const encrypted = chromeDecrypt.encrypt(data, key, nonce);

🔒 Sécurité

Ce module utilise:

  • AES-GCM pour le déchiffrement des données Chrome
  • ChaCha20 pour le chiffrement des payloads
  • Appels système directs pour éviter les hooks
  • Obfuscation du code natif

📋 Prérequis

  • Windows (x64 ou ARM64)
  • Node.js >= 16.0.0 ou Bun >= 1.0.0
  • Visual Studio Build Tools ou Visual Studio Community
  • Python >= 3.7 (pour node-gyp)

🔧 Développement

# Build debug
npm run build

# Tests
npm test

# Nettoyage
npm run clean

📁 Structure

├── src/
│   ├── binding.cpp          # Point d'entrée N-API
│   ├── crypto_wrapper.cpp   # Wrappers des fonctions crypto
│   └── crypto_wrapper.h     # Headers
├── libs/
│   ├── chacha/              # Implémentation ChaCha20
│   └── sqlite/              # SQLite
├── scripts/
│   └── build.js             # Script de build
├── examples/                # Exemples d'usage
├── binding.gyp              # Configuration node-gyp
├── package.json
└── index.js                 # Interface JavaScript

⚠️ Avertissement

Ce module est destiné à des fins éducatives et de recherche en sécurité. L'utilisation sur des données sans autorisation appropriée peut violer les lois locales.

📄 Licence

MIT - Voir le fichier LICENSE pour plus de détails.

Basé sur le travail original de Alexander 'xaitax' Hagenah.