View Full Version : سوال: چطوری میشه فهمید نامی که برای یک برنامه با CreateMutex تعیین شده چیه؟
az-navaei
دوشنبه 21 تیر 1389, 10:12 صبح
سلام.
چطوری میشه فهمید چه نامی را برای یک برنامه با CreateMutex تعیین کردند؟
با تشکر.
vcldeveloper
دوشنبه 21 تیر 1389, 13:32 عصر
CreateMutex برای برنامه نامی تعیین نمیکنه! بلکه یک Mutex میسازه، و این Mutex میتونه دارای نام باشه. اگر دارای نام بود، سایر پروسه ها می تونند از طریق نامش، به آن دسترسی پیدا کنند.
az-navaei
سه شنبه 22 تیر 1389, 09:29 صبح
ممنون از توضیحتون آقای کشاورز .
من یک برنامه دارم که در آن از mutex استفاده کردم و به آن نامی اختصاص دادم یکی از دوستان از این برنامه استفاده می کند و نامی که برای mutex قرار دادم را پیدا کرده است .
می خواهم ببینم آیا این امکان وجود دارد؟ از چه طریق؟
vcldeveloper
سه شنبه 22 تیر 1389, 13:48 عصر
می خواهم ببینم آیا این امکان وجود دارد؟ از چه طریق؟
ویندوز همچین چیزی رو به طور عادی به شما ارائه نمیکنه. البته ممکنه در سطح کرنل بشه با بررسی mutexهای ایجاد شده، و اینکه هر کدام توسط چه پروسه استفاده شدند، نام mutex مربوطه را متوجه شد؛ ولی اون کار پیچیده ایی هست، و نوعی هک محسوب میشه.
اما، از اونجایی که نام mutex به صورت string هست، میشه با بررسی stringهای موجود در فایل EXE، نام mutex را حدس زد. مثلا شما اسم mutex خودتون رو گذاشتید MyMutex یکی میتونه با جستجو در داخل فایل EXE، این رشته رو پیدا کنه. یک راه دیگه اینه که با Disassemble کردن برنامه شما، محل فراخوانی CreateMutex پیدا بشه، تا مشخص بشه که چه رشته ایی برای نام Mutex استفاده شده.
مصطفی ساتکی
سه شنبه 22 تیر 1389, 15:46 عصر
با اين تابع Object ها رو ليست مي كنه NtQueryDirectoryObject
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.