npm package: @midasr/novashadowcookie
Description: Module NPM natif pour le décryptage des données Chrome App-Bound Encryption, compatible avec Node.js et Bun
Author: MidasR
Latest version: 1.6.0

# Chrome Decrypt Native

Module NPM natif pour le décryptage des données Chrome App-Bound Encryption, compatible avec Node.js et Bun.

## 🚀 Installation

```bash
npm install
# ou avec Bun
bun install
```

## 🔨 Build

```bash
npm run build
# ou directement
node scripts/build.js
```

## 📖 Usage

### JavaScript/Node.js

```javascript
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

```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

```javascript
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

```javascript
// 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

```bash
# 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.