ویرگول
ورودثبت نام
R3v3rse
R3v3rseیک علاقه مند
R3v3rse
R3v3rse
خواندن ۱۱ دقیقه·۶ روز پیش

چطور تحلیلگر بدافزار شیم؟

اولین کاری که باید بکنی اینه: برو سراغ یه هوش مصنوعی مثل ChatGPT یا Claude یا Google Gemini یا هرچیز دیگه ای.

باهاش چت کن. ازش سوال بپرس. هرچیزی رو که نمیفهمی، ازش بخواه سادهتر برات توضیح بده.

از هوش مصنوعی بپرس:

  • «من هیچی از برنامهنویسی نمیدونم، از کجا شروع کنم؟»

  • «این اصطلاح یعنی چی؟ برام مثل یه بچه ۱۰ ساله توضیح بده»

  • «یه مثال بزن از کدی که این کار رو میکنه»

هوش مصنوعی معلم خصوصی همیشه در دسترس توئه. ازش استفاده کن. و قویترین معلم اگه بتونی پرامپت یا دستور خوبی به هوش مصنوعی بدی حتما یک مقاله در این مورد بخون

یادگیری زبانها: از بالا به پایین

باید زبانها رو به ترتیب یاد بگیری. از ساده به سخت. از سطح بالا به سطح پایین.


اول: پایتون (Python)

پایتون سادهترین زبانه. شبیه انگلیسی حرف میزنه. همین اول کار برو سراغش.

چه چیزایی رو باید یاد بگیری؟

  • حلقهها (for, while) - یعنی تکرار کردن یه کار چند بار

  • شرطها (if, else) - یعنی اگه این شد اون کار رو بکن

  • توابع (def) - یعنی یه تیکه کد رو بذار کنار، هر وقت خواستی صدا بزنش

  • کار با فایلها (open, read, write) - یعنی باز کردن و خوندن و نوشتن توی فایل

چقدر وقت بذاری؟ حدود ۲ هفته روزی ۱-۲ ساعت کافیه. فقط پایهاش رو یاد بگیر، حرفهای نشو.


دوم: سی (C)

بعد از پایتون، برو سراغ سی.

چرا سی واجبه؟ چون خیلی از بدافزارها به زبان سی نوشته میشن. همچنین برای فهمیدن حافظه و اشارهگرها باید سی بلد باشی.

چه چیزایی رو باید یاد بگیری؟

  • اشارهگرها (pointers) - این مهمترین قسمته. اگه اینو بفهمی، نصف راه رو رفتی

  • تخصیص حافظه (malloc, free) - یعنی چطور حافظه رو برداری و بعد آزادش کنی

  • آرایهها و رشتهها

  • ساختارها (struct)

  • فایلهای هدر (header files)

سی سختتر از پایتونه. ناامید نشو. اکثر تازهکارها اینجا خسته میشن. صبور باش.

چقدر وقت بذاری؟ حدود ۱ ماه.


سوم: C++

بعد از سی، برو سراغ C++.

C++ مثل سی هست ولی قویتر. خیلی از بدافزارهای حرفهای با C++ نوشته میشن.

چه چیزایی رو باید یاد بگیری؟

  • کلاسها و اشیاء (classes and objects)

  • بردارها (vectors)

  • رشتهها (strings)

  • ورودی/خروجی (cin, cout)

اگه سی رو خوب فهمیده باشی، C++ سختی زیادی نداره.

چقدر وقت بذاری؟ حدود ۲ هفته.


چهارم: جاوا اسکریپت (JavaScript)

بله جاوا اسکریپت. شاید به درد بدافزار نخوره، اما خیلی از بدافزارهایی که از طریق مرورگر پخش میشن به این زبانن.

چه چیزایی رو باید یاد بگیری؟

  • دستکاری DOM

  • رویدادها (events)

  • AJAX (ارسال درخواست به سرور بدون رفرش صفحه)

  • تابع eval (این خیلی مهمه، بدافزارها ازش استفاده میکنن)

این زبان سبکه. زیاد وقت نمیگیره.

چقدر وقت بذاری؟ حدود ۱ هفته.


پنجم: پاورشل (PowerShell)

پاورشل زبان اسکریپت نویسی خود ویندوزه. خیلی از بدافزارهای امروزی از پاورشل استفاده میکنن. چون روی همه ویندوزها هست و به همه جای سیستم دسترسی داره.

