Chrome-App-Bound-Encryption-Decryption is a free, open source e-commerce platforms project written in C and released under MIT. It has 1,793 GitHub stars, 304 forks and 11 open issues, and was last pushed 7 months ago. On this registry it ranks #26 of 30 tracked projects in E-commerce Platforms, with 5 head-to-head comparisons available. It gained 2 stars over the last 3 tracked days.

What is Chrome-App-Bound-Encryption-Decryption?

What it is

Chrome-App-Bound-Encryption-Decryption is a Windows security research tool that demonstrates a bypass of Chromium's App-Bound Encryption. The project is described as a post-exploitation tool that uses direct syscall-based reflective process hollowing to launch a browser process in a suspended state and inject a payload that inherits the browser's identity and security context. It targets Chrome, Edge, Brave, and Avast, and it operates in user mode without requiring administrator privileges.

The concrete problem it addresses is that Chromium's App-Bound Encryption is intended to protect browser data from access by other processes. This tool shows how that protection can be subverted by running code inside a trusted browser process and making legitimate-appearing calls to the App-Bound Encryption COM server. It lives in the Chromium browser ecosystem on Windows x64 and ARM64, and it is positioned as a research demonstration of a fileless, in-memory bypass.

Key capabilities

  • Decrypts cookies, passwords, payment methods, IBANs, and Google OAuth tokens in user mode.
  • Creates a suspended browser process and injects a payload through direct syscall-based reflective process hollowing.
  • Resolves syscall numbers at runtime with Hell's Gate and hash-based function matching to avoid plaintext syscall names.
  • Embeds a ChaCha20-encrypted payload as a compile-time byte array, decrypts it in memory, and reflectively loads it without writing the DLL to disk.
  • Discovers and processes all browser user profiles, including Default and Profile 1, and exports data into structured JSON files organized by profile.
  • Collects browser fingerprinting data and system information as part of its extraction workflow.
  • Mimics browser-specific named pipe IPC patterns and destroys PE headers after injection to reduce forensic visibility.

Who uses it and how

  • Security researchers use it to demonstrate an in-memory bypass of Chromium App-Bound Encryption on Windows x64 and ARM64.
  • Post-exploitation workflows use it to extract browser cookies, passwords, payment methods, IBANs, and OAuth tokens from Chrome, Edge, Brave, and Avast.
  • Detection testing workflows use it to evaluate whether endpoint tools observe direct syscalls, reflective process hollowing, fileless payload loading, and COM invocation inside browser processes.
  • Profile audit workflows use it to enumerate multiple browser profiles and review exported JSON files for each profile.

Getting started

The provided README identifies Windows x64 and ARM64 as platform targets, but it does not give a Docker image, package manager command, hosted option, or step-by-step install or run procedure.

When to use it — and when not to

Use this project for Chromium App-Bound Encryption research, detection testing, or controlled demonstration of browser data exposure, because it is described as a post-exploitation tool rather than a supported production service. No paid product is listed, so no direct replacement comparison is provided. The README also does not mention database, storage, SMTP, or hosted deployment operations, and the lack of installation guidance makes it unsuitable for routine deployment.

project readme (upstream, from github) — read inline

ChromElevator (Chrome App-Bound Encryption Decryption)

🚀 Overview

Build Status License Platform Languages Ask DeepWiki

A post-exploitation tool demonstrating a complete, in-memory bypass of Chromium's App-Bound Encryption (ABE). This project utilizes Direct Syscall-based Reflective Process Hollowing to launch a legitimate browser process in a suspended state, stealthily injecting a payload to hijack its identity and security context. This Living-off-the-Land (LOTL) technique subverts the browser's own security model. The fileless approach allows the tool to operate entirely from memory, bypassing user-land API hooks to decrypt and exfiltrate sensitive user data (cookies, passwords, payments) from modern Chromium browsers.

If you find this research valuable, I'd appreciate a coffee:
ko-fi

🛡️ Core Technical Pillars

This tool's effectiveness is rooted in a combination of modern, evasion-focused techniques:

  • Direct Syscalls for Evasion: Bypasses EDR/AV user-land hooks on standard WinAPI functions by invoking kernel functions directly. The engine dynamically resolves syscall numbers at runtime using Hell's Gate technique with hash-based function matching (no plaintext syscall names in the binary).

  • Direct Syscall-Based Process Hollowing: A stealthy process creation and injection technique. Instead of injecting into a high-traffic, potentially monitored process, it creates a new, suspended host process. This significantly reduces the chances of detection, as all memory manipulations occur before the process begins normal execution.

  • Fileless In-Memory Payload: The payload DLL never touches the disk on the target machine. It is embedded as a ChaCha20-encrypted compile-time byte array with compile-time derived keys, decrypted in-memory, and reflectively loaded, minimizing its forensic footprint and bypassing static file-based scanners.

  • Reflective DLL Injection (RDI): A stealthy process injection method that circumvents LoadLibrary for the main payload, thereby evading detection mechanisms that monitor module loads. The self-contained bootstrap loader maps PE sections, performs relocations, and resolves imports from memory.

  • Target-Context COM Invocation: The lynchpin for defeating App-Bound Encryption. By executing code within the trusted browser process, we inherit its identity and security context, allowing us to make legitimate-appearing calls to the ABE COM server and satisfy its path-validation security checks.

⚙️ Features

