VirtualAllocEx → WriteProcessMemory → CreateRemoteThread`، از پارامترهای استارتاپ تابع `CreateProcessW — شامل lpCommandLine`، `lpEnvironment و فیلد غیرمستند lpReserved در ساختار STARTUPINFOW که به ShellInfo از نوع UNICODE_STRING در RTL_USER_PROCESS_PARAMETERS نگاشت میشود بهعنوان کانال انتقال داده استفاده میکند. در این مدل، هسته ویندوز خود بهعنوان Write Primitive عمل کرده و payload را بهصورت قانونی در فضای آدرس پروسه فرزند درج مینماید؛ در حالی که مهاجم صرفاً با فراخوانیهای Read-Only نظیر
NtQueryInformationProcess (کلاس ProcessBasicInformation) و NtReadVirtualMemoryEx آدرس payload را در PEB هدف بازیابی کرده و سپس با دستکاری CONTEXT_CONTROL ترد اصلی از طریق NtSetContextThread و بازنویسی RIP، کنترل اجرا را بدون نیاز به Suspend/Resume یا ایجاد ترد جدید، به شلکد واگذار میکند. کلاس
ShellCodeWriter با بهرهگیری از XOR Encoding مبتنی بر جفت مقادیر ۶۴ بیتی فاقد Null Byte، محدودیت رشتههای Null-Terminated در انتقال شلکد حاوی 0x00 را برطرف ساخته و امکان تزریق Payload های چندمرحلهای را فراهم میآورد. ارزیابی عملیاتی این تکنیک روی چهار راهحل EDR تجاری با کانفیگ پیشفرض، عدم تولید هیچگونه تلهمتری قابلتوجهی را نشان داد که نشاندهنده ضعف مدلهای شناسایی مبتنی بر لیست API های پرمانیتورشده است؛ بنابراین گذار از مانیتورینگ منفرد API ها به سمت همبستگی رفتاری (Behavioral Correlation) شامل هموقوعی برای مدافعان امری انکارناپذیر است.#RedTeam #MalDev #Evasion
@securation