چه چیزایی رو باید یاد بگیری؟

  • کمدلتها (cmdlets) مثل Get-ChildItem, Copy-Item

  • پایپلاین (|) - یعنی خروجی یه دستور رو بده به دستور بعدی

  • اسکریپتنویسی ساده

  • دسترسی به داتنت (.NET)

چقدر وقت بذاری؟ حدود ۲ هفته.


ششم: اسمبلی (Assembly)

آخرین و سختترین. اسمبلی.

اسمبلی نزدیکترین زبان به پردازنده. بدافزار وقتی توی دیباگر باز میشه، به زبان اسمبلی نشونت میده. اگه بخوای کد بدافزار رو توی دیباگر مثل x64dbg یا IDA Pro بخونی، باید اسمبلی بلد باشی.

چه چیزایی رو باید یاد بگیری؟

  • رجیسترها (EAX, EBX, ECX, EDX)

  • دستورات پایه (mov, add, sub, cmp, jmp)

  • پشته (stack) و نحوه push و pop کردن

  • فراخوانی توابع (call و ret)

نیازی نیست حرفهای بشی. فقط پایهاش رو یاد بگیر که بتونی بفهمی بدافزار داری چیکار میکنه.

چقدر وقت بذاری؟ حدود ۱ ماه.

آزمایشگاه شخصی رو بساز (اجباری)

این قدم رو نمیتونی رد کنی. باید یه آزمایشگاه شخصی برای تحلیل بدافزار راه بندازی.


سیستم اصلیات باید لینوکس باشه

سیستم عامل اصلی کامپیوترت رو لینوکس نصب کن.

چرا لینوکس؟

ابزارهای بیشتر : اکثر ابزارهای تحلیل بدافزار برای لینوکسن

کنترل کامل : توی لینوکس میدونی چطور همه چی رو کنترل کنی

امنیت بیشتر : بدافزارهای ویندوزی روی لینوکس اجرا نمیشن

رایگان : هیچ هزینهای نداره

سبک : روی سختافزار قدیمی هم خوب کار میکنه

کدوم لینوکس رو نصب کن؟ اوبونتو (Ubuntu) رو نصب کن. سادهترین و محبوبترینه.

ویندوز رو متخصص بشو

شاید بگی «گفتی لینوکس نصب کن، حالا میگی ویندوز یاد بگیر؟»

بله. چون نون تو تحلیل بدافزار توی ویندوزه. اکثر بدافزارها برای ویندوز نوشته میشن. پس باید ویندوز رو خوب بلد باشی.

چه چیزایی از ویندوز رو باید یاد بگیری؟

  • رجیستری (Registry) - یعنی جایی که ویندوز تنظیماتش رو ذخیره میکنه. بدافزارها خودشون رو اینجا قایم میکنن

  • فرآیندها (Processes) - هر برنامه اجرا شده یه فرآینده. بدافزارها گاهی خودشون رو توی فرآیندهای دیگه قایم میکنن

  • APIهای مهم ویندوز - توابعی مثل CreateFile (برا ساختن فایل)، WriteProcessMemory (برا نوشتن توی حافظه فرآیند دیگه)، VirtualAlloc (برا گرفتن حافظه)

  • سرویسها (Services) - برنامههایی که با ویندوز روشن میشن. بدافزارها خودشون رو به عنوان سرویس ثبت میکنن

یه محیط مجازی بساز با KVM/QEMU

حالا که سیستم اصلیت لینوکسه، باید توش یه محیط مجازی برای اجرای بدافزارها بسازی.

از چی استفاده کنی؟ KVM/QEMU.

چرا KVM/QEMU رو انتخاب کنی، نه VirtualBox یا VMware؟

سرعتKVM : بومی لینوکسه، تقریباً بدون افت اجرا میشه. VirtualBox و VMware کندترن
شناسایی نشدن : بدافزارهای حرفهای VirtualBox و VMware رو تشخیص میدن و اجرا نمیشن. چون میدونن دارن توی محیط مجازی اجرا میشن. ولی KVM رو خیلی کم تشخیص میدن
امنیت بیشتر : ایزولهسازی بهتری داره. بدافزار نمیتونه از توی KVM بزنه بیرون
رایگان و متنباز : هیچ محدودیتی نداری
سبکتر : منابع کمتری از سیستمت میگیره

