یکی لطف کنه اگه اطلاعاتی در مورد RMPS در سی دی ها داره اینجا قرار بده یا لینکی
همه می دنید که الکل از rpsm سی دی نمونه برداری میکنه یکه لطف کنه بگه این RMSP چیه و چطور میشه ازش استفاده کرد
یکی لطف کنه اگه اطلاعاتی در مورد RMPS در سی دی ها داره اینجا قرار بده یا لینکی
همه می دنید که الکل از rpsm سی دی نمونه برداری میکنه یکه لطف کنه بگه این RMSP چیه و چطور میشه ازش استفاده کرد
لطفا اين عنوان را به پرسش و پاسخ FAQ انتقال دهيد.
يك تكنولوژي براي قفل گذاري وجود دارد كه به آن Data Position Measurment گفته مي شود. براي اولين بار در قفل هاي شركت LinkData از آن استفاده شده است. پايه اصلي اين تكنيك بر خلاف آنچه كه اندازه گيري زاويه بين دو سكتور گفته شده ، براساس سرعت خواندن خطي اطلاعات است . فرض كنيد كه شما از سكتور 60 شروع كنيد و با ضريب N سكتور هاي بعدي را بخوانيد. پس از مدتي بررسي و سر و كار داشتن با روتين هاي مختلف به اين نتيجه خواهيد رسيد كه مثلا اگر N را برابر با 18 قرار دهيد به بيشترين سرعت خواندن اطلاعات دست مي يابيد. فراموش كردم كه بگويم اين روش بعد از اضافه شدن دستور Read CD 0xBE به وجود آمده است . افزوده شدن اين دستور تقريبا مصادف با زماني است كه سرعت خواندن درايوهاي سي دي رام به بالاي 8 رسيده است .
موضوع ماكزيمم سرعت خواندن اطلاعات از روي سي دي را مي شود به روش هاي مختلفي پياده سازي كرد. مثلا CDCops با استفاده از يك فرمول زاويه تقريبي بين دو سكتور را بدست مي آورد. بعضي از قفلها ، مثلا آنچه خودم پياده سازي كرده ام ، با حذف گزينه سرعت توسط يك معادله خط و بدست آوردن ضريب زاويه ( كه همواره ثابت خواهد بود ) ، مقدار مورد نياز را از ورودي به دست مي آورند.
از آنجايي كه هيچ روش موثري براي شبيه سازي يك سي دي رايت شده با سي دي اصلي وجود ندارد ( يعني حتي تلاشهاي متعددي كه براي تنظيم سرعت با افزودن سكتورهاي اضافي ، يا Weak يا روش هاي ديگر بر روي StarForce به نتيجه نرسيد ) ، شيطان بزرگ يعني Venum386 تصميم گرفت كه اين موضوع را توسط شبيه سازي Timing بر روي سي دي هاي رايت شده پياده سازي كند .
براي شروع ابزاري براي بدست آوردن زمان خواندن اطلاعات از روي سي دي تهيه شده و توسط آن پس از ورود سي دي به درايو و تنظيم سرعت خواندن درايو بر روي يك مقدار ثابت ، مقادير زماني بدست آمده از روي سي دي اصلي را در فايلي ذخيره كردند. سپس هنگام رايت سي دي بر روي سي دي هاي قابل نوشتن ، اين اطلاعات در سكتور 16 سي دي نوشته شده و كل سكتورها به اندازه يك سكتور به جلو رفته و بر روي ديسك نوشته مي شود. سي دي هايي كه با اين روش نوشته مي شوند در سكتور اول اطلاعات شامل زمان بندي Timing و در سكتورهاي بعدي محتويات اصلي سي را شامل مي شوند. يك درايور تحت Kernel همواره در حال ----- كردن سي دي هاي وارد شده به درايو است و چنانچه يك سي دي كه با گزينه RMPS - نامي كه توسط نويسندگان Daemon Tools به آن داده شده ، داخل ديسك خوان شود ، ----- تحت Kernel همه دستورات خواندن را تغيير داده و به يك سكتور جلوتر انتقال مي دهند. در صورتي كه RMPS غير فعال شود شما كلمه NEEDS EMULATION را مشاهده خواهيد كرد كه همان سكتور 16 جديد و رايت شده توسط الكل هست و در صورتي كه ----- فعال شود شما نام اصلي سي دي را مشاهده خواهيد نمود.
پس از فعال شدن ----- علاوه بر شيفت كردن شماره بلاك ها در دستور خواندن ، زمان بندي ها بر اساس آن چيزي كه از بلاك 16 دريافت شده تنظيم مي شود. اما از آنجايي كه در صورت استفاده از فايل زمان بندي ها بسيار جابجا خواهند بود ، بنابراين كاربر حتما بايد سي دي RMPS را رايت كرده و سپس استفاده كند. زيرا زمان خواندن اطلاعات از سي دي واقعي بسيار بيشتر از سي دي مجازي است.
نتيجه همه اين عمليات اين خواهد بود كه سي دي رايت شده در هنگام فعال بودن RMPS زمانبندي مانند سي دي اصلي را نمايش خواهد داد و كپي آن اجرا خواهد شد.
روش هاي جلوگيري متفاوتي تا كنون پياده سازي شده است. به شخصه از اشكالات موجود در Daemon Tools براي جلوگيري استفاده كرده ام. در StarForce يك درايور Kernel به طور مستقيم با پورت هاي IDE ارتباط برقرار كرده و در صورت وجود حتي يك درايو سي دي IDE شما را مجبور به استفاده از آن خواهد كرد. زماني كه دستورات خواندن به دور از چشم ----- به درايو ارسال شوند ، نتيجه اين خواهد بود كه شما همه سكتور ها را در جاي اصلي خود مشاهده خواهيد كرد و در نتيجه مشخصات RMPS در سكتور 16 يافت مي شود. در يك گام بالاتر Daemon Tools اقدام به شبيه سازي يك درايو IDE نمود كه در نسخه هاي Professional از ِDaemon Tools Pro الحاق شده و توسط آن مي توان جلوي روش استارفورس را گرفت .
با توجه به اينكه اين مطلب تا حد زيادي قديمي شده است ، به احتمال زياد در آينده مطالب بيشتري در مورد نحوه جلوگيري از آن خواهم نوشت.
در مورد روش DPM بايد خدمتتان عرض كنم كه اين موضوع بسيار پارامتريك است. اين روش اشكالات زيادي به دليل وابستگي به Timing دارد و مخصوصا زماني كه از يك API باگ دار مثل GetTickCount براي بدست آوردن زمان استفاده كنيد ، عملا هيچ وقت به نتيجه قابل قبولي نمي رسد. همينطور بعضي از درايوها ( مثلا مدلهايي از TDK ) به طور پيش فرض مريض هستند. شما سرعت را مثلا براي 10 تنظيم مي كنيد ، درايو براي بهينه سازي خواندن اطلاعات خود به خود سرعت را تفيير مي دهد. توسط اين درايوها نه مي توانيد سرعت خواندن را بدست بياوريد و نه مي توانيد RMPS را استخراج كنيد چون نتيجه آن غلط خواهد بود.
اشكالات اين متن را بر من ببخشيد ، وقت دوباره خواندنش را ندارم. كلمه Fil تر تبديل به ---- شده است.
Last edited by persiankitty; 10-02-2008 at 10:19. دليل: افزودن خط آخر
very very Thanx Persiankitty
خیلی ممنون پرشین کیتی عزیز!
منتظر ادامه قصه هستیم ...
به نام خدا
سلام بر همگی راستش من 3 الی 4 بار از اول تا آخر مطالعه کردم ولی چیزی دستگیرم نشد می شه کمی ساده ترش کنید ....
دستت درد نکنه پرشین تو نبودی ما چی کار می کردیم
پرشین جان میشه یه لطفی بکنی بگی چرا در سکتور 16 ؟
دليل خاصي نداره ، نويسنده هاي Daemon Tools اينطوري پياده سازي كردن ، ميتونستند اين رو هر جايي قرار بدن. اما با اين كارشون باعث شدن كه وقتي يك سي دي روي توي درايو قرار بدين ، بلاك 16 خوانده بشه و در نتيجه وقتي كه RMPS غير فعال هست كلمه NEEDS EMULATION به عنوان Label سي دي نمايش داده بشه . كه بعد از همون موتور شبيه سازي در الكل و GameJackal و شايد يك سري از برنامه هاي ديگر استفاده شده . البته براي نسخه هاي پايين اين Engine پيدا كردن نحوه استفاده زياد سخت نيست .
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by persiankitty; 16-02-2008 at 07:25.
پرشین کیتی اگه وقت کردی بهسری بزنکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
راستی کسی تا حالا پست ویرایش نشده از پرشین دیده؟!
فکر کنم اینطوری امضا میکنه!
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)