<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های علی ب.ر.م</title><link>https://virgool.ir/feed/@abarmoudeh</link><description></description><language>fa</language><pubDate>2026-11-12 14:40:57</pubDate><image><url>https://files.virgool.ir/upload/users/1632704/avatar/ap8FT0.jpeg</url><title>علی ب.ر.م</title><link>https://virgool.ir/@abarmoudeh</link></image><item><title>مکانیزم رمزنگاری واتس‌اپ وب و مهندسی معکوسی آن</title><link>https://virgool.ir/@abarmoudeh/مکانیزم-رمزنگاری-واتس-اپ-وب-و-مهندسی-معکوسی-آن-dkapomkq6a0q</link><description>Public Key / Private Key استخراجقبل از ایجاد Code QR ،واتس اپ وب 2 کلید Key Public و Key Private را با استفاده از توابع جاوااسکریپتی جهت استفاده در فرآیند های encryption و decryption ایجاد می کند که به روش زیر این کلیدها از مرورگر قابل استخراج می باشند.1 -از طریق یک تب جدید incognito وارد لینک واتس اپ وب می شویم.2 -سپس از طریق tools dev مرورگر کروم وارد قسمت source شده و فایل qr_bootstrap را درحالت قابل خوانا pretty-mode باز می کنیم.3 -در فایل مذکور به دنبال عبارت KeyPair:t گشته و در سطر مربوطه یک Breakpoint قرار می دهیم.4 -مجدد صفحه را ریلود میکنیم تا Breakpoint عمل کرده و کلید های ایجاد شده و قابل مشاهده باشند.5 -همان گونه که مشاهده می شود کلید ها در قسمت Scope/local/t در بخش Unit8Array قابلمشاهده می باشند.این کلید ها بوسیله الگوریتم donna_curve25519 و از 32 بایت تصادفی ایجاد شده اند. این نوع رمزنگارینوعی از رمزنگاری منحنی بیضوی (ECC) می باشد.جهت decrypt دیتا نیاز است تا یک کد رمزگشایی ساخته شود. که به این منظور کلید خصوصی از واتس اپوب به جای 32 بایت تصادفی اخذ می شود .( کد رمزگشایی باید یگانه باشد)self.private_key=curve25519.Private(“”.join([chr(x)forxinpriv_key_list]))self.public_key= self.private_key.get_public()استخراج Secretجهت استخراج کلید Secret از نرم افزار Suite Burpe استفاده می کنیم.پس از بازکردن صفحه واتس اپ وب و اسکن کد کیوآر، از نرم افزار Suite Burpe وارد قسمت proxy/websocket history شده و با فیلتر کردن کلمه secret ، کلید سکرت را استخراج می کنیم.در کد های واتس اپ وب، 2 تابع جالب داریم:setSharedSecret : این تابع کلید سکرت را به بخش های تقسیم کرده و کلید سکرت اشتراکی را پیکربندیمی کند.SharedSecret.E : این تابع از 2 پارامتر تشکیل شده، 32 بایت اولی و کلید سکرت که از ایجاد کیوآر کدایجاد شده است.هم اکنون با یک کلید Secret Shared مواجه هستیم که 80 بایت دارد:سپس ما تابع اعتبارسنجی hmac را داریم که داده های بسط یافته را به عنوان پارامتر “e “می گیرد و آن رابه 3 پارامتر تقسیم می کند:i (32 بایت اول به اشتراک گذاشته شده کلید AES است .r (32 بایت بعدی hmac است.(o.است data part AES پایانی بایت 16 سپس تابع HmacSha256 با پارامتر “r “فراخوانی خواهد شد و داده های پارامتر “s “را امضا خواهد کرد.پس از آن &#34; n &#34; بازبینی کننده hmac را دریافت خواهد کرد که با &#34; r &#34; مقایسه خواهد شد . ( hmac ازکلید اشتراکی )آخرین تابع encryption بلوک “aesCbcDecrypt “است که از 2 پارامتر استفاده می کند:S -یک اتصال بین 16 بایت پایانی کلید اشتراکی و بایت 64 کلید سکرتaes کلید-با استفاده از کلیدها می توانیم هر پیام دریافتی را رمزگشایی کنیم ، نتیجه رمزگشایی به صورت protobufخواهد بود.به منظور دستیابی به protobuf بایستی پلن خود را بر اساس protobuf whatsapp ایجاد کنیم که درفایل های واتس اپ وب قابل دسترسی است.</description><category>علی ب.ر.م</category><author>علی ب.ر.م</author><pubDate>Sat, 14 May 2022 13:09:30 +0430</pubDate></item></channel></rss>