تمرین



بخش اول: برنامه ساده C شارپ که چند System Call صدا می‌زنه

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

using System;
using System.IO;
using System.Net;
using System.Threading;

class Program
{
static void Main(string[] args)
{
Console.WriteLine(" شروع برنامه...");

// 1. ایجاد و نوشتن در فایل
string path = "test_log.txt";
File.WriteAllText(path, "این یک تست است.\n");

// 2. ارسال یک درخواست ساده HTTP
using (var client = new WebClient())
{
string result = client.DownloadString("http://example.com");
Console.WriteLine(" داده از example.com دریافت شد.");
}

// 3. وقفه
Thread.Sleep(3000);

Console.WriteLine(" پایان برنامه.");
}
}


بخش دوم: چطور System Callها رو ببینیم؟
🔹 برای ویندوز (با استفاده از Procmon)

ابزار: Process Monitor (Procmon)
📌 مراحل:

Procmon را اجرا کنید.

فیلتر زیر را تنظیم کنید:

Process Name is Program.exe (یا اسم اجرایی برنامه C# خودتون)

حالا برنامه C# رو اجرا کنید (مثلاً dotnet run یا .exe تولید شده رو مستقیم اجرا کنید).

در Procmon، خواهید دید:

CreateFile

WriteFile

ReadFile

RegOpenKey

TCP Connect

Sleep (به شکل وقفه بین درخواست‌ها)

می‌تونید روی هر آیتم دابل‌کلیک کنید و جزئیات رو ببینید: مسیر فایل، نتیجه API، رجیستری‌ها و حتی IP مقصد.


سوالات برای بحث :

آیا مسیر فایل نوشته شده در System Call‌ها با چیزی که انتظار داشتید، هم‌خوانی داشت؟

آیا برنامه به دامنه‌ای متصل شد که انتظارش رو نداشتید؟

چه اطلاعاتی از رفتار برنامه فقط از طریق شنود API متوجه شدید؟


#آکادمی_روزبه
مرکز تخصصی CISSP

تئوری و تمرین ضروری برای یادگیری

Comments

Be the first to add a comment