ورود

نسخه کامل مشاهده نسخه کامل : تعریف یک Clsid جدید



winxp
12-04-2008, 11:51
سلام عزیزان

کمک میخواستم در مورد Clsid هایی که تو ریجستری هستن

اینا غیر از ریجستری در کجاها ثبت میشن

مثلا Control Panel یه Clsid داره که اگه رو پوشه بزاری .... میدونین باقیشو

این شماره تو ریجستری ثبته و فکر کنم توی یکی از پروسه ها که فکر کنم تو Svchost .exe باشه که اون هم از فایل Control Exe اون شماررو فراخوانی میکنه

درسته ؟

حالا سوالم اینه که اگه من بخوام یه Clsid جدید تعریف کنم قوانینش چیه

خیلی مهمه

فعلا :11:

Farahmand Farshidy
12-04-2008, 17:00
سلام بهروز عزیز!:11::11:

خوبی عزیزم؟

امیدوارم صحتمند و سر حال باشی.


سلام عزیزان

کمک میخواستم در مورد Clsid هایی که تو ریجستری هستن

اینا غیر از ریجستری در کجاها ثبت میشن

مثلا Control Panel یه Clsid داره که اگه رو پوشه بزاری .... میدونین باقیشو

این شماره تو ریجستری ثبته و فکر کنم توی یکی از پروسه ها که فکر کنم تو Svchost .exe باشه که اون هم از فایل Control Exe اون شماررو فراخوانی میکنه

درسته ؟

حالا سوالم اینه که اگه من بخوام یه Clsid جدید تعریف کنم قوانینش چیه

خیلی مهمه

فعلاعجب؟:18:

منم در بدر دنبال روش ایجاد کدرن همین CLSID ها میگردم.

اگر روش ساختنشو یافتم حتماً برات میزارم.

اگر شما پیداش کردی مارو بی نصیب نذار.

مؤفق باشید!:11::11:
فرهمنــــــــد

mahdi7610
12-04-2008, 20:26
سلام بهروز جان و فرهمند عزیز
این مطلب خیلی وقت بود توی ارشیو من بود فکر کنم به دردتون بخوره .

همون طور هم که خودتون می دونید CLSID ها توی مسیر زیر در رجیستری قرار دارند .
HKEY_CLASSES_ROOT\CLSID

