مجموعه سریال جومانگ Close
تبلیغات در بلاگ اسکای
.:: قفل های اکتیو ایکس ::.
تعریف قفل های اکتیو ایکس :
در واقع یک اکتیو ایکس که مانع اجرای برنامه در شرایط خاصی شود را قفل اکتیو ایکس مینامند. این نوع قفل مانند سایر کامپوننتهای برنامه نویسی است . برنامه نویس به سادگی آن را بر روی فرم برنامه خود قرار میدهد و با تنظیم پارامترها و خصوصیات آن ،‌ سبب فعالیت آن میشود. این اکتیو ایکس قبل از قرارگرفتن فرم اصلی در حافظه ، شروع به کار میکند و اگر برای اولین بار اجرا میشود بر حسب اندازه حافظه ، شماره های سریال و سرعت پردازنده کد ویژه ای تولید میکند این کد تولید شده وابسته به خصوصیات کامپیوتر است بنابراین کد برگشتی این اکتیو ایکس بر روی هر سیستمی متفاوت خواهد بود. پس از ارائه کد ، کد معادل آن را از کاربر در خواست میکند. کاربر با ارائه کد تولید شده به شرکت تولید کننده نرم افزار کد معادل آن را دریافت میکند.این کد را کاربر یا از طریق تلفن یا از طریق پست الکترونیکی و یا اینترنت دریافت میکند در صورتیکه کد معادل دریافت شده پس از کد شدن معادل کد ارائه شده باشد یا به عبارتی دیگر کد ارائه شده از طرف کامپیوتر مکمل کد دریافت شده از شرکت باشد اکتیو ایکس اجازه میدهد که برنامه بدون اشکال شروع به کار کند. کاربر نیز میتواند بارها از این کد بر روی کامپیوتر خود(کامپیوتری که کد دریافت کرده) استفاده کند. پس از ورود کد، این کد در مکانی از سیستم مثلا ریجستری یا یک فایل بصورت کد شده قرار میگیرد و هر بار کامپیوتر برنامه را اجرا کند به جای درخواست کد از کاربر ، کد را از رجیستری یا فایل پس از کدیابی مورد استفاده قرار میدهد. نقاط ضعف: 1.قفلهای اکتیو ایکس نیاز به دریافت کد از شرکت دارند یعنی اینکه باید کاربر حتما به نحوی با شرکت تولید کننده تماس بگیرد و نمیتواند برنامه را پس از خرید بلافاصله استفاده کند . خصوصا دسترسی به تلفن و اینترنت ضروری است. 2. قفلهای اکتیو ایکس تنها بر روی یک سیتسم اجرا میشوند و باید برای دریافت کد برای هر کامپیوتر اقدام شود.(دشواری در نصب های تعداد بالا) 3.قفلهای اکتیو ایکس ممکن است با فرمت کردن ، پارتیشن بندی تعغیر یابد که نمیتواند شرکت دقیقا حدس بزند که این قفل برای این سیستم بوده یا واقعا تعغیر کرده . در اکثر قفلهای ساخته شده تعغیرات این کد بسیار مشاهده شده است. 4. با صدمه دیدن قطعه ای در کامپیوتر و یا تعویض یک قطعه برنامه تصور میکند که سیتسم تعغیر یافته است مثلا با تعغیر حافظه سیستم. نقاط قوت: 1- امنیت بالا برای برنامه نویس از نظر کپی برداری با تعداد بالا. 2- دارای بیشترین امنیت نسبت به سایر قفلهای نرم افزای یا سی دی 3- سازگاری بسیار بالا نسبت به سایر قفلهای نرم افزاری. 4- قابلیت آمار گیری فروش برنامه توسط شرکت ارائه کننده کد معادل نحــوه ایجاد قفل برای برنامه نویسان ویژوال بیسیک: اول اینکه این برنامه باید بصورت اکتیو ایکس تولید شود که بتوان از آن به سادگی استفاده نمود. قدم اول برای تولید آن این است که برنامه قبل از فرم اصلی بار شود. قدم دوم ارائه یک کد تولید شده برای سیستم است این بخش تقریبا هسته برنامه را تشکیل میدهد بنابراین در مورد این قسمت توضیحات بیشتری ارائه میکنم کدی که اکتیو ایکس برای یک کامپیوتر خاص تولید میکند باید منحصر بفرد باشد یعنی نباید در سیستمهای دیگر مشابه آن پیدا شود همچنین مهمترین نکته ای که باید برای تولید این کد در نظر گرفته شود این است که با تعغیرات کوچک درون سیستم تغییر نکند بدین منظور میتوان آن را به قسمتهای مختلف کامپیوتر بنا بر نوع انتظار قفل تغییر دهیم مثلا به شماره سریال هارد یا مثلا به مقدار حافظه سیستم یا به نوع کارت گرافیکی و... و یا به مجموع آنها وابسته کنیم. بسیاری سوال کردند در ویژوال بیسیک چگونه میتوان شماره سریال هارد را بدست آورد؟ برای این منظور میتوان از API ها استفاده نمود. یک API خوب برای این منظور GetVolumeInformation است قدم سوم ایجاد کد مکمل است . بصورتهای گوناگون میتوان برای کد تولید شده کد مکمل ایجاد کرد اولین روش استفاده که ساده ترین است استفاده از یک فرمول است مثلا یک مثال ساده این است که اگر کد تولید شده 15663 بود برنامه با جمع کردن اعداد زوج و فرد این عدد و تقسم نمودن و ضرب در 5586 یک کد تولید کند ایراد اینگونه روشها در قابل کشف بودن کد میباشد مگر اینکه واقعا یک ریاضیدان باشید. روش دیگر تولید کد های تصادفی مثلا در ویژوال بیسیک بوسیله Randomize Timer و تشکیل یک بانک اطلاعاتی است که کد معادل و کد ارایه شده برای همه آنها را در آوریم این روش بسیار اطمینان بخش تر است. دیگر تمام است بسادگی یک قفل حرفه ای ساخته ایم . آنهم با ساده ترین زبان دنیا ویژوال بیسیک اگر آن را با برنامه های دیگر تولید کنید که دیگر محشر است ! با کمی رنگ و لعاب دادن به اکتیو ایکس خودمان و تولید همان پایگاه داده و تعیین پارامترهای گوناگون مثلا محدود کردن در تعداد ، نوع وابستگی و ... برای برنامه خود ، حتی میتوانیم آن را بفروش برسانیم !

قفلهای سی دی ها چگونه کار می کنند

روشهای بسیاری برای حفاظت از یک CD در برابر کپی برداری وجود دارد ولی تاکنون هیچ سازنده و طراح قفلی ساختار آن را بصورت واضح بیان نکرده است.

یکی از ساده ترین و عمومی ترین روشهایی که تاکنون برا ی حفاظت از CD دیده شده است افزایش مجازی طول چند فایل درون CDمیباشد به نحوی که آنها تا چند صد مگابایت به نظر میرسند.برای انجام چنین کاری تنظیمات مربوط به طول آن فایل را در Image سی دی بیش از آن چه هست ذکر میکنند.

اغلب این فایلها درون Image بر روی هم قرار میگیرند ولی برنامه حجم واقعی هر فایل را میداند و عمل خواندن را تا آن نقطه انجام میدهد. بنابراین برنامه بخوبی کار میکند. اگر کاربری سعی کند که فایلها را درون درایو دستگاهی کپی کند با شکست مواجه میشود زیرا این سی دی حاوی چندین گیگا بایت داده است! ولی این روش اکنون دیگر کارایی لازم را ندارد زیرا امروزه تمام برنامه های کپی برداری ابتدا از روی سی دی Image (تصویر) برداری میکنند.

یکی از روشهای نادر و کمیاب برای حفاظت از سی دی ها کنترل بر روی درایو سی دی می باشد از این روش بیشتر در حفاظت بازیها استفاده میشود و نحوه ایجاد آن به دانش بالایی نیاز دارد.روش آن بدین نحو است که اطلاعاتی نادرست(عمدی) در قست ECC (تصحیح خطا) یک سکتور داده نوشته میشود. سی دی نویسهای استاندارد بصورت خودکار این خطاها را هنگام نوشتن تصحیح میکنند در هنگام خواندن ، برنامه سکتور داده را بصورت RAW و بدون تصحیح خطا در حافظه برای تطبیق با داده های اصلی بار میکند و در صورتیکه تناقض با داده های اصلی برنامه اجرا نمیشود.

این روش در برنامه هایی که عملکرد درایو توسط برنامه تعیین میشود(مانند بازیهای کنسول) کارایی قابل توجهی داشت. ولی اکنون بسیار ی از نرم افزارهای نوشتن سی دی گزینه ای برای خاموش کردن تصحیح خودکار دارند. بنابراین این روش نیز بزودی از یاد برده شد.

یکی از روشهای غیر حرفه ای ولی موثر در زمانهایی که سی دی به تازگی خود را مطرح ساخته بود ایجاد سی دی های نقره ای غیر استاندارد بود. این سی دی ها بیش از 74 دقیقه(650 مگابایت) ظرفیت داشتند((Over sized و با دستگاههای پرس سی دی تولید میشدند . ولی امروزه CD-RوCD-RW هایی با ظرفیتهای 700 و حتی 800 مگابایت تولید شدند که این روش را بسرعت متوقف نمودند.

امروزه متداول ترین روشی که برای محافظت از سی دی دیده میشود ایجاد فاصله هایی (gaps) غیر استاندارد ما بین تراک های صوتی و قرار دادن اندیسها در مکانهایی دور از انتظار است. سی دی که با این روش قفل گذاری میگردد در بسیاری موارد توسط نرم افزار های کپی برداری معمولی و سی دی نویسهایی که از Disc at once پشتیبانی نمیکنند غیر قابل کپی برداری است. ولی با پیشرفت تکنولوژی سی دی نویسها و نرم افزارها این روش نیز بسرعت در حال کناره گیری است.

یکی دیگر از روشهای ساده برای قفل گذاری تولید یک سی دی غیر استاندارد با قرار دادن تراکهایی کمتر از 4 ثانیه است . برنامه برای اجرا شدن ابتدا اندازه و تعداد این تراکهای غیر استاندارد را چک میکند . همچنین قرار دادن تراکهای خالی داده در مابین تراکهای صوتی میتواند این روش را قدرتمند تر سازد.

در واقع با ترکیب روش بالا و این روش برخی نرم افزارها و سی دی نویسها را از نوشتن اینگونه سی دی ها عاجز نموده ایم ولی روش موثری محسوب نمیشود. همچنین این روش سبب ناسازگاریهایی نیز در نحوه خواندن سی دی میشود به همین دلیل عمومیت پذیری کمتری دارد.

امروزه قرار دادن فاصله خالی یا سوراخگذار ی بر روی سی دی متداول شده است بدین نحو بسیاری از برنامه ها که یک قصد خواندن یک تراک از ابتدا تا انتها را دارند با مشکل مواجه میشوند. فراد مبتدی گاهی برای سی دی ها لیبلی قرار میدهند که هنگام اجرا ی برنامه آن لیبل سی دی را چک میکند گاهی امکان دارد در گزینش کردن برنامه از یک سی دی و نوشتن آن ، فراموش کنیم برچسب را نیز منتقل کنیم یا برچسب متفاوتی برای آن سی دی انتخاب کنیم ولی تا کنون این روش به عنوان یک قفل مطرح نبوده است .

امروزه دستکاریToc سی دی بسیار فراگیر است و یک قفل ساز سعی دارد با دستکاری TOC اطلا عاتی دروغین را به سی دی پیوند بزند.(با ساختار Toc در مقاله های آینده بیشتر آشنا خواهید شد.)

امروزه شرکتهایی بیشماری بر روی نحوه قفل گذاری بر روی سی دی ها و روشهای جدید فعالیت دارند به طور مثال شرکت سونی به تازگی ادعا میکند که قادر است با دستگاهی خاص برروی سی دی اطلاعاتی بنویسد یا مارک گذاری کند که با تجهیزات عادی تنها قابل خواندن باشد. ولی از سوی دیگر شرکتهایی سعی در ارائه کد برگردانهایی برای آن هستند. و این مبارزه ادامه دارد

قفل های نرم افزاری چگونه طراحی می شوند؟

با توجه به فزونی نرم افزار در سیستم های کامپیوتری از یک طرف و توانایی کنترل کپی های غیرمجاز ( از دیدگاه اقتصادی آن ) از طرفی دیگر دلیلی محکم جهت بررسی این شاخه از مهندسی نرم افزار می باشد.
از آنجا که متاسفانه قانون Copyright در تمام جهان بجز ایران و چند کشور دیگر اجرا می گردد, بحث کنترل کپی های غیرمجاز حساس تر می شود. در این مقاله سعی بر این است تا علاوه بر آشنایی با انواع قفل های نرم افزاری و اختلاف آن ها با قفل های سخت افزاری, بتوانیم به عنوان طراح یک قفل نرم افزاری از محصولات نرم افزاری خودمان حمایت کنیم. ضمنا علاوه بر آشنایی با مفاهیم فوق, نوشتن روتین های ضد دیباگ و همچنین نحوه کد کردن اطلاعات نیز لحاظ شده است.
لازم به ذکر است که این مقاله حاصل تجربیات چند ساله و زحمات زیادی است که تقدیم می گردد.

 


کلمات کلیدی
Key Lock, Hard Lock, Software Lock, قفل نرم افزاری، Tag Lock, Anti Debug, قفل سخت افزاری


مقدمه
از آنجا که زمان زیادی تا سال 2000 باقی نمانده, اما هنوز در کشور ما ایران, نرم افزار جای خود را به عنوان یک محصول صادراتی پیدا نکرده چرا که یکی از دلایل اصلی آن عدم توجه جدی به حمایت از تولید کنندگان نرم افزار می باشد. به هر حال قصد اینجانب از ارائه مقاله, بررسی کم و کاستی های نرم افزار در ایران نیست بلکه طریقه حل مشکل موجود در این بازار نابسامان می باشد. با توجه به کپی های غیرمجازی که روزانه بصورت کاملا عادی و بدون اطلاع سازنده آن صورت می گیرد, جلوگیری از این عمل و کنترل جدی آن امری ضروری و واجب بنظر می رسد. در ادامه مطلب به توضیح درباره قفل های نرم افزاری و سخت افزاری می پردازیم.

آشنایی با قفل های نرم افزاری و سخت افزاری

تعریف قفل های نرم افزاری: به هر برنامه ای که کنترل کپی آن فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی قابل انجام باشد, گویند.
تعریف قفل های سخت افزاری: به هر برنامه ای که کنترل کپی آن از طریق سخت افزار اضافی قابل انجام باشد, گویند.
با توجه به تعاریف فوق می توان به تفاوت قفل های سخت افزاری و نرم افزاری پی برد. قفل های سخت افزاری با توجه به اضافه کردن یک سخت افزار جدید به کامپیوتر ( اغلب از طریق ارتباط با پورت چاپگر ) برنامه خود را کنترل می کنند. برنامه قبل از اجرا ابتدا با توجه به مراجعه به آدرس سخت افزار نصب شده ( اضافه شده با استفاده از دستور Port ) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن, تست های مختلف اعم از تست رمز, خواندن اطلاعات و ... می تواند تصمیم گیری نماید. اما در قفل های نرم افزاری برنامه بدون نیاز به سخت افزار اضافی و با کنترل رسانه ذخیره سازی می تواند تصمیم گیری کند. ضمنا لازم به توضیح است که هدف از طراحی قفل های نرم افزاری/ سخت افزاری این نیست که هیچکس توانایی شکستن ( باز کردن ) آنرا ندارد بلکه مقصود بالا بردن سطح کنترل کپی های غیر مجاز تا حد ممکن می باشد. ( چرا که می دانیم اطلاعات همه در یک سطح نیست. )

طریقه استفاده از قفل نرم افزاری در برنامه مورد نظر
با توجه به نوع کاربرد برنامه ( کوچک وقابل کپی بر روی یک دیسکت, تحت شبکه و ... ) می توانیم از انواع روش هایی که جهت حفاظت از نرم افزار در نظر داریم ( و متعاقبا توضیح داده خواهد شد ) استفاده کنیم. اما مساله قابل بحث این است که چگونه از یک قفل منتخب استفاده نمائیم؟
جواب این سوال متغییر و وابسته به شرایط زیر می باشد:
الف: اعتقاد طراح نرم افزار به اینکه کاربر حتما باید آنرا خریداری نماید تا از امکانات آن مطلع گردد.
در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل می گردد حتی طراح می تواند در مواقع حساس نیز قفل را مجددا کنترل کند و یا در حالتی که طراح واقعا سخت گیر باشد, می تواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید ( مثلا هر 4 ثانیه ). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند, نیز در نظر بگیرد.
ب: اعتقاد طراح نرم افزار به این که کاربر می تواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند.
طراح در این حالت می بایست در مکان های خاصی از برنامه, قفل را کنترل کند. مثلا در یک برنامه حسابداری می توان تمام بخش های سیستم را آزاد گذاشته ( یعنی برنامه نیازی به قفل نداشته باشد ) اما در صورتی که کاربر مایل به استفاده از امکانات گزارشگیری سیستم باشد, قفل نرم افزاری در خواست گردد. مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد.

آشنایی با نحوه قفل گذاری بر روی یک برنامه
الف: طراح به سورس برنامه دسترسی دارد.
در این حالت طراح پس از انتخاب روش قفل گذاری, کافیست آنرا به زبان مورد نظر خود پیاده سازی نموده و در برنامه خود بگنجاند. ( که مکان های قرار دادن قفل در عنوان قبلی توضیح داده شد. )
ب: طراح ( مجری پروژه ) به سورس برنامه دسترسی ندارد.
گاهی اوقات به یکسری برنامه های ارزشمندی برخورد می کنیم که فاقد قفل هستند, بنابراین نیاز به قفل گذاری وجود دارد. ( البته این حالت بیشتر در کشور ما و چند کشور دیگر که در آن ها قانون Copyright معنی ندارد, کاربرد دارد. ) جهت تزریق قفل به این گونه برنامه ها, نیاز به آشنایی کامل به ساختار فایل های اجرایی (EXE, COM, SYS, …) وجود دارد چرا که باید برنامه ای طراحی کنیم تا همانند یک ویروس کامپیوتری به فایل اجرایی مشخصی بچسبد. البته جهت اینکار بهترین زبان برنامه نویسی, اسمبلی می باشد. ( بدلیل توانایی دخالت در روند اجرای برنامه )
البته در رابطه با نحوه نوشتن این گونه برنامه ها, روش های زیادی وجود دارد که خود بحثی مجزا را می طلبد و از حوصله این مقاله خارج است.
ضمنا برای بالا بردن سطح امنیت برنامه لازم است تا یکسری کد های ضد دیباگ در برنامه گنجانده شوند. کدهای ضد دیباگ, دستوراتی به زبان اسمبلی هستند که در حالت اجرای عادی برنامه, هیچ تغییری در روند اجرای نمی گذارند بلکه در صورتی که برنامه توسط دیباگرها اجرا گردد ( مورد ارزیابی قرار گیرد ) بتواند از اجرای آن جلوگیری نماید. با اضافه کردن کد های ضد دیباگ به ابتدای برنامه ( یا قبل از کنترل قفل ) می توان احتمال دستکاری در برنامه را پائین آورد. ( نحوه نوشتن کد های ضد دیباگ در پیوست A آورده شده است.)

آشنایی با روش های قفل گذاری و نحوه طراحی آن ها

1- قفل گذاری با استفاده از شماره سریال اصلی دیسکت
همانطور که می دانید, سیستم عامل جهت هر دیسکت یک شماره سریال واحد (UNIQUE) اختصاص می دهد, بطوریکه شماره سریال هر دو دیسکت با هم یکی نیستند. بنابراین همین خود یک راه تشخیص دیسکت کلید ( قفل ) می باشد.
جهت استفاده از این قفل می بایست شماره سریال دیسکت را خوانده و سپس در داخل برنامه آنرا کنترل نمائیم. یک راه ساده جهت خواندن شماره سریال, اجرای دستور VOL بصورت شکل مقابل است:
VOL >>C:DOSLCK.TMP
بعد با باز کردن فایل LCK.TMP, می توانیم به محتویات آن دسترسی پیدا کنیم. راه دیگر مراجعه به Boot Sector جهت کنترل قفل می باشد.
ضریب اطمینان این قفل در مورد دیسکت ها, 5%-2% بوده و در رابطه با هارد دیسک 60%-50% می باشد. دلیل این اختلاف این است که در حالت قفل دیسکتی با کپی Boot Sector, قفل بر روی دیسکت دیگر قرار خواهد گرفت اما در رابطه با هارد دیسک اینکار به سادگی انجام پذیر نیست.

2- قفل گذاری با استفاده از مشخصات سیستم
در این نوع قفل نرم افزاری, برنامه قبل از اجرا ابتدا مشخصات سیستم را خوانده ( که اینکار از طریق مراجعه به بخش های خاصی از حافظه و یا مراجعه به اطلاعات BIOS انجام می شود. ) سپس آنرا با فایلی که قبلا توسط نویسنده نرم افزار بر روی کامپیوتر کپی گردیده, مقایسه می کند و در صورت عدم برابری, اجرای برنامه پایان می پذیرد.
این نوع قفل هنوز هم در بسیاری از برنامه ها استفاده می گردد, اما نکته قابل ذکر این است که جهت اطمینان بیشتر به قفل لازم است فایل حاوی مشخصات بصورت کد شده نوشته شده باشد تا امکان دستکاری آن توسط قفل شکنان به حد اقل ممکن برسد.
درصد اطمینان این نوع قفل 75%-65% می باشد.

3- قفل با استفاده از موقعیت فایل روی هارد دیسک
این نوع قفل فقط بر روی هارد دیسک قابل استفاده بوده و به این صورت است که فایل اجرایی به موقعیت خود بر روی هارد حساس می باشد چرا که قبل از اجرا ابتدا موقعیت خود را از روی سکتورهای ROOT خوانده و سپس شماره کلاستر اشاره گر به خودش را بدست می آورد, سپس آنرا با شماره کلاستری که قبلا توسط برنامه نویس بر روی یکی از فایل های برنامه ( ممکن است بصورت کد شده باشد ) قرار داده شده, مقایسه کرده و در صورت برابر بودن اجرا می شود. این نوع قفل نسبت به قفل قبلی ( شماره 2 ) استفاده کمتری داشته چرا که در صورتیکه برنامه از روی بخشی از هارد به ناحیه دیگری انتقال یابد, اجرا نخواهد شد و این از نظر کاربر بسیار ناپسند می باشد. ( ضمنا امکان Defra, Scandisk, و ... نیز وجود ندارد چرا که شماره کلاستر اشاره گر به فایل تغییر خواهد کرد. )
ضریب اطمینان این نوع قفل نیز 80%-70% می باشد.

4- قفل با استفاده از فرمت غیر استاندارد
این شیوه یکی از رایج ترین قفل های نرم افزاری است که هنوز هم بصورت جدی مورد استفاده قرار می گیرد. برخی از دلایل اهمیت آن عبارتند از:
- امکان استفاده از روش های متفاوت در این روش
- راحتی و سرعت زیاد به هنگام استفاده آن
- وجود ضریب اطمینان بالا و انعطاف پذیری زیاد آن
- عدم وجود نرم افزار خاصی جهت باز کردن این نوع از قفل ها
همان طور که می دانیم سیستم عامل جهت دسترسی به اطلاعات یک دیسکت از فرمت خاصی ( 18 سکتور در هر تراک ) استفاده می کند اما اگر یه تراک به صورت غیر استاندارد فرمت شود, ( مثلا 19 سکتور در تراک ) سیستم عامل دیگر توانایی استفاده از سکتورهای غیرمجاز را نخواهد داشت و بنابراین تمام نرم افزارهای تحت سیستم عامل مزبور نیز از سکتورهای مخفی استفاده نکرده, در نتیجه امکان کپی برداری از آنها بسیار ضعیف است. مانیز از همین روش جهت طراحی قفل مورد نظر مان استفاده می کنیم. بصورتیکه تراک آخر دیسک را بصورت یک سکتوری و با شماره 20 فرمت می کنیم. سپس جهت کنترل دیسکت به سکتور فوق مراجعه کرده و در صورت وجود, کنترل برنامه را پی می گیریم. البته غیر از تغییر شماره سکتور می توان از اندازه غیر مجاز نیز استفاده کرد یعنی بجای اینکه سکتورها را بصورت 512 بایتی فرمت کنیم, از اندازه 1024, 2048 و ... استفاده می کنیم. ( قفل نرم افزاری Copy Control که معروفترین در نوع خود می باشد, از همین روش استفاده می کند. )
این قفل فقط جهت فلاپی دیسک قابل استفاده می باشد و در صد اطمینان در این روش حدود 95%-85% می باشد.

5- قفل با استفاده از شماره سریال ساختگی
این روش قفل گذاری که قویترین قفل می باشد, بصورت مخلوطی از روش های 1 و 4 می باشد یعنی ابتدا تراک خاصی را بصورت غیر استاندرد فرمت کرده و سپس اطلاعات خاصی را درون آن قرار می دهند ( شماره سریال فرضی ). این قفل فقط جهت فلاپی دیسک قابل استفاده بوده و ضریب اطمینان آن حدود 98%-90% می باشد.

پیوست A- روتین های ضد دیباگ Anti Debug Procedures

همان طور که توضیح داده شد, روتین های ضد دیباگ جت جلوگیری از اجرای برنامه های دیباگر و یا جلوگیری از ( حد اقل مشکل کردن کار ) دستکاری توسط قفل شکنان, استفاده می شوند. در زیر توضیحات چند روش موثر و مفید, آورده شده است:

الف: غیر فعال کردن وقفه ها
جهت جلوگیری از اجرای مرحله به مرحله ( Trace کردن ) برنامه, می توان وقفه های کنترلر 8359 را غیر فعال ساخت. آدرس این کنترلر 21h بوده و IRQ های 7-0 را کنترل می کند IRQ1 همان وقفه مربوط به صفحه کلید می باشد. پس با غیر فعال کردن این وقفه می توان صفحه کلید را غیر فعال نمود.

طریقه استفاده:


CS:0100 E421 IN AL,21
CS:0102 0C02 OR AL,02
CS:0104 E621 OUT 21,AL

 

ب: تغییر بردار وقفه ها
یکی از روش های ساده و راحت جهت ضد دیباگ کردن برنامه ها, تغییر برداری است, که دیباگر از آن استفاده می کند. (03 ) حتما بخاطر بسپارید که در پایان برنامه دوباره آدرس بردار وقفه تغییر داده شده را بازیابی کنید.

طریقه استفاده:


CS:0100 EB04 JMP 0106
CS:0102 0000 ADD [BX+SI],AL
CS:0104 0000 ADD [BX+SI],AL
CS:0106 31C0 XOR AX,AX
CS:0108 8EC0 MOV ES,AX
CS:010A 268B1E0C00 MOV BX,ES:[000C]
CS:010F 891E0201 MOV [0102],BX
CS:0113 268B1E0E00 MOV BX,ES:[000E]
CS:0118 891E0401 MOV [0104],BX
CS:011C 26C7064C000000 MOV Word Ptr ES:[000C],0000
CS:0123 26C7064E000000 MOV Word Ptr ES:[000E],0000

 

ج:گیج کردن دیباگر
این راه یکی از قویترین تکنیک های ضد دیباگ بوده که در آن به وسط یک دستور, پرش می شود و اینکار باعث قفل کردن ( Hang ) دیباگر خواهد شد.

طریقه استفاده:


CS:0100 E421 IN AL,21
CS:0102 B0FF MOV AL,FF
CS:0104 EB02 JMP 0108
CS:0106 C606E62100 MOV Byte Ptr [21E6],00
CS:010B CD20 INT 20

 

د: کنترل پرچم های CPU
این روش در برابر دیباگرها بسیار مفید می باشد و به این صورت است که ابتدا پرچم Trace از CPU را خاموش کرده و در بین برنامه آنرا کنترل کنیم. در صورتیکه این پرچم روشن شده باشد, مشخص است که دیباگر در پشت صحنه در حال اجراست.

طریقه استفاده:


CS:0100 9C PUSHF
CS:0101 58 POP AX
CS:0102 25FFFE AND AX,FEFF
CS:0105 50 PUSH AX
CS:0106 9D POPF

 

و در بین برنامه از دستورات ذیل استفاده کنید:


CS:1523 9C PUSHF
CS:1524 58 POP AX
CS:1525 250001 AND AX,0100
CS:1528 7402 JZ 152C
CS:152A CD20 INT 20

 

ه: متوقف ساختن دیباگر
این روش باعث متوقف شدن دیباگر می شود که با اجرای دستور ساده INT 03 می توان این کار را انجام داد.

طریقه استفاده:


CS:0100 B96402 MOV CX,0264
CS:0103 BE1001 MOV SI,0110
CS:0106 AC LODSB
CS:0107 CC INT 3
CS:0108 98 CBW
CS:0109 01C3 ADD BX,AX
CS:010B E2F9 LOOP 0106

 

پیوست B- روش های کد کردن اطلاعات Data Coding Procedures

الف: افزودن یک عدد به کد های یک فایل
در این روش جهت کد کردن یک فایل, ابتدا آنرا خوانده و سپس یک مقدار خاص, مثلا 20 را به مقدار هر بایت فایل اضافه می کنیم. این یکی از ساده ترین روش ها بوده و نسبتا کارایی خوبی نیز دارد. جهت خارج کردن فایل از حالت کد شده ( Decode ) نیز, کافیست مقدار فوق را از تمام بایت های فایل کم کنیم.

ب: XOR کردن کل فایل
در این روش نیز پس از خواندن کل فایل, تمام بایت های آنرا با رشته کاراکتری یا عدد ثابت خاصی XOR کرده و سپس مقدار جدید را در فایل حاصل ضبط می نمائیم. جهت خارج کردن فایل از حالت کد شده, دقیقا عمل فوق را انجام می دهیم.

پیوست C- لیست برنامه قفل گذار Pascal Source To Learn

در زیر لیست دو برنامه نمونه, که شماره (1) جهت درست کردن دیسکت قفل و شماره (2) جهت تست آن طراحی شده, آورده شده است:
در این برنامه ها از تراک 81 و سکتور 20 ( در حالت عادی هر دیسکت فقط 18 سکتور دارد ) جهت قفل برنامه استفاده شده و به این صورت عمل می کند که یک رشته را از کاربر دریافت کرده و در مکان فوق قرار می دهد و سپس جهت تست رشته دریافتی در برنامه دوم آنرا با اطلاعات موجود در دیسکت مقایسه می کند و با دادن پیغام مناسبی آنرا چاپ می نماید.
این برنامه توسط Turbo Pascal 7.0 کامپایل و اجرا شده اند.

 

{
برنامه شماره(1)
این برنامه جهت ساختن دیسکت قفل استفاده می شود
}


program PROGRAM-1;

Uses Dos;

TYPE
DAT = String[40];
VAR
C : Registers;
FP : String[15];
PU : Array[1..512] of char;
Data: Dat;
I : Byte;
Key : Dat;

{******************************************}

Procedure ZUW;
Begin
Fp:=#81+#0+#20+#2;
c.d1 :=0;
c.dh :=0;
c.ch:=81;
c.c1:=20;
c.a1:=1;
end;

Procedure Write-Key(data:Dat);
Begin
c.ah:=5;
ZUW;
c.es:=Seg(fp[1]);
c.bx:=Ofs(fp[1]);
Intr(19,c);
c.ah:=5;
ZUW;
c.es:=Seg(fp[1]);
c.bx:=Ofs(fp[1]);
Intr(19,c);
For i:=1 to Length(data) do
Pu:=data;
Pu[i+1]:=#0;
c.ah:=3;
ZUW;
c.es:=Seg(Pu);
C.bx:=Ofs(Pu);
Intr(19.c);
end;

{=======================================}

begin
Writeln;
Writeln( Program Number1 );
Writeln( This Program Used For Create The Key );
Write( Please Type Key Word : );
Readln(Key);
Writeln;
Write( Writing Key …);
Write-Key(Key);
Writeln( OK .);
Writeln;
end.


{

 

برنامه شماره (2)
این برنامه جهت کنترل دیسکت قفل استفاده می شود
}


program PROGRAM-2;

Uses Dos;

Type
DAT = String[40];

Var
C : Registers;
FP : String[15];
PU : Array[1 ..512] of char;
Data: Dat;
I : Byte;
Key : Dat;

{********************************************}

Procedure ZUW;
Begin
Fp:=#81+#0+#20+#2;
c.d1:=0;
c.dh:=0;
c.ch:=81;
c.c1:=20;
c.a1:=1;
end;

{********************************************}

Function Read-Key(Key:Dat):Boolean;
Begin
c.ah:=2;
ZUW;
c.es:=Seg(pu);
c.bx:=Ofs(pu);
Intr(19.c);
c.ah:=2;
ZUW;
c.es:=Seg(pu);
c.bx:=Ofs(pu);
Intr(19,c);
I:=1;
data:=;
While pu#0 do
begin
Data :=data+pu[];
Inc(I);
end;
If data=Key then
Read-Key:=True
Else
Read-Key:=False;
end;

{***********************************************}


begin
Writeln;
Writeln( Program Number2 );
Writeln( This Program Used For Check The Key );
Write( Please Type Key Word : );
Readln(Key);
Writeln;

If Read-Key(Key)=False then
Writeln( I am Sorry , Not Found .);
Else
Writeln( Very Good , That Found .);

Writeln;
end.

 


نویسنده : مهدی معاضدی
از سایت خبری فن آوری اطلاعات ایران

 

کامل ترین مرجع خطاهای مودم  

 

60? . اگر سیستم در حال شماره گیری باشد و دوباره شماره گیری نمایید این خطا نمایش داده می شود .

601 . راه انداز Port بی اعتبار می باشد .

602 . Port هم اکنون باز می باشد برای بسته شدن آن باید کامپیوتر را مجددا راه اندازی نمود.

603 . بافر شماره گیری بیش از حد کوچک است .

604 . اطلاعات نادرستی مشخص شده است .

605 . نمی تواند اطلاعات Port را تعیین کند .

606 . Port شناسایی نمی شود .

607 . ثبت وقایع مربوط به مودم بی اعتبار می باشد .

608 . راه انداز مودم نصب نشده است .

609 . نوع راه انداز مودم شناسایی نشده است .

610 . بافر ندارد .

611 . اطلاعات مسیر یابی غیر قابل دسترس می باشد .

612 . مسیر درست را نمی تواند پیدا نماید .

613 . فشرده سازی بی اعتباری انتخاب شده است .

614 . سرریزی بافر .

615 . Port پیدا نشده است .

616 . یک درخواست ناهمزمان در جریان می باشد .

617 .Port یا دستگاه هم اکنون قطع می باشد .

618 . Port باز نمی شود. ( وقتی رخ می دهد که یک برنامه از Port استفاده کند ).

619 . Port قطع می باشد (وقتی رخ می دهد که یک برنامه از Port استفاده کند).

620 . هیچ نقطه پایانی وجود ندارد .

621 . نمی تواند فایل دفتر راهنمای تلفن را باز نماید .

622 . فایل دفتر تلفن را نمی تواند بارگذاری نماید .

623 . نمی تواند ورودی دفتر راهنمای تلفن را بیابد .

624 . نمی توان روی فایل دفتر راهنمای تلفن نوشت .

625 . اطلاعات بی اساسی در دفتر راهنمای تلفن مشاهده می شود .

626 . رشته را نمی تواند بارگذاری کند .

627 . کلید را نمی تواند بیابد .

628 . Port قطع شد .

629 . Port بوسیله دستگاه راه دور قطع می شود. (درست نبودن راه انداز مودم با برنامه ارتباطی).

630 . Port به دلیل از کارافتادگی سخت افزار قطع می شود .

631 . Port توسط کاربر قطع شد .

632 . اندازه ساختار داده اشتباه می باشد .

633 . Port هم اکنون مورد استفاده می باشد و برای Remote Access Dial-up پیکر بندی نشده است (راه انداز درستی بر روی مودم شناخته نشده است) .

634 . نمی تواند کامپیوتر شما را روی شبکه راه دور ثبت نماید .

635 . خطا مشخص نشده است .

636 . دستگاه اشتباهی به Port بسته شده است .

637 . رشته ( string ) نمی تواند تغییر یابد .

638 . زمان درخواست به پایان رسیده است .

639 . شبکه ناهمزمان قابل دسترس نیست .

640 . خطای NetBIOS رخ داده است .

641 . سرور نمی تواند منابع NetBIOS مورد نیاز برای پشتیبانی سرویس گیرنده را بدهد .

642 . یکی از اسامی NetBIOS شما هم اکنون روی شبکه راه دور ثبت می گردد ، ( دو کامپیوتر می خواهند با یک اسم وارد شوند ) .

643 .Dial-up adaptor در قسمت network ویندوز وجود ندارد .

644 . شما popus پیغام شبکه را دریافت نخواهید کرد .

645 . Authentication داخلی اشکال پیدا کرده است.

646 . حساب در این موقع روز امکان log on وجود ندارد .

647 . حساب قطع می باشد .

648 . اعتبار password تمام شده است .

649 . حساب اجازه Remote Access را ( دستیابی راه دور ) را ندارد . ( به نام و کلمه عبور اجازه dial-up داده نشده است ) .

650 . سرور Remote Access ( دستیابی راه دور ) پاسخ نمی دهد .

651 . مودم شما ( یا سایر دستگاههای اتصال دهنده ) خطایی را گزارش کرده است . ( خطا از طرف مودم بوده است ) .

652 . پاسخ نا مشخصی از دستگاه دریافت می گردد .

653 . Macro (دستورالعمل کلان). ماکرو خواسته شده توسط راه انداز در لیست فایل .INF موجود نمی باشد .

654 . یک فرمان یا یک پاسخ در قسمت .INF دستگاه به یک ماکرو نامشخص اشاره می نماید .

655 . دستور العمل (پیغام) در قسمت فایل .INF دستگاه مشاهده نمی شود .

656 . دستورالعمل (ماکرو) (default off) در فایل .INF دستگاه شامل یک دستور العمل نامشخص می باشد .

657 . فایل .INF دستگاه نمی تواند باز شود .

658 . اسم دستگاه در فایل .INF دستگاه یا در فایل .INI رسانه بیش از حد طولانی می باشد .

659 . فایل .INI رسانه به نام ناشناخته یک دستگاه اشاره می نماید .

660 . فایل .INI رسانه برای این فرمان پاسخی را ندارد .

661 . فایل .INF دستگاه فرمان را از دست داده است .

662 . تلاش برای قرار دادن یک ماکرو لیست نشده در قسمت فایل .INF صورت نگرفته است.

663 . فایل .INI رسانه به نوع ناشناخته یک دستگاه اشاره می نماید .

664 . نمی تواند به حافظه اختصاص دهد .

665 . Port برای Remote Access (دستیابی راه دور) پیکر بندی نشده است.

666 . مودم شما (یاسایر دستگاههای اتصال دهنده) در حال حاضر کار نمی کنند .

667 . فایل .INI رسانه را نمی تواند بخواند .

668 . اتصال از بین رفته است .

669 . پارامتر به کار برده شده در فایل .INI رسانه بی اعتبار می باشد .

670 . نمی تواند نام بخش را از روی فایل .INI رسانه بخواند .

671 . نمی تواند نوع دستگاه را از روی فایل .INI رسانه بخواند .

672 . نمی تواند نام دستگاه را از روی فایل .INI رسانه بخواند .

673 . نمی تواند کاربر را از روی فایل .INI رسانه بخواند .

674 . نمی تواند بیشترین حد اتصال BPS را از روی فایل .INI رسانه بخواند .

675 . نمی تواند بیشترین حد BPS حامل را از روی فایل .INI رسانه بخواند .

676 . خط اشغال می باشد .

677 . شخص به جای مودم پاسخ می دهد .

678 . پاسخی وجود ندارد .

679 . نمی تواند عامل را پیدا نماید .

680 . خط تلفن وصل نیست .

681 . یک خطای کلی توسط دستگاه گزارش می شود .

682 . Writing section name دچار مشکل می باشد .

683 . Writing device type با مشکل روبرو شده است .

684writing device name .684 با مشکل روبرو می باشد .

685 . Writing maxconnectbps مشکل دارد .

686 . Writing maxcarrierBPS دچار مشکل می باشد .

687 . Writing usage با مشکل مواجه است .

688 . Writing default off دچار مشکل می باشد .

689 . Reading default off با مشکل مواجه است .

690 . فایل INI خالی ست .

691 . دسترسی صورت نمی پذیرد زیرا نام و کلمه عبور روی دامین بی اعتبار می باشد

692 . سخت افزار در درگاه یا دستگاه متصل شده از کار افتاده است .

693 . Binary macro با مشکل مواجه می باشد .

694 . خطای DCB یافت نشد .

695 . ماشین های گفتگو آماده نیستند .

696 . راه اندازی ماشین های گفتگو با مشکل روبرو می باشد .

697 . Partial response looping با مشکل روبرو می باشد .

698 . پاسخ نام کلیدی در فایل INF . دستگاه ، در فرمت مورد نظر نمی باشد .

699 . پاسخ دستگاه باعث سر ریزی بافر شده است .

700 . فرمان متصل به فایل INF . دستگاه بیش از حد طولانی می باشد .

701 . دستگاه به یک میزان BPS پشتیبانی نشده توسط گرداننده com تغییر می یابد .

702 . پاسخ دستگاه دریافت می گردد زمانی که هیچکس انتظار ندارد .

703 . در فعالیت کنونی مشکلی ایجاد شده است .

704 . شماره اشتباه callback .

705 . مشکل invalid auth state .

706 . Invalid auth state دچار مشکل می باشد .

707 . علامت خطایاب . x. 25

708 . اعتبار حساب تمام شده است .

709 . تغییر پسورد روی دامین با مشکل روبرو می باشد .

710 . در زمان ارتباط با مودم شما خطاهای سری یش از حد اشباع شده مشاهده می گردد.

711 . Rasman initialization صورت نمی گیرد گزارش عملکرد را چک کنید

712 . درگاه Biplex در حال اجرا می باشد . چند ثانیه منتظر شوید و مجددا شماره بگیرید .

713 . مسیرهای ISDN فعال در خط اصلی قطع می باشد .

714 . کانال های ISDN کافی برای ایجاد تماس تلفنی در دسترس نمی باشند .

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

716 . پیکر بندی remote access IP غیر قابل استفاده می باشد .

717 . آدرسهای IP در static pool remote access IP وجود ندارد .

718 . مهلت بر قراری تماس PPP پایان پذیرفته است .

719 . PPP توسط دستگاه راه دور پایان می یابد .

720 . پروتکل های کنترلppp پیکر بندی نشده اند .

721 . همتای PPP پاسخ نمی دهد .

722 . بسته PPPبی اعتبار می باشد .

723 . شماره تلفن از جمله پیشوند و پسوند بیش از حد طولا نی می باشد .

724 . پروتکل IPXنمی تواند بر روی درگاه dial –out نماید زیرا کامپیوتر یک مسیر گردان IPX می باشد .

725 . IPX نمی تواند روی port (درگاه) dial – in شود زیرا مسیر گردان IPX نصب نشده است .

726 . پروتکل IPX نمی تواند برای dial – out ، روی بیش از یک درگاه در یک زمان استفاده شود .

727 . نمی توان به فایل TCPCFG . DLL دست یافت .

728 . نمی تواند آداپتور IP متصل به remote access را پیدا کند .

729 . SLIP استفاده نمی شود مگر اینکه پروتکل IP نصب شود .

730 . ثبت کامپیوتر کامل نمی باشد .

731 . پروتکل پیکر بندی نمی شود .

732 . توافق بین PPP صورت نگرفته است .

733 . پروتکل کنترل PPP برای پروتکل این شبکه ، در سرور موجود نمی باشد .

734 . پروتکل کنترل لینک PPP خاتمه یافته است .

735 . آدرس مورد نیاز توسط سرور رد می شود .

736 . کامپیوتر راه دور پروتکل کنترل را متوقف می نماید .

737 . نقطه برگشت ( LOOPBACK DETECTED ) شناسایی شد .

738 . سرور آدرس را مشخص نمی کند .

739 . سرور راه دور نمی تواند از پسورد ENCRYPTED ویندوز NT استفاده نماید.

740 . دستگاه های TAPI که برای remote access پیکر بندی می گردند به طور صحیح نصب و آماده نشده اند .

741 . کامپیوتر محلی از encryption پشتیبانی نمی نماید .

742 . سرور راه دور از encryption پشتیبانی نمی نماید .

743 . سرور راه دور به encryption نیاز دارد .

744 . نمی تواند شماره شبکه IPX را استفاده نماید که توسط سرور راه دور در نظر گرفته شده است گزارش وقایع را باز بینی نمایید .

745 . یک فایل مهم و ضروری آسیب دیده است . Dial – up networking را مجددا نصب نمایید .

751 . شماره callback شامل یک کاراکتر بی اعتبار می باشد . کاراکترهای زیر فقط مجاز دانسته می شوند : Space, T, P, W, (,), - , @. 0تا9 .

752 . در زمان پر دازش script یک خطای نحوی صورت می گیرد .

753 . اتصال نمی تواند قطع شود زیرا توسط مسیر گردان چند پروتکلی ایجاد شده است .

754 . سیستم قادر به یافتن bundle چند انصالی نمی باشد .

755 . سیستم قادر به اجرای شماره گیری خودکار نمی باشد زیرا این ورودی یک شماره گیر عادی را دارد .

756 . این اتصال هم اکنون در شماره گیری می باشد .

757 . خدمات دستیابی راه دور خود به خود آغاز نمی شوند اطلا عات بیشتری در گزارش وقایع در اختیار شما قرار می گیرد .

758 . اشتراک اتصال اینترنت هم اکنون روی این اتصال میسر می گردد .

760 . در زمان فراهم آوری امکانات مسیر یابی ، این خطا رخ می دهد .

761 . در زمان فراهم شدن اشتراک اتصال اینترنت برای این اتصال این خطا ایجاد می گردد.

763 . اشتراک اتصال اینترنت فعال نمی باشد . دو اتصال LAN و یا بیشتر به علاوه اتصالی که با این LANها مشترک شده است وجود دارد .

764 . دستگاه کارت خوان smartcard نصب نیست .

765 . اشتراک اتصال اینترنت میسر نمی باشد . اتصال LAN با آدرس IP در حال حاضر پیکر بندی می شود که برای آدرس گذاری اتوماتیک IP مورد نیاز می باشد .

766 . سیستم نمی تواند هیچ گواهی ای را بیابد .

767 . اشتراک اتصال اینترنت میسر نمی گردد اتصال LAN بر روی شبکه شخصی انتخاب می گردد که بیش از یک آدرس IP را پیکر بندی کرده است . اتصال LANرا با یک آدرسIP مجزا ، مجددا پیکر بندی نمایید قبل از اینکه اشتراک اتصال اینترنت صورت گیرد .

768 . به دلیل رمز دار نکردن داده ها اتصال صورت نمی پذیرد .

769 . مقصد مشخصی قابل دست یابی نمی باشد .

770 . دستگاه راه دور تلا ش برای ایجاد اتصال را نمی پذیرد .

771 . اقدامات اتصال صورت نمی گیرد زیرا شبکه اشغال می باشد .

772 . سخت افزار شبکه کامپیوتر راه دور با نوع تلفن مورد نیاز سازگاری ندارد .

773 . امکان ایجاد اتصال موثر نمی باشد زیرا شماره مقصد تغییر کرده است .

774 . به دلیل از کار افتارگی موقت ، اتصال صورت نمی گیرد .

775 . مکالمه تلفنی توسط کامپیوتر راه دور متوقف شد .

776 .مکالمه تلفنی نمی تواند وصل گردد زیرا مقصد خواسته است که ویژگی را حفظ نماید .

777 . اتصال صورت نمی گیرد زیرا مودم ( یا سایر وسایل ارتباط دهنده ) روی کامپیوتر راه دور دچار مشکل می باشند .

778 . تایید هویت سرور غیر ممکن می باشد .

779 . برای بر قراری dial – out این اتصال باید از smartcard استفاده نمایید .

780 . عمل انجام شده برای این اتصال بی اعتبار می باشد .

781 . تلاش برای رمز گذاری (encryption) صورت نمی گیرد زیرا گواهی معتبری یافت نمی گردد .

782 . ترجمه آدرس شبکه (NAT) در حال حاضر به عنوان یک پروتکل مسیر یابی نصب می گردد و باید قبل از اینکه اشتراک اتصال اینترنت فراهم گردد حذف شود .

783 . اشتراک اتصال اینترنت میسر نمی باشد . اتصال LAN که به عنوان شبکه شخصی انتخاب می گردد یا فراهم نمی شود و یا از شبکه قطع می باشد . لطفا قبل از فراهم شدن اشتراک اتصال اینترنت از اتصال آداپتور LAN مطمئن شوید .

784 . در حالی که این اتصال را در زمان log on استفاده می کنید شما نمی توانید شماره بگیرید زیرا این اتصال برای استفاده از نام کاربری پیکر بندی شده است که متفاوت از نام کاربر روی smartcard می باشد . چنانچه بخواهید آنرا در زمان log on استفاده نمایید باید برای استفاده از (username) روی کارت smart آنرا پیکربندی کنید .

785 . در صورت استفاده از این اتصال در زمان log on شما نمی توانید شماره گیری نمایید زیرا برای استفاده از یک smartcard پیکر بندی نشده است . چنانچه بخواهید آنرا در زمان log on به کار ببرید باید امکانات این اتصال را تصحیح و آماده نمایید به طوری که smartcard استفاده نماید .

786 . مبادرت به اتصال L2TP صورت نمی پذیرد زیرا هیچ گواهینامه معتبری برای تصدیق (authentication) امنیت روی کامپیوتر شما وجود ندارد .

787 . اتصال L2TP غیر ممکن است زیرا لایه امنیتی نمی تواند کامپیوتر راه دور را authentication نماید .

788 . تلاش برای ایجاد اتصال L2TP بی نتیجه می باشد زیرا لایه امنیتی نمی تواند پارامترهای سازگار با کامپیوتر راه دور را فراهم نماید .

789 . تلاش برای اتصال L2TP فراهم نمی گردد زیرا لایه امنیتی با یک خطای پردازشی در طول سازگاری با کامپیوتر راه دور مواجه است .

790 . تلاش برای اتصال L2TP صورت نمی گیرد زیرا تایید گواهینامه بر روی کامپیوتر راه دور میسر نمی باشد .

791 . اتصال L2TP میسر نمی باشد زیرا خط مشی امنیتی (security policy) برای اتصال یافت نمی شود .

792 . اتصال L2TP صورت نمی گیرد زیرا زمان توافق امنیتی به پایان رسیده است .

793 . اتصال L2TP میسر نمی گردد زیرا این خطا رخ می دهد در حالی که در مورد امنیت به توافق می رسند .

794 . ویژگی RADIUS ا ین کاربر PPP نمی باشد .

795 . ویژگی RADIUS نوع تونلی برای این کاربر ، نادرست می باشد .

796 . ویژگی RADIUS نوع خدمات برای این کار نه قالب بندی می شود و نه callback قالب بندی می شود .

797 . مودم پیدا نشد .

798 . گواهینامه ای شناسایی نمی شود که بتواند پروتکل قابل ارائه استفاده شود .

799 . اشتراک اتصال اینترنت میسر نمی گردد زیرا دو IP شبیه به هم در شبکه وجود دارد . IC ها به میزبانی نیازمند می باشند که برای استفاده از 192 ، 168 ، 0 ، 1 پیکر بندی شده است . مطمئن شوید که هیچ سرویس گیرنده دیگری برای استفاده از 192 ، 168 ، 0 ، 1 پیکر بندی نشده است .

800 . قادر به ایجاد اتصال VPN نمی باشد . سرویس دهنده VPN در دسترس نمی باشد و یا ممکن است پارامترهای امنیتی برای اتصال به درستی پیکربندی نشده باشند .
 

گوگل 
cache:www.mysite.com
با استفاده از این دستور، سایت مورد نظر ما اگر توسط گوگل ذخیره شده باشه، آخرین ورژن ذخیره شده در سرورهای گوگل رو برای ما نشون میده.البته معمولا ورژن ذخیره شده مربوط به روزهای گذشته میباشد.با این روش میتوانید ببینید سایت مورد نظر آخرین بار چه زمانی توسط گوگل ذخیره شده.

link:www.mysite.com
با این دستور گوگل کلیه سایت هایی که به سایت مورد نظر ما (در اینجا mysite.com) لینک داده اند را لیست میکند.

related:www.mysite.com
اگر میخواهید سایت های هم خانواده و شبیه به سایت مورد نظر خود را پیدا کنید از این دستور استفاده کنید.تا اونجایی که من دیدم این دستور بیشتر برای سایت های معروف جواب میده.

info:www.mysite.com
اطلاعاتی در مورد سایت مورد نظر، که گوگل میتواند ارایه کند.

site:www.mysite.com myword
با استفاده از این روش کلمه مورد نظر خودمون رو میتونیم در یک سایت جستجو کنیم. به جای myword کلمه یا کلمات مورد نظر و به جای mysite سایتی که میخواهیم در آن جستجو کنیم قرار میدهیم.

allintitle:word1 word2 word3
;در این روش نتایج جستجو محدود میشود به کلماتی که در عنوان (title) سایت ها بکار رفته.در این مثال کلیه سایت هایی که کلمات word1 word2 word3 در قسمت عنوان آنها بکار رفته لیست میشوند.

intitle:word1 word2 word3
جستجوی word1 در قسمت عنوان و word2 و word3 در عنوان و متن سایت ها.

allinurl:word1 word2 word3
گوگل در این روش کلیه سایت هایی که در آدرس آنها (URL) کلمات مورد نظر ما به کار رفته را لیست میکند.

inurl:word1 word2 word3
جستجوی word1 در آدرس سایت ها و بقیه کلمات در قسمت آدرس و متن سایت ها.

filetype:myfiletype
اگر به دنبال فایل هستید با این روش میتونید فایل هایی که پسوند خاصی دارند را جستجو کنید.مثلا filetype:doc به دنبال فایل های doc میگردد

intext:word1 word2
با این روش گوگل تنها در متن سایت ها به دنبال کلمات میگردد و از سرچ در عنوان و آدرس سایت ها صرف نظر میکند.
 

طریقه ی از بین بردن کرم new folder
ابتدا به وسیله ی مدیریت وظیفه ( Ctrl + alt + del ) از سر برگ دوم  ( فرآیند ها ) برنامه ی در حال اجرای windows explorer.exe  را متوقف کنید ( پایان فرآیند ) توجه داشته باشید که explorer.exe را متوقف نکنید

سپس به پوشه ی ویندوزتان بروید و پوشه ی windows explorer  را پاک کنید (( توجه داشته باشید که این پوشه نیست و فقط آیکن پوشه را دارد و یک فایل اجرایی با پسوند exe می باشد ))
سپس در کامپیوتر خود عبارت new folder را جست و جو کنید و همه را پاک کنید

قالب های جدید بلاگ اسکای

blogfa.ir : دامنه جدید برای وبلاگ های بلاگفا

وبلاگهای پرشین بلاگ تحت دامین persianblog.ir

دامنه پرشین بلاگ مورد تعرض هکرهای عراقی قرار گرفت

دلایل بسته شدن IP وبلاگ های بلاگفا

امکانات جدید سرویس جوان بلاگ

توضیحات میهن بلاگ درباره اختلالات اخیر این سرویس

امکانات جدید سرویس SUP.ir

یکصد ساعت Error در میهن بلاگ

ارسال پست به وبلاگ از طریق Google Docs

بلاگر مجهز به ابزار ویدئو

بازگشایی بخش ثبت نام میهن بلاگ

پرشین بلاگ وارد ششمین سال فعالیت خود شد

تعداد وبلاگ های ثبت شده در پرشین بلاگ از مرز 800هزار گذشت

سرویس وبلاگ وردپرس در اوج

گزارش و تصاویر تولد بلاگ اسکای

تغییرات Pagerank سرویس های وبلاگ فارسی

تغییرات گرافیکی آفتاب لاگ

اولین گردهمایی وبلاگ نویسان بلاگ اسکای

بلاگ اسکای تغییر چهره داد

با ارسال SMS وبلاگ خود را به روز کنید

راه اندازی سرویس موبلاگ آفتابلاگ

تعلیق برگزاری کلاس آشنایی با قالب سرویس آفتاب لاگ

کلاس آشنایی با قالب سرویس آفتاب لاگ

تگ جدید عناوین آخرین مطالب وبلاگ برای کاربران بلاگفا

امکانات جدید سرویس وبلاگ انزلی بلاگ

نسخه جدید میهن بلاگ : وبلاگ خود را سایت کنید

سرویس SMSblog پارسی باکس فعال شد

بلاگفا ، پارسی باکس را فیلتر کرد

انتقال مطالب از دیگر سرویس های وبلاگ به وبلاگ های پارسی باکس

مصاحبه بلاگ اسکای و آمار وبلاگ های این سرویس

عرضه نرم افزار به روز رسانی وبلاگ توسط سرویس پارسی باکس

گوگل نسخه جدید بلاگر را عرضه کرد

تعداد وبلاگ‌های وردپرس از مرز نیم میلیون گذشت

سرویس های وبلاگ فارسی در ماه نوامبر 2006

پرشین بلاگ امکان حذف تولبار بالای وبلاگ هایش را فراهم کرد

میهن بلاگ سرویس ایران بلاگ را تهدید به هک کرد !

گرافیک و تغییرات جدید در پارسی بلاگ

قطعی موقت سرویس SMSblog پرشین بلاگ

سرویس های وبلاگ فارسی در ماه اکتبر 2006

بلاگفا در ماهی که گذشت

مشکلات اخیر وبلاگهای بلاگفا و پاسخ مدیر این سرویس

شکایت yahoo از