Core Functionality

  • 🔓 Full user-mode decryption of cookies, passwords, payment methods, IBANs, and Google OAuth tokens.
  • 📁 Discovers and processes all user profiles (Default, Profile 1, etc.).
  • 📝 Exports all extracted data into structured JSON files, organized by profile.
  • 🔍 Comprehensive browser fingerprinting with system information.

Stealth & Evasion

  • 🛡️ Fileless Payload Delivery: In-memory decryption and injection of an encrypted embedded payload.
  • 🛡️ Direct Syscall Engine: Bypasses common endpoint defenses by avoiding hooked user-land APIs for all process operations.
  • 🛡️ Hash-Based Syscall Resolution: No plaintext Nt*/Zw* function names in binary—uses compile-time DJB2 hashes.
  • 🛡️ Compile-Time Key Derivation: Encryption keys derived from build metadata, unique per build.
  • 🛡️ PE Header Destruction: Post-injection PE headers obliterated with pseudo-random data to evade memory scanners.
  • 🛡️ IPC Mimicry: Browser-specific named pipe patterns that blend with legitimate browser IPC traffic.
  • 🤫 Process Hollowing: Creates a benign, suspended host process for the payload, avoiding injection into potentially monitored processes.
  • 👻 Reflective DLL Injection: Stealthily loads the payload without suspicious LoadLibrary calls.
  • 🔒 Non-Intrusive File-Lock Bypass: Uses syscall-based handle duplication to access locked SQLite databases without terminating browser processes. Optional --kill flag available for full process termination.
  • 💼 No Admin Privileges Required: Operates entirely within the user's security context.

Compatibility & Usability

  • 🌐 Works on Google Chrome, Brave, Edge, & Avast Secure Browser.
  • 💻 Natively supports x64 and ARM64 architectures.
  • 🚀 Standalone Operation: Automatically creates a new browser process to host the payload, requiring no pre-existing running instances.
  • 📁 Customizable output directory for extracted data.
image

📦 Supported & Tested Versions

Browser Tested Version (x64 & ARM64)
Google Chrome 144.0.7559.133
Google Chrome Beta 145.0.7632.18
Brave 1.86.148 (144.1.86.148)
Microsoft Edge 145.0.3800.36
Avast Secure Browser 143.0.33371.147

Note: Chrome/Brave/Edge 144+ use the new IElevator2 COM interface. This tool automatically uses IElevator2 when available and falls back to IElevator for older versions. Avast Secure Browser uses a custom IElevatorChrome interface with an extended vtable (12 methods, DecryptData at offset 104).

🔍 Feature Support Matrix

This matrix outlines the extraction capabilities for each supported browser.

Feature Google Chrome Microsoft Edge Brave Avast Secure Browser
Cookies ✅ ABE ✅ ABE ✅ ABE ✅ ABE
Passwords ✅ ABE ✅ ABE ✅ ABE ✅ ABE
Payment Methods ✅ ABE ✅ ABE ✅ ABE ✅ ABE
IBANs ✅ ABE ❌ N/A ✅ ABE ✅ ABE
Auth Tokens ✅ Google ❌ N/A ❌ N/A ❌ N/A

🔬 Technical Workflow

The tool's execution is focused on stealth and efficiency, built around a Direct Syscall-based Reflective Hollowing process. This approach ensures that few high-level API calls are made and that the payload operates from within a legitimate, newly created browser process.

Stage 1: The Injector (chromelevator.exe)

  1. Pre-Flight & Initialization: The injector begins by initializing its direct syscall engine, dynamically parsing ntdll.dll to resolve syscall numbers (SSNs) using hash-based matching and locate kernel transition gadgets (syscall/ret or svc/ret). If the --kill flag is specified, it uses NtGetNextProcess and NtTerminateProcess syscalls to terminate all running instances of the target browser, releasing file locks on SQLite databases.
  2. Payload Preparation: The core payload DLL, which is embedded as a ChaCha20-encrypted compile-time byte array with compile-time derived keys, is decrypted entirely in-memory.
  3. Process Hollowing: Instead of targeting an existing process, the injector creates a new instance of the target browser in a CREATE_SUSPENDED state (CreateProcessW). This pristine, suspended process serves as the host for our payload.
  4. Reflective Injection via Syscalls: Using the direct syscall engine, the injector performs a series of stealthy actions on the suspended process:
    • It allocates memory using NtAllocateVirtualMemory (direct syscall).
    • It writes the decrypted payload DLL into the allocated space with NtWriteVirtualMemory.
    • It changes the memory region's permissions to executable using NtProtectVirtualMemory (direct syscall).
    • It creates a named pipe for communication and writes the pipe's name into the target's memory.
  5. Execution & Control: A new thread is created in the target process using NtCreateThreadEx. The thread's start address points directly to the payload's Bootstrap export, with the address of the remote pipe name as its argument. The original main thread of the browser remains suspended and is never resumed. The injector then waits for the payload to

readme truncated — read the full docs on github

Frequently asked questions

Is Chrome-App-Bound-Encryption-Decryption free to use?

Chrome-App-Bound-Encryption-Decryption is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Chrome-App-Bound-Encryption-Decryption do?

Bypass Chromium's App-Bound Encryption via Direct Syscall-based Reflective Process Hollowing. Extract cookies, passwords, payment methods & tokens from Chrome,

What is Chrome-App-Bound-Encryption-Decryption written in?

Chrome-App-Bound-Encryption-Decryption is primarily written in C. Its source is publicly available at https://github.com/xaitax/Chrome-App-Bound-Encryption-Decryption, and it has 1,793 GitHub stars.