برای ساختن یک CLSID ابتدا به همون مسیر بالا برید و یک کلید به شکل {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
بسازید در واقع به جای x باید یک عدد در مبنای هگزادسیمال یعنی 16 قرار بگیره .
همون طور که خودتون هم می دونید اعداد در مبنای 16 از 0 تا 9 و A تا F هستند .
حتما باید CLSID که می سازید قبلا درست نشده باشه چون نمی شه دوتا CLSID یکسان وجود داشته باشه چون باید منحصر به فرد باشه .

یک کلید با نام DefaultIcon در زیر Clsid ساخته شده بسازید و ورودی (Defaule) آن را به آیکون مورد نظر ست کنید
توجه : اگر می خواهید برای آیکون از فایل اجرایی استفاده کنید باید ایندکس آیکون را بعد از نام فایل با یک کاما ذکر کنید. برای مثال: c:\program files\prog\file.exe , 2 (قبل و بعد از کاما یک فاصله وجود دارد)

یک کلید در زیر Clsid ساخته شده با نام InProcServer32 بسازید

در داخل کلید فوق یک ورودی با نام ThreadingModel و از نوع رشته ای بسازید و مقدار آن را برابر Apartment قرار دهید
یک کلید با نام shellEX در زیر Clsid ساخته شده بسازید

در زیر کلید فوق یک کلید با نام PropertySheetHandlers بسازید

در زیر کلید فوق یک کلید با نام Clsid خودتان بسازید

به کلید اصلی (Clsid) بر گردید و یک کلید جدید با نام ShellFolder بسازید

در داخل کلید فوق یک ورودی بایناری با نام Attributes بسازید و مقدار ان را به 00 00 ست کنید

در زیر کلید اصلی Clsid سک کلید جدید با نام shell بسازید

در زیر کلید فوق یک کلید جدید با نام عملی که قرار است در منوی راست Clsid ظاهر شود بسازید

در زیر کلید فوق یک کلید با نام command بسازید و ورودی Default آن را به مسیر کامل فایل اجرا و پارامتر ها (در صورت لزوم) ست کنید

ممکن است بخواهید بیشتر از یک آیتم با به منو اضافه کنید ، در اینصورت باید دو مرحله فوق را به ازای هر دستور طی کنید و در ورودی Default کلید shell نام آیتم پیش فرض (که با دو بار کلیک باید اجرا شود) را بنویسید
نحوه اضافه کردن Clsid به My Computer , Control Panel و غیره

بعد از ساخته شدن یک Clsid احتمالاً می خواهید که آن را به یکی از محل های ذکر شده اضافه کنید
برای انجام این کار مراحل زیر را طی کنید

رجیستری ویندوز را باز کنید و مسیر زیر را طی کنید
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Explorer\
بنا به نیاز خود وارد یکی از کلید های زیر شوید

MyComputer
Desktop
ControlPanel
NetworkNeighborhood
RemoteComputer
وارد کلید NameSpace شوید

یک کلید جدید بسازید و نام آن را برابر با Clsid خود بگذارید (به فرمت {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} )
توجه : بعد از ساختن کلید تفییرات بلافاصله اعمال می شود و نیازی به Restart نیست

موفق باشید .

mahdi7610
12-04-2008, 21:08
سلام

فکر کنم اینا هم به دردتون بخوره

خیلی ها می خوان بدونند این رشته طولانی یعنی چی ؟

{85BBD920-42AO-1069-A2E4-08002B30309D}

اين عبارات به مقادير CLSID شهرت دارند.
اينها پوشه هايي مانند My Briefcase، Desktop، Control Panel و ... ميباشند كه پوشه هاي سيستم ناميده ميشوند.
هر پوشه سيستم داراي يك CLSID منحصر بفرد ميباشد كه مقداري 16 بايتي است كه يك آبجكت خاص را معرفي ميكند كه به كليدي در رجيستري متصل ميشود.

براي پاك كردن پوشه هاي سيستم، بايد اين كليد هاي رجيستري را پاك كنيد.

معروفترين CLSID ها عبارتند از :

My Briefcase:{85BBD920-42AO-1069-A2E4-08002B30309D}


Desktop: {00021400-0000-0000-C000-0000000000046}


Control Panel:{21EC2020-3AEA-1069-A2DD-08002B30309D}


Dial-Up-Networking:{992CFFA0-F557-101A-88EC-00DD01CCC48}


Fonts: {BD84B380-8CA2-1069-AB1D-08000948534}


Inbox :{00020D76-0000-0000-C000-000000000046}


My Computer :{20D04FE0-3AEA-1069-A2D8-08002B30309D}


Network Neighborhood:{208D2C60-3AEA-1069-A2D7-O8002B30309D}


Printers :{2227A280-3AEA-1069-A2DE-O8002B30309D}


Recycle Bin :{645FF040-5081-101B-9F08-00AA002F954E}


The Microsoft Network:{00028B00-0000-0000-C000-000000000046}


History: {FF393560-C2A7-11CF-BFF4-444553540000}


Winzip :{E0D79300-84BE-11CE-9641-444553540000}


حالا فرض كنيم كه ميخواهيم Recycle Bin را كلاً حذف كنيم. ابتدا مقدار CLSID آنرا يادداشت كنيد كه مقدار :

645FF040-5081-101B-9F08-00AA002F954E

ميباشد. اكنون اين كليد را در رجيستري پيدا كنيد و آنرا پاك كنيد.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\
explorer\Desktop\NameSpace{645FF040-5081-101B-9F08-00AA002F954E}

گاهي ميخواهيد با دوست خود شوخي كنيد و تمام آيكون هاي روي دسك تاپ را مخفي كنيد. براي اين كار كليد زير را در رجيستري پيدا كنيد :

KEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\
Policies\Explorer

اكنون در پانل راست يك مقدار DWORD ايجاد كنيد و نام آنرا NoDesktop گذاشته و مقدار آنرا به 1 تغيير دهيد. اكنون پس از بوت سيستم، تمام آيكون ها مخفي ميشوند.

تا حالا ياد گرفتيم كه چگونه پوشه سيستم خاصي را پاك كنيم. ولي چه بهتر كه گزينه Rename و Delete را به منوي كليك راست اين پوشه ها اضافه كنيم.

براي اين كار بايد ابتدا مقدار CLSID پوشه مورد نظر خود را بدانيد. بعد از انتخاب CLSID مورد نظر، در پانل راست مقداري DWORD بنام Attributes مشاهده ميكنيد. در اين قسمت ميتوانيد موارد زير را مشخص كنيد:

20 00 01 50 : براي اضافه كردن امكان Rename

20 00 01 60 : براي اضافه كردن امكان Delete

20 00 01 70 : براي اضافه كردن امكان Rename و Delete با هم

20 00 01 41 : براي اضافه كردن امكان Copy

20 00 01 42 : براي اضافه كردن امكان Cut

20 00 01 43 : براي اضافه كردن امكان Copy و Cut

20 00 01 44 : براي اضافه كردن امكان Paste

20 00 01 45 : براي اضافه كردن امكان Copy و Paste

20 00 01 46 : براي اضافه كردن امكان Cut و Paste

20 00 01 47 : براي اضافه كردن تمام موارد بالا

Farahmand Farshidy
12-04-2008, 23:10
سلام مهدی عزیز!:11::11:

والا چی بگم! :23:

دستت الــــــــــــمــــــــــ ــــاس.:12:

موضوعات خیلی مهم و کاربردی را بیان کرده بود.

شما یه بار دیگه به اون آرشیو قشنگت نظر بینداز و ببین مطالبی در رابطه با ساخت کتابخانه های Dll در رابطه با همین منو های راست کلیک اونجا هست یا نه؟

مؤفق باشید!:40::40:
فرهمنــــــــد

winxp
13-04-2008, 14:57
بابا ایول

همه در به در دنبال راست کلیک هستنـــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــا

منم به همین نتیجه رسیدم فرهمند جان

فعلا داریم با هم پیش میریم ها , ای کلک

مهدی جان دستت درد نکنه , تست میکنم جایی مشکل داشتم سوال میکنم چون خیلی مهمه برام

البته فکر میکنم تنها با اضافه کردن به ریجستری کافی نباشه و کار کامل نیست

به نظر من باید متناسب با clsid که داری بری توی dll ها هم دست کاری کنی که البته هنوز به اونجا ها نرسیدم

فعلا دارم روی دور زدن اکانت limited کار میکنم

ای بابا , الان دیدم ها

چی رو ؟

فعال شدن فرهمند رو : فرهمند جان تبریک عرض میکنم عزیزم , البته پیغام خصوصیت رو هم چک کن

ادامه ی بحث باشه یه ساعت دیگه تا ببینم میتونم کارم رو انجام بدم یا نه

فعلا .

lord_ashkan_z
13-04-2008, 21:03
میشه بگین این clsid چی هست؟ به چه دردی می خوره؟

mahdi7610
13-04-2008, 21:37
میشه بگین این clsid چی هست؟ به چه دردی می خوره؟
سلام اشکان جان

همون طور که می دونید اکانت هاى کامپيوتر , اکانت هاى کاربرى , گروهها و ساير شىء هاى مرتبط با امنيت , اصول امنيتى به شمار مى آيند که ويندوز براى هرکدام از آنها يک شناسه امنيت SID در نظر ميگيره .

SID ها در محدوده خودشان منحصر به فرد هستند مثلا SID شخص من در ويندوزى که با آن کارميکنم برابر S-1-5-21-746137067-1390067357-1801674531-1004 هستش .

اگه به مسر زیر بری می تونی SID ها را ببینی .
HKEY_CLASSES_ROOT\CLSID

SID های مربوط به هر شیء در حوزه فعاليت آن منحصر به فرد هستند حتی اگر شما کاربری باشيد که با ويندوز ارتباط برقرار کرده و اقدام به پاک کردن اکانت اتصال خود کنيد SID که قبلا ويندوز آن اکانت را با آن ميشناخت ديگر هيچ وقت برای هيچ شیء ديگری در آن حوزه در نظر گرفته نمی شود .

دليل جالب بودن اين SID ها این است که يک هکر را کمتر به زحمت مى ندازه .

امیدوارم متوجه شده باشی .

winxp
14-04-2008, 13:05
سلام عزیزان


چه طوری میشه یه clsid طبق قوانین ساخت , یعنی ایا من میتونم بیام یه عدد همین طوری در نظر بگیرم به عنوان clsid ?

مطمئنا نمیشه برا این که باید در مبنای 16 باشه , حالا شما لطف کنین بگین چی کار کنیم که بدونیم عددی که در نظر گرفتیم یه clsid استاندارد هستش یا نه

منتظرم