TGViewer
ReverseEngineering ReverseEngineering @reverseengine · 1.33K subscribers
Post #1856 40
Private Memory و
Image-backed Memory و
VAD

تا اینجا درباره RW → RX صحبت کردیم

این Memory اصلا متعلق به چیه؟
وقتی یک Process رو بررسی میکنید همه Memory هایی که میبینید یک جنس نیستن

برای تحلیل Memory-based Behavior باید بدونیم هر Region چطور ساخته شده و چه رابطه‌ای با فایل روی دیسک داره

Image-backed Memory

وقتی یک PE مثل:

notepad.exe
ntdll.dll
kernel32.dll

داخل Process قرار میگیره بخش‌ هایی از Virtual Address Space به یک Image File روی دیسک مرتبط میشن

به‌صورت مفهومی:

PE File
│
▼
Image Mapping
│
▼
Process Virtual Address Space

مثلا یک Executable ممکنه Section هایی مثل این داشته باشه:

notepad.exe
├── .text
├── .rdata
├── .data
└── ...

در Memory این بخش‌ها معمولا به Image مربوط به همان Module مرتبط هستن پس وقتی یک Region از نوع Image باشه یکی از سوال‌های مهم اینه:


این Region به کدوم Module روی دیسک مربوطه؟

Private Memory

نوع دیگری از Memory به شکل Private ایجاد میشه

این Memory مستقیما یک Image Mapping از فایل PE مشخص نیست
مثلا Process ممکنه برای موارد مختلف از Private Memory استفاده کنه:

Process
│
├── Image-backed Memory
│
└── Private Memory
├── Heap
├── Runtime Data
├── Temporary Allocations
└── Other Private Allocations

نکته مهم:

Private Memory ≠ Malware

برنامه‌ های کاملا Legitimate هم دائما از Private Memory استفاده میکنن

پس صرفا دیدن

Type = Private

هیچ چیزی رو اثبات نمیکنه


پس چرا Private Memory برای تحلیل امنیتی مهمه؟

چون باید چند ویژگی رو کنار هم بررسی کنیم

مثلا:

Private Memory
+
Executable Permission
+
Unusual Thread
+
Unexpected Call Stack

هر کدوم به تنهایی میتونه کاملا طبیعی باشه
ولی وقتی چند Evidence کنار هم قرار میگیرن ارزش Investigation بیشتر میشه

مثلا یک Region:

Private
RX`

به‌ تنهایی نمیگه:

Malicious

اما میتونه یک نقطه مناسب برای بررسی بیشتر باشه
تحلیلگر باید Context رو بررسی کنه


VAD
حالا می‌رسیم به VAD

Virtual Address Descriptor

VAD
یکی از ساختارهای داخلی
Windows

برای توصیف محدوده‌های یک Virtual Address Space Process هست

به‌ صورت مفهومی:

Process Virtual Address Space

0x0000
│
├── Region A
├── Region B
├── Region C
├── Region D
└── ...
0xFFFF

VAD ها به Kernel کمک میکنن اطلاعات
مربوط به محدوده‌ های Virtual Memory یک Process رو مدیریت و توصیف کنه
مثلا اینکه یک محدوده کجاست و چه ویژگی‌ هایی داره

Memory Region
فقط یک Address نیست
فرض کنید در Debugger یا Memory Analysis چنین چیزی ببینید:


Address: 0x7...
Size: 0x...
Protection: RX
Type: Private

اگر فقط Address رو ببینید اطلاعات زیادی از دست میدید

باید چند تا سوال بپرسید:

این Region کجاست؟
↓
چه اندازه‌ای داره؟
↓
Protection اون چیه؟
↓
Private
هشت یا Image؟
↓
به چه Mapping یا Allocation ای مربوطه؟
↓
چه Thread هایی به اون دسترسی یا اجرای مرتبط دارن؟
↓
در طول زمان چه اتفاقی برای اون افتاده؟


اینجا Memory Analysis از نگاه کردن به چند Hex Value تبدیل میشه به تحلیل رفتار


VAD در Memory Forensics

در Memory Forensics میتونیم ساختار های Virtual Memory مربوط به Process رو بررسی کنیم

به‌صورت مفهومی:

Process
│
├── Image
│ ├── .text
│ └── .data
│
├── DLLs
│
├── Heap
│
└── Private Regions

حالا فرض کنید یک Region پیدا کردیم که نیاز به بررسی بیشتری داره

میتونیم بپرسیم:

Protection چیه؟
↓
Private هست یا Image?
↓
به Module شناخته‌شده‌ ای مرتبطه؟
↓
محتواش چه شکلیه؟
↓
Thread ی با اون ارتباط داره
↓
Call Stack چه چیزی نشون میده؟
↓
وضعیت Region در طول زمان تغییر کرده؟

نکته مهم اینه که VAD به‌تنهایی جواب همه این سؤال‌ها رو نمیده

VAD
یکی از منابع Evidence در تحلیل Memory هست

یک سناریوی تحلیلی
فرض کنید داخل یک Memory Dump این وضعیت رو داریم:

Process: example.exe

Region A
Image
RX

Region B
Private
RW

Region C
Private
RX

Region A خیلی عادی به نظر میرسه

چون به یک Image مربوطه و Permission اون هم برای اجرای Code قابل انتظاره
More from @reverseengine
  1. Oct 15, 2026Reverse Engineer Anything v6.5.0 A tool for reverse engineering that allows AI agents to a…
  2. Oct 15, 2026Someone Used AI to Reverse-Engineer PS5 Security in Weeks: What Is REA? https://pub.toward…
  3. Oct 15, 2026How Dangerous Is REA (Reverse Engineer Anything) for Your App? https://21zerixpm.medium.co…
  4. Oct 15, 2026REA Is Impressive. But Reverse Engineering Was Never the New Part https://crizantlai.mediu…
  5. Oct 15, 2026QuarkslaB Dynamic binary Instrumentation https://qbdi.quarkslab.com/introduction @reversee…
  6. Oct 15, 2026angr’s documentation https://docs.angr.io/en/latest/search.html?q=Document&check_keywords=…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →