TGViewer
ReverseEngineering ReverseEngineering @reverseengine · 1.33K subscribers
Post #1897 44
نمای ساده :

Program.exe
|
v
Import Table
|
v
Required DLLs
|
v
Resolve Functions
|
v
Import Address Table (IAT)

جدول IAT شامل آدرس‌ هایی میشه که برای دسترسی به توابع Import شده استفاده میشن

به همین دلیل محتوای بعضی قسمت‌ های PE در Memory میتونه با مقادیر اولیه‌ ی متناظر در فایل روی دیسک متفاوت باشه

پس چرا PE روی دیسک و Memory ممکنه فرق داشته باشن؟

چند دلیل مهم وجود داره:

Relocation:
بعضی آدرس‌های وابسته به محل بارگذاری اصلاح میشن

Import Resolution:
آدرس توابع Importشده در فرایند بارگذاری مشخص میشه

Memory Layout:
ساختار Section ها در حافظه لزوما مثل چیدمان خام فایل نیست

Runtime Changes:
خود برنامه ممکنه هنگام اجرا بعضی داده‌ های حافظه رو تغییر بده

Zero Initialization:
بعضی قسمتها ممکنه در حافظه فضای اختصاص‌ یافته داشته باشن ولی داده‌ی متناظری در فایل نداشته باشن و با صفر مقداردهی بشن

پس اگر یک تحلیل‌گر بخواد فایل روی دیسک رو با Memory مقایسه کنه نباید انتظار داشته باشه تمام Byte ها دقیقا یکی باشن

این موضوع در Memory Forensics چه کاربردی داره؟

فرض کنی در حال بررسی یک Memory Dump هستید
یک بخش پیدا میکنید که محتوای اون شبیه ساختار یک PE به نظر میرسه

چند سوال از خودتون میپرسید:

Header معتبره؟

Section
ها قابل شناسایی هستن؟

آدرس‌های موجود با ساختار Image سازگارن؟

Memory
به یک Module شناخت ه‌شده مربوطه؟

تفاوت‌ های فایل و Memory قابل توضیح هستن؟

نکته‌ی مهم اینه که پیدا کردن امضای MZ به‌تنهایی اثبات نمیکنه که یک PE معتبر یا قابل اجرا در اون ناحیه وجود داره
برای تحلیل درست باید مجموعه‌ ای از شواهد رو بررسی کرد

همچنین یک PE ممکنه به دلیل نحوه‌ ی اپلود تغییرات زمان اجرا یا حتی ناقص بودن داده‌های Memory Dump به‌سادگی قابل بازیابی نباشه

ارتباط این با EDR

EDR
میتونه از اطلاعات مربوط به Module ها حافظه و رفتار Process برای بررسی فعالیت‌ های مشکوک استفاده کنه
برای مثال ممکنه این اطلاعات رو کنار هم قرار بدیم:

Process Information
+
Loaded Modules
+
Memory Regions
+
Thread Activity
+
Call Stack
+
Execution Timeline

اگر اطلاعات Memory با وضعیت مورد انتظار یک برنامه سازگار نباشه ممکنه نیاز به بررسی بیشتری وجود داشته باشه

ولی باید دقت کنیم که:

تفاوت Memory با فایل روی دیسک به‌تنهایی نشونه‌ی قطعی دست‌کاری مخرب نیست

بعضی تفاوت‌ ها نتیجه‌ی طبیعی اپلود و اجرای برنامه هستن


تا اینجا با چند مفهوم مهم آشنا شدیم:

این مفاهیم برای ما داخل بحث تحلیل حافظه و بررسی رفتار برنامه‌ ها خیلی خیلی مهمن

@reverseengine
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 →