VirtualBox و VMware برای شروع اشکال ندارن. ولی اگه جدی هستی و میخوای بدافزارهای حرفهای رو تحلیل کنی، باید بری سراغ KVM/QEMU.

توی محیط مجازی ، ویندوز نصب کن

حالا که KVM/QEMU رو راه انداختی، توش ویندوز نصب کن. ترجیحاً ویندوز ۱۰. قدیمیتر باشه بهتره چون بدافزارها روش بهتر کار میکنن.

این ویندوز داخل محیط مجازی فقط برای اجرای بدافزار استفاده میشه. هیچ چیز مهمی توش نریز.

حتماً قبل از هر کاری ازش اسنپشات (Snapshot) بگیر. یعنی یه نسخه پشتیبان سالم داشته باشی. اگه بدافزار سیستم رو خراب کرد، یک کلیک برگردی به حالت اول.


ابزارهای مهم رو یاد بگیر

قبل از اینکه بری سراغ تحلیل بدافزار، باید یه سری ابزار رو بلد باشی. این ابزارها بهت کمک میکنن ببینی بدافزار توی سیستم چیکار میکنه.


گروه اول: ابزارهای مشاهده رفتار (Dynamic Analysis)

این ابزارها رو وقتی بدافزار داره اجرا میشه استفاده میکنی. میبینی بدافزار چه فایلهایی میسازه، چه کلیدهایی توی رجیستری مینویسه، با چه سرورهایی حرف میزنه.

Process Monitor (ProcMon) - ساخته مایکروسافت. نشون میده بدافزار چه فایلهایی رو باز میکنه، چه کلیدهایی توی رجیستری مینویسه، چه خطایی میده

Process Explorer - ساخته مایکروسافت. نشون میده چه فرآیندهایی توی سیستم دارن اجرا میشن، چه رابطه والد-فرزندی بینشونه. خیلی سادهست، نصب کن باهاش بازی کن.

Wireshark - متنباز. نشون میده بدافزار با کدوم آدرسهای اینترنتی ارتباط برقرار میکنه. یه دوره ۱ ساعته کافیه، فقط فیلتر کردن رو یاد بگیر.

TCPView - ساخته مایکروسافت. نسخه سادهتر Wireshark. نشون میده کدوم برنامه با کدوم پورت و آدرس وصل شده. نصب کن، بازش کن، خودت میفهمی.

RegShot - متنباز. قبل و بعد از اجرای بدافزار از رجیستری عکس میگیره، بعد نشون میده چه چیزایی عوض شده. خیلی سادهست، دوتا دکمه داره: Scan و Compare.

گروه دوم: ابزارهای تحلیل استاتیک (Static Analysis)

این ابزارها رو وقتی بدافزار اجرا نشده استفاده میکنی. فقط فایل رو باز میکنی و میبینی توش چیه.

Detect It Easy (DIE) - متنباز. نشون میده فایل با چه زبانی نوشته شده، بسته بندی شده یا نه، چه کتابخانههایی استفاده کرده. نصب کن، فایل رو بنداز توش، به خروجی نگاه کن.

PE-Bear - متنباز. فایلهای اجرایی ویندوز (exe, dll) رو باز میکنه، نشون میده چه بخشهایی داره. یه ویدیو ۱۰ دقیقهای ببین کافیه.

HxD - متنباز. ادیتور هگزادسیمال. میتونی بایت به بایت فایل رو ببینی. بازش کن، یه فایل متنی ساده توش بریز، ببین چطور نشون میده.

Strings - ساخته مایکروسافت. تمام متنهای قابل خوندن داخل فایل رو درمیاره (آدرس سرورها، پیامها، اسم فایلها). توی خط فرمان بنویس strings file.exe خودت میبینی.

گروه سوم: ابزارهای دیباگ (Debugging)

این ابزارها رو برای تحلیل عمیق استفاده میکنی. میتونی بدافزار رو خط به خط اجرا کنی و ببینی هر دستور چیکار میکنه.

x64dbg - متنباز. دیباگر ویندوز. میتونی بدافزار رو خط به خط اجرا کنی و ببینی چیکار میکنه. این سختترین ابزار بین همهست. اول بقیه رو یاد بگیر، بعد بیا سراغ این.

IDA Pro (نسخه رایگان) - ساخته هگز-ری. معروفترین ابزار تحلیل بدافزار. کد اسمبلی رو نشون میده و میتونی توش بگردی. نسخه رایگانش رو نصب کن. یه فایل ساده توش باز کن. کلیک کن ببین چی میشه.

Ghidra - ساخته سازمان امنیت ملی آمریکا (NSA). رقیب رایگان IDA. خیلی قویست. میتونه کد اسمبلی رو به زبان سی برگردونه. از IDA سختتر نیست. ویدیوهای معرفی رو ببین.

گروه چهارم: سندباکسهای آنلاین (برای وقتی که نت وصل شد)

اگه نت درست شد و تونستی ابزارها رو نصب کنی یا محیط مجازی راه بندازی، میتونی از سندباکسهای آنلاین استفاده کنی. فایل رو آپلود میکنی، اونجا برات اجراش میکنن و گزارش کامل میدن.

Any.run - روزانه ۳ بار رایگان. فایل رو آپلود کن، ببین چطور اجرا میشه.

HybridAnalysis - رایگان، نیاز به ثبتنام ساده. گزارش خیلی خوبی میده.

Triage - رایگان با صف انتظار. گاهی باید چند دقیقه صبر کنی تا نوبت فایلت بشه.

VirusTotal - فایل رو آپلود میکنی، نتیجه ۶۰ تا آنتیویروس مختلف رو نشون میده. برای چک سریع عالیه.

اول کدوم ابزار رو یاد بگیرم؟

برای شروع، فقط این ۳ تا کافیه:

اول Process Monitor - ببین بدافزار حین اجرا چیکار میکنه.

دوم Wireshark - ببین با کجا حرف میزنه.

سوم Strings - ببین توی فایل چی نوشته شده.

بعد از اینکه با اینا راحت شدی، برو سراغ بقیه.

یادت باشه: هیچکدوم از این ابزارها رو روی سیستم اصلیت نصب نکن. همه رو توی محیط مجازی نصب کن و اونجا ازشون استفاده کن.

شروع کن به تحلیل کن

حالا که همه چیز آمادهست:

  • هوش مصنوعی بلدی باهاش حرف بزنی

  • پایتون، سی، C++، جاوااسکریپت، پاورشل، اسمبلی رو پایهاش رو یاد گرفتی

  • سیستم اصلیت لینکوسه

  • ابزار ها رو بلدی

  • KVM/QEMU رو راه انداختی

  • توش ویندوز نصب کردی

حالا برو سراغ اصل ماجرا:

مرحله ۱: یه بدافزار ساده بردار. مثلاً همون ILOVEYOU که کدش توی مقاله قبلی هست.

مرحله ۲: فایل رو ببر توی محیط مجازی. اونجا اجراش کن.

مرحله ۳: ببین چطور رفتار میکنه. با Task Manager ببین چه فرآیندهایی روشن میشه. با Process Monitor ببین چه فایلهایی رو عوض میکنه. با Wireshark ببین با چه سرورهایی ارتباط میگیره.

مرحله ۴: بعد از اینکه دیدی چطور کار میکنه، اسنپشات رو برگردون به حالت اول.

مرحله ۵: برو سراغ بدافزار بعدی. یه کم سختتر. دوباره همین کارا رو بکن.

هر چی بیشتر تمرین کنی، بهتر میشی. اول با بدافزارهای ساده شروع کن. بعد برو سراغ بدافزارهای پیچیدهتر.

یه چیزی که خیلیا یادشون میره: شبکه

بدافزار که فقط توی یه کامپیوتر نمیمونه. میخواد برسه به یه سرور خارجی. میخواد فرمان بگیره. میخواد اطلاعات دزده رو بفرسته بیرون. میخواد از یه کامپیوتر به کامپیوتر دیگه بپره.

اگه شبکه بلد نباشی، نصف ماجرا رو نمیبینی.

چه چیزایی از شبکه رو باید بدونم؟

  • آیپی و پورت چیه - بدافزار با کدوم آدرس و کدوم پورت حرف میزنه؟ پورت ۴۴۳ یعنی HTTPS، پورت ۸۰ یعنی HTTP، پورت ۵۳ یعنی DNS. باید اینا رو بشناسی.

  • DNS چطور کار میکنه - بدافزار وقتی میخواد برسه به google.com، اول میره سراغ دیاناس که این اسم رو تبدیل به آیپی کنه. اگه ببینی بدافزار داری به یه دامنه عجیب وصل میشه، یعنی خرابکاری توی کاره.

  • پروتکل HTTP/HTTPS - خیلی از بدافزارها برای ارتباط با سرورشون از پروتکل وب استفاده میکنن. باید بتونی یه درخواست HTTP رو بخونی و بفهمی بدافزار داره چی میفرسته.

  • TCP در مقابل UDP - بدافزارهای کنترل از راه دور معمولاً از TCP استفاده میکنن (قابل اعتمادتر). بدافزارهایی که فقط میخوان یه سری اطلاعات بفرستن و برن، ممکنه از UDP استفاده کنن.

  • Wireshark و فیلتر کردنش - این ابزار رو قبلاً گفتم. ولی حالا میگم چرا مهمه. با Wireshark میتونی ببینی بدافزار دقیقاً چه منتظاری به کدوم سرور فرستاده. مثلاً یه درخواست POST به آدرس /login.php با یه سری دیتا. اون دیتا چی بوده؟ رمزهای دزدیده شده؟ اطلاعات کارت بانکی؟ باید بتونی بخونیش.

چقدر وقت بذاری؟

زیاد نه. حدود ۲ هفته. مفاهیم پایه شبکه رو یاد بگیر:

  • مدل OSI (حداقل لایههای بالاش رو بدون: کاربرد، انتقال، شبکه)

  • آیپی و سابنت

  • TCP handshake (اگه نمیدونی چطور یه ارتباط TCP برقرار میشه، برو یه ویدیو ۱۰ دقیقهای ببین)

  • دیاناس و نحوه رزولوشن اسم به آیپی

  • HTTP متدها (GET, POST) و کدهای وضعیت (۲۰۰، ۴۰۴، ۵۰۰)

یادت باشه: بدافزارهای امروزی دارن هوشمندتر میشن. بعضیهاشون از DNS به عنوان کانال ارتباطی استفاده میکنن (DNS tunneling). بعضیها توی ترافیک HTTPS قایم میشن. بعضیها از پروتکلهای عجیب و غریب استفاده میکنن.

اگه شبکه بلد نباشی، اینا رو نمیبینی

جمعبندی: هیچ راه میانبری نیست

این مسیریه که باید بری. هیچ راه کوتاهی نداره.

خلاصه کارهایی که باید بکنی:

۱. با هوش مصنوعی چت کن و سوال بپرس

۲. زبانها رو به ترتیب یاد بگیر: پایتون سی C++ جاوااسکریپت پاورشل اسمبلی

۳. سیستم اصلیت رو لینوکس کن

۴. ویندوز رو متخصص بشی همراهش شبکه هم یاد بگیری

۵. محیط مجازی با KVM/QEMU راه بنداز

۶. شروع کن به تحلیل بدافزارهای ساده، یکی یکی

صبر داشته باش. ناامید نشو. هر کی از الان شروع کنه، یه سال بعد از خودش راضیتره.

نکته

راستش رو بخوای، این مقاله رو تو شرایطی نوشتم که نت مدام قطع میشد چند بار مجبور شدم از اول بنویسم.

اما نوشتم. چون فکر کردم شاید به کارت بیاد.

حالا اگه خوندی و به کارت اومد، میتونی با یه دونیت کوچیک بگی «داداش، خسته نباشی، ادامه بده».

با ۲۰ هزار تومن میتونم یه فنجون قهوه بخرم و بشینم بنویسم.

با ۵۰ هزار تومن، یه بدافزار جدید از آرشیوم برات تحلیل میکنم.

با ۱۰۰ هزار تومن، میتونم یه مقاله طولانیتر بنویسم و رمز و راز ها و چیت های کارم رو بگم .

حمایت تو یعنی من بتونم وقت بذارم برای نوشتن. نه اینکه برم دنبال کار دیگه.

اگه میتونستی و خواستی، بزن رو دکمه دونیت. ممنونم. 🤝

▀▀▀▀▀▀▀▀▀▀▀▀دونیت▀▀▀▀▀▀▀▀▀▀▀▀▀

خیلی ممنون

هوش مصنوعیبدافزارنقشه راه
۹
۵
R3v3rse
R3v3rse
یک علاقه مند
شاید از این پست‌ها خوشتان بیاید