ایجاد thread در یک پروسهی دیگر. چرا؟ و چگونه؟
توی ویندوز یک API وجود داره به اسم CreateRemoteThread که این امکان رو بهمون میده که بجای اینکه در پروسهی خودمون نخ ایجاد کنیم، بیاییم و یک پروسهی دیگه رو انتخاب کنیم و در دل اون یک نخ ایجاد کرده و کدی رو اجرا کنیم. در این بخش از دورهی Windows Internals دو ویدئو آماده کردهام که ابتدا به معرفی این API و کاربردهاش پرداخته و سپس در ویدئوی دوم سراغ برنامه نویسی و بررسی روند کار با ابزارهای SysInternals میریم.
در ویدئوی اول ابتدا استفاده از این روش برای دیباگ برنامهها، کسب اطلاعات از رویدادهای داخلی یک پروسه و انجام Code Injection معرفی شده و سپس به بررسی مراحلی که برای انجام DLL Injection لازم هستند میپردازیم. برای مشاهدهی این ویدئو از لینک زیر استفاده کنید:
https://www.aparat.com/v/jK7N9
در ویدئوی دوم و بخش عملی، ابتدا از طریق Code Injection و به کمک وقفهی شماره ۳ در یک پروسه Break Point ایجاد کرده و سپس یک فایل DLL ساده نوشته و با قرار دادن تابع LoadLibraryA در بدنهی Remote Thread باعث بارگذاری آن در پروسههای ویندوزی و اجرای کد، درون آنها میشویم. در انتها نیز به کمک Process Monitor اجرای API و تزریق کد در پروسه را بررسی میکنیم. برای مشاهدهی این ویدئو از لینک زیر استفاده کنید:
https://www.aparat.com/v/nsvCc
#windows #internals #threads #dll #injection
Post #68
1.87K