20 نکته برای یک پیادهروی سالم
تعداد زیادی از پزشکان مشوق هر نوع پیادهروی هستند. پیادهروی بروز بیماریهای قلبی را کاهش می دهد و راه مطمئنی برای حفظ تناسب اندام و در نتیجه سلامت بیشتر است. دیگر اینکه پیادهروی کاری است آسان که می توانید به راحتی برای آن برنامهریزی کنید.
در اینجا به چند نکته که شما را در مسیر پیادهروی صحیح قرار می دهد، اشاره می کنیم:
3 نکته درباره کفش مناسب برای پیادهروی
1) از یک جفت کفش راحت و کاملا اندازه شروع می کنیم. می توانید از یک فروشگاه مطمئن کفش ورزشی مناسب تهیه کنید. توجه کنید که کفش، کف طبی متناسب با گودی کف پا و کنارههایی محکم داشته باشد. از آنجایی که اغلب، یک پا کمی بزرگ تر از پای دیگر است، کفش خود را متناسب با اندازه پای بزرگ تر خود انتخاب کنید.
2) جورابهایی را انتخاب کنید که بیشتر می پسندید. ممکن است شما جوراب هایی با بافت متراکم و ضخیم انتخاب کنید که چسبان هستند و از میزان اصطکاک پا و کفش کم می کنند و یا نوع نازک که جاذب رطوبت هستند و یا نوع نخی را ترجیح دهید.
3) لباسهای آزاد و راحت بپوشید و اگر هوا سرد است، به جای یک پوشش ضخیم، از چند پوشش نازک و سبک استفاده کنید تا بتوانید پس از گرم شدن از تعداد آنها کم کنید.
8 نکته برای شروع حرکت
1) با یک میزان متناسب و نسبتا کوتاه، پیاده روی را شروع کنید، برای مثال 15 تا 20 دقیقه با سرعت متوسط راه بروید.
2) پیادهروی شما باید شامل سه بخش باشد: گرم کردن، طی کردن مسافت مورد نظر و خنک کردن بدن.
3) برای گرم شدن، پنج دقیقه اول را با سرعت کم، در حدود نصف سرعت عادی خودتان راه بروید. سپس مکث کنید و مقداری حرکات کششی انجام دهید. تمرکز حرکاتتان روی مچ پا، رانها و پشت ساق پا باشد. این کار موجب نرمی و انعطافپذیری ماهیچههایتان می شود. اما توجه کنید که این کار تنها در صورتی مفید است که بدنتان را گرم کرده باشید. کششها باید آرام و با مکث باشد و فشار بیش از حد بر ماهیچهها وارد نکند.
4) پس از حرکات کششی، با سرعت عادی شروع به راه رفتن کنید. سرعت و مسافت پیادهروی باید متناسب با سن و شرایط عمومی بدنتان باشد. هرگز از حد تعادل خارج نشوید. زمانی که قادر باشید بدون تنگی نفس هنگام راه رفتن گفتگو کنید، یعنی سرعت مناسبی دارید.
5) شانههای خود را عقب نگه دارید و عضلات خود را آزاد کنید. بگذارید دستهایتان آزادانه در کنارتان تاب بخورند.
6) قدمهای خود را به صورت پاشنه – پنجه بردارید. کف پا را بر زمین نکوبید.
7) گامهای منظم بردارید تا سرعتتان یکنواخت باشد.
8) در پنج دقیقه آخر پیادهروی، به تدریج گامهایتان را کوتاه و سرعتتان را کم کنید تا به سرعت اولیه زمان گرم کردن برسید. پیادهروی خود را با انجام تعدادی حرکت کششی تمام کنید. این کار ماهیچهها را از انقباض خارج کرده و ضربان قلب را به حالت طبیعی برمی گرداند.
5 نکته برای انتخاب سرعت مناسب
1) به تدریج به زمان پیادهروی خود اضافه کنید. برای مثال، در طول یک هفته، پنج دقیقه به زمان آن بیفزایید.
2) هنگامی که زمان پیادهروی شما به 30 دقیقه یا بیشتر رسید، سعی کنید مسافت حرکت خود را در همین چارچوب زمانی افزایش دهید.
3) برای به دست آوردن بهترین نتیجه، حداقل چهار مرتبه در هفته و هر بار به مدت 20 دقیقه یا بیشتر پیادهروی کنید.
4) حرکات کششی را هرگز حذف نکنید.
5) از هر فرصتی برای بیشتر راه رفتن استفاده کنید، حتی اگر در این حد باشد که در مدت پخش تبلیغات از تلویزیون از جای خود بلند شوید و کاری انجام دهید (یادتان باشد که این کار رفتن به سراغ یخچال نباشد!)
4 نکته برای پیشگیری از صدمات احتمالی
1) بیثباتی یکی از دلایل اصلی بروز صدمات بدنی در ورزش است. کلید موفقیت، در افزایش تدریجی شدت و مقدار (زمان و مسافت) است. ممکن است در جلسه اول پیادهروی در ماهیچههای خود احساس کوفتگی کنید، که طبیعی است و در عرض 24 تا 48 ساعت برطرف می شود.
2) مراقب باشید که زودتر از موعد مناسب، زمان، سرعت و مسافت پیادهروی خود را افزایش ندهید.
3) اگر برای مدت چند هفته به دلیلی موفق به پیادهروی نشدید، انتظار نداشته باشید که بتوانید با همان سرعت و قدرت گذشته ادامه دهید، چون مدتی زمان برای بازگشت به حالت قبلی لازم است.
4) در صورتی که پاشنه کفشهایتان ساییده شده است، به خصوص اگر این ساییدگی نامنظم است، باید به فکر تهیه کفش جدید باشید.
همان طوری که می دانید کامپیوترها فقط با کدها (اعداد) کار میکنند و حروف و نویسههای (کاراکتر) دیگر را با تخصیص عددی (کد) به هر یک از آنها در خود ذخیره میکنند و یا بر روی آن پردازش انجام می دهند. بنابراین تمام اطلاعات نوشتاری، صوتی و تصویری در نهایت باید به صورت اعداد و ارقام در کامپیوتر ذخیره و پردازش شوند.
برای اینکه بتوانیم اطلاعات نوشتاری خودمان را برای کامپیوتر قابل فهم کنیم مجبوریم تا به هر حرف از حروف الفبا، یک عددی (کد) اختصاص بدهیم. حالا شما تصور کنید که در دنیا چند زبان و خط وجود دارد و هر شرکت نرم افزاری بخواهد برای ذخیره اطلاعات به خط و زبان خودش یک کد ویژه به کار ببرد! تا قبل از ابداع یونیکد، هر شرکتی برای نمایش نویسه در کامپیوتر از یک کد ویژه و خاص خود استفاده می کرد و بی اغراق صدها سیستم کُدگذاری مختلف برای تخصیص این اعداد و کدها وجود داشت.
یعنی مثلا تصور کنید یک شرکتی برای نمایش یک نویسه مثل a از یک کد و شرکتی دیگر از کدی دیگر استفاده می کرد و این موضوع در مورد تمام زبانها، از جمله زبان فارسی هم صادق بود. و یا اگر استانداردهایی هم برای این منظور طراحی شده بود در حد قابل قبولی نبود. ( در تالار گفتگوی سایت میکرورایانه بحث های نسبتا مفصلی در این مورد انجام شده، برای مطالعه بیشتر دراین مورد به سایر مقالات سایت میکرو رایانه مراجعه نمایید). مثلاً اتحادیه اروپا به چندین سیستم کُدگذاری مختلف نیاز داشت تا همه زبانهای آن اتحادیه را در بر بگیرد. حتی برای زبانی مثل انگلیسی نیز هیچ کُدگذاریی بهتنهایی برای همه حروف، علائم نقطهگذاری و نمادهای فنی متداول، کافی نبود.
از طرف دیگر سیستمهای کدگذاری نیز با همدیگر تعارض داشتند. یعنی دو کُدگذاری مختلف ممکن بود از اعداد یکسانی برای دو نویسه مختلف استفاده کنند و یا همانگونه که ذکر شد از اعداد مختلفی برای نویسههای یکسان استفاده کنند. با وجود این که هر کامپیوتری (بالاخص سرورهای شبکه) لازم است از کُدگذاریهای مختلف و متعددی پشتیبانی کنند و گرنه هرگاه دادهها از کُدگذاریها یا محیطهای مختلف عبور کنند، در معرض خطر تحریف یا تغییر قرار میگیرند.
بدیت ترتیب یونیکد ابداع شد. یونیکد به هر نویسه یک عدد یکتا، اختصاص میدهد، مستقل از محیط، مستقل از برنامه، و مستقل از زبان. استاندارد یونیکد را پیشتازان صنعت کامپیوتر از قبیل شرکتهایی، چون آیبیام، اَپل، اچپی، اورکل، جاستسیستم، سان، سایبیس، مایکروسافت، یونیسیس و بسیاری از شرکت های دیگر پذیرفته اند.
امروزه یونیکد در بسیاری از سیستمعاملها، همه مرورگرها و بسیاری از محصولات دیگر پشتیبانی میشود. پیدایش استاندارد یونیکد و در دسترس بودن ابزارهایی که از آن پشتیبانی میکنند، از چشمگیرترین روندهای جدید در صحنه جهانی فناوریهای نرمافزاری بوده است.
گنجاندن یونیکد در سایت ها و برنامههای کاربردی، در مقایسه با کدهای قدیمی، میتواند باعث کاهش قابل ملاحظه هزینهها شود. یونیکد این امکان را فراهم میکند که یک محصول نرمافزاری یکسان یا یا یک سایت مشخص، بتواند بدون نیاز به طراحی مجدد، در محیطها، زبانها، و کشورهای متعددی کار کند. یونیکد به دادهها نیز امکان میدهد که بدون تحریف از سیستمهای مختلف عبور داده شوند.
بدین ترتیب یونی کد به همه حروف، کدهای یکتایی مستقل از محیط سیستم عامل و برنامه و زبان، تخصیص می دهد. در این سیستم کدگذاری، تمام حروف زبان های زنده امروز دنیا در نظر گرفته شده و برای هر کدام از این حروف یک کد یکتا و منحصر به فردی اختصاص داده شده است. (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه)در حال حاضر ما به راحتی از این سیستم کدگذاری استفاده می کنیم و نگران این نیستیم که کاربران وب سایت از چه سیستم یا از چه مرورگر اینترنتی استفاده می کنند. کافی است نرم افزارهای آنها فقط از استاندارد Unicode پشتیبانی کنند.
قبل از یکسان سازی و بوجود آمدن این سیستم کدگذاری، بسیاری از کاربران فارسی زبان اینترنت، برای آن که بتوانند نوشته های خود را به اطلاع هم زبانان خود برسانند، آنها را به فایل های تصویری تبدیل کرده و ارسال می نمودند و یا در برخی موارد با استفاده از سیستم کدگذاری حروف عربی، این کار را به انجام می رساندند و یا با استفاده از حروف انگلیسی اقدام به نگارش زبان فارسی می نمودند. ولی هم اکنون بسیاری از کاربران از این سیستم کدگذاری استفاده می کنند بدون آنکه شاید اطلاعی از وجود آن داشته باشند!
کنسرسیوم یونیکد
کنسرسیوم یونیکد سازمانی غیرانتفاعی است که برای بهبود، گسترش و ترویج استفاده از استاندارد یونیکد تأسیس شده است. استانداردی که شیوه بازنمایی متون را در محصولات نرمافزاری و استانداردهای امروزی مشخص میکند. اعضای این کنسرسیوم را طیف گستردهای از شرکتها و سازمانهای فعال در صنعت پردازش اطلاعات، در بر میگیرند. پشتیبانی مالی این کنسرسیوم صرفاً از طریق حق عضویت اعضا تامین می شود. عضویت در کنسرسیوم یونیکد برای سازمانها و افراد در هر جای دنیا که استاندارد یونیکد را پشتیبانی کنند و بخواهند در گسترش و پیادهسازی آن کمک کنند، آزاد است.
شعار یونی کد این است:
یونیکد به هر نویسه یک اعداد یکتا اختصاص میدهد،
مستقل از محیط،
مستقل از برنامه،
و مستقل از زبان.
برای کسب اطلاعات بیشتر به سایت زیر مراجعه نمایید:
http://www.unicode.org
تا وقتی که قانون Copyright نرم افزار در ایران به صورت کامل اجرا نمی شود، لزوم پرداختن به بحث قفل های نرم افزاری بیشتر احساس می شود. در این مقاله سعی بر این است تا علاوه بر آشنایی با انواع قفل های نرم افزاری و بررسی اختلاف آن ها با قفل های سخت افزاری، بتوانیم به عنوان طراح یک قفل نرم افزاری از محصولات نرم افزاری خودمان حمایت کنیم. ضمنا علاوه بر آشنایی با مفاهیم فوق، نوشتن روتین های ضد دیباگ (Debug) و همچنین نحوه کد کردن اطلاعات نیز تا حدی مورد بررسی قرار خواهد گرفت.
قفل های نرم افزاری و سخت افزاری
قفل های نرم افزاری به برنامه هایی گفته می شود که کنترل کپی نمودن آنها فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی، قابل انجام باشد. قفل های سخت افزاری به برنامه هایی اطلاق می شود که کنترل کپی نمودن آنها از طریق سخت افزار اضافی (که بر روی سیستم نصب می گردد) صورت می پذیرد.
با توجه به توضیحات فوق می توان به تفاوت قفل های سخت افزاری و نرم افزاری پی برد. قفل های سخت افزاری با اضافه کردن یک سخت افزار جدید به کامپیوتر (اغلب از طریق ارتباط با پورت چاپگر) برنامه خود را کنترل می کنند. برنامه قبل از اجرا، ابتدا با مراجعه به آدرس سخت افزار نصب شده (اضافه شده با استفاده از دستور Port ) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن، تست های مختلف اعم از تست رمز، خواندن اطلاعات و ... را انجام داده و در نهایت می تواند تصمیم گیری نماید.
اما در قفل های نرم افزاری برنامه، بدون نیاز به سخت افزار اضافی و با کنترل رسانه ذخیره سازی، تصمیم گیری می کند. ضمنا لازم به توضیح است که هدف از طراحی قفل های نرم افزاری/سخت افزاری این نیست که هیچکس توانایی شکستن (باز کردن ) آن را ندارد بلکه هدف بالا بردن سطح کنترل کپی های غیر مجاز تا حد ممکن می باشد.
طریقه استفاده از قفل نرم افزاری
در برنامه مورد نظر با توجه به نوع کاربرد برنامه (کوچک و قابل کپی بر روی یک دیسکت, تحت شبکه و ... ) می توانیم از انواع روش هایی که جهت حفاظت از نرم افزار در نظر داریم (و متعاقبا توضیح داده خواهد شد) استفاده کنیم. اما مساله قابل بحث این است که چه قفلی را انتخاب نمائیم؟ جواب این سوال متغییر و وابسته به شرایط زیر می باشد:
الف: اعتقاد طراح نرم افزار به اینکه حتما باید کاربر آن را خریداری نماید تا از امکانات آن مطلع گردد. در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل می گردد حتی طراح می تواند در مواقع حساس نیز قفل را مجددا کنترل کند و یا حتی در حالتی که طراح واقعا سخت گیر باشد، می تواند در زمان های مشخصی نیز از وجود قفل اطمینان حاصل نماید (مثلا هر 4 ثانیه یک بار). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند، نیز در نظر بگیرد.
ب: اعتقاد طراح نرم افزار به این که کاربر می تواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند. طراح در این حالت می بایست در مکان های خاصی از برنامه، قفل را کنترل کند. مثلا در یک برنامه حسابداری می توان تمام بخش های سیستم را آزاد گذاشت (یعنی در بخش های برنامه قفل وجود نداشته باشد) اما در گزارشگیری ها قفل گذاشت. یعنی در صورتی که کاربر مایل به استفاده از امکانات گزارشگیری سیستم باشد، قفل نرم افزاری در خواست گردد. مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی خاصی جهت مشاهده کاربران وجود ندارد.
آشنایی با نحوه قفل گذاری بر روی یک برنامه
الف: طراح به سورس برنامه دسترسی دارد. در این حالت طراح پس از انتخاب روش قفل گذاری، کافی است آن را به زبان مورد نظر خود پیاده سازی نموده و در برنامه خود بگنجاند. (که مکان های قرار دادن قفل در عنوان قبلی توضیح داده شد.)
ب: طراح (مجری پروژه) به سورس برنامه دسترسی ندارد. گاهی اوقات به یک سری برنامه های ارزشمندی برخورد می کنیم که فاقد قفل هستند و بنا به دلایلی نیاز به قفل گذاری وجود دارد. (البته این حالت بیشتر در کشور ما و چند کشور دیگر که در آن ها قانون Copyright اجرا نمی شود، کاربرد دارد.)
جهت تزریق قفل به این گونه برنامه ها، نیاز به آشنایی کامل با ساختار فایل های اجرایی (EXE, COM, SYS, …) وجود دارد چرا که باید برنامه ای طراحی کنیم تا همانند یک ویروس کامپیوتری به فایل اجرایی مشخصی بچسبد. البته جهت این کار بهترین زبان برنامه نویسی، اسمبلی می باشد. (به دلیل توانایی دخالت در روند اجرای برنامه و برای مطالعه بیشتر در مورد برنامه نویسی اسمبلی به سایر مقالات سایت میکرو رایانه مراجعه نمایید) البته در رابطه با نحوه نوشتن این گونه برنامه ها، روش های زیادی وجود دارد که خود بحثی مجزا را می طلبد و از حوصله این مقاله خارج است.
ضمنا برای بالا بردن سطح امنیت برنامه، لازم است تا یکسری کد های ضد دیباگ نیز در برنامه گنجانده شوند. کدهای ضد دیباگ، دستوراتی به زبان اسمبلی هستند که در حالت اجرای عادی برنامه، هیچ تغییری در روند اجرا نمی گذارند بلکه در مواقعی که برنامه توسط دیباگرها اجرا می گردند، قادر هستند تا از اجرای آن جلوگیری نمایند.
با اضافه کردن کد های ضد دیباگ به ابتدای برنامه (یا قبل از کنترل قفل) می توان احتمال دست کاری در برنامه را پائین آورد. (نحوه نوشتن کد های ضد دیباگ در زیر آورده شده است.)
آشنایی با روش های قفل گذاری و نحوه طراحی آن ها
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% می باشد.
آشنایی با روتین های ضد دیباگ 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
روش های کد کردن اطلاعات Data Coding Procedures
الف: افزودن یک عدد به کد های یک فایل
در این روش جهت کد کردن یک فایل، ابتدا آن را خوانده و سپس یک مقدار خاص، مثلا 20 را به مقدار هر بایت فایل اضافه می کنیم. این یکی از ساده ترین روش ها بوده و نسبتا کارایی خوبی نیز دارد. جهت خارج کردن فایل از حالت کد شده (Decode) نیز، کافیست مقدار فوق را از تمام بایت های فایل کم کنیم.
ب: XOR کردن کل فایل
در این روش نیز پس از خواندن کل فایل، تمام بایت های آن را با رشته کاراکتری یا عدد ثابت خاصی XOR کرده و سپس مقدار جدید را در فایل حاصل ضبط می نمائیم. جهت خارج کردن فایل از حالت کد شده، دقیقا عکس آن را انجام می دهیم.
مثالی از یک برنامه قفل گذار 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.
Regedit
با تایپ این کلمه در قسمت اجرای یک برنامه از منوی استارت رجیستری ویندوز باز میشود و با استفاده از ان متوانید قسمت های مختلف ویندوز را بنا به سلیقه و خواست خود تغییر دهید متذکر می شویم در رجیستری چیزی را که نمدانید حذف یا تغییر ندهید
Cmd
با تایپ این دستور در قسمت اجرای منوی استارت محیط سیستم عامل داس روبروی شما ظاهر می شود و می توانید فرمان های خود را برای این سیتم عامل تایپ نمایید
(Perfmon (performance
با تایپ این دستور در قسمت اجرای منوی استارت برنامه سیستم مانیتورینگ اجرا می شود و در آن جزییاتی در مورد فضای اشغال شده از رم و یا مقدار بازدهی سی پی یو و همچنین مقدار اطلاعات خواننده شده از هارد را برای شما به صورت نمودار بیان می نماید
Sysedit
با تایپ این دستور در قسمت اجرای منوی استارت ویرایشگر فایل های سیتمی اجرا می شود و می توانید آنها را ویرایش نمایید .متذکر میشویم در صورت تغییرات اشتباه ممکن است سیستم شما بالا نیاید
msconfig
با تایپ این دستور در قسمت اجرای منوی استارت میتوانید نرم افزارهای را که در هنگام بالا آمدن سیستم اجرا می شوند مدیریت کنیدفعال یا غیر فعال کنید .
drwtsn32
با تایپ این دستور در قسمت اجرای منوی استارت ، برنامه دکتر واتسون (Watson) اجرا می شود این برنامه در گزارش و همچنین عیب یابی مشکلات نرم افزاری بسیار مفید می باشد
ntbackup
با تایپ این دستور در قسمت اجرای منوی استارت برنامه گرفتن نسخه پشتیبان بر روی سیستم شما اجرا شده و می توانید از سیستم خود نسخه پشتیبان تهیه نمایید
زمان چیست
تست هوش
مراسم عجیب عروس و داماد ها در دنیا
الفبای زندگی !!
مردم ملل مختلف اوقات خود را چگونه میگذرانند؟
تعاریف بیمه ای
در بازی مار و پله زندگی هیچگاه از تاس انداختن ناامید نشو
پنج کلید شادی
برنامه چندلایه چیست ؟
یکی بگو ، یکی بشنو
تفاهم در عین سوءتفاهم
احضار اول شخص غائب
بهترین همسران دنیا!
غمی که با کودک میآید!!
[همه عناوین(140)][عناوین آرشیوشده]
بازدید دیروز: 45
کل بازدید :380481
برای دستیابی به پروژه ها و پایان نامه های دانشجویی به آدرس www.bitasoft.ir مراجعه فرمائید.
پروژه های اکسس [145]
پروژه های ویژوال بیسیک6 [102]
پایان نامه های دانشگاهی [352]
پروژه های کارآفرینی [215]
UML و SSADM [83]
پروژه های مولتی مدیا بیلدر [72]
پروژه های سی شارپ [141]
پروژه های asp.net [100]
پروژه ها و پایان نامه های دانشگاهی [404]
آموزش مهر سازی و کلید سازی [71]
[آرشیو(11)]
ما و دلاوران
بهار bahar
الهه نور
ARAX
هیـــــــــئت زیــــــنبیون «محفل،طلاب بسیجیان و رهروان شهدا»
نم نم بارون ( رفیق نارفیق )
سه فاز بازار
عاشقان زنده...شهدا...اروند...
شعر و دل نوشته های اسارت
مشکلات جنسی
پایگاه اطلاع رسانی قاین نیوز
عشق تنها
بازی برنامه کلیپ ... برای موبایل جدیدترین عکسهای ایرانی و خارجی
امیرالمومنین علی علیه السلام
gitar4ever
آموزش و پرورش
پوست کلف
عمومی
هنر و فلسفه و ادبیات و ادیان ...
شهدای غریب
موتور سنگین ... HONDA - SUZUKI ... موتور سنگین
وفا دات کام
یادداشت های یه آسمونی
سهیــــــــــــــــلی منطقه آزادقشم
وبلاگ افسانه جومونگ
سرزمین من
به یاد مهدی (عج)
poueshdownload
بزرگترین لینک باکس آهنگهای رپ
world of news
به نام آنکه اشک راآفریدتاسرزمین وداع آتش نگیرد
فاصله
اتومبیل
salima
توشمانلو روستای نمونه ایران
مغزیات
سیب سرخ
من میخواهم مسلمان شوم.
ای ول .کام
عشق
موزیک ،نرم افزار، بازی، آهنگ رپ ، خدمات موبایل و..
سلام آقا
عکس جک اس ام اس نرم افزار داستان مطالب جالب و خواندنی و . . .
مشاوره در زمینه انتخاب متریال و بازرسی جوش
D E V I L
تخصصی فقه وحقوق
تنهای تنها
سفر طولانی آخرت
http://ads.sooran.ir/js/7137/49/"> http://ads.sooran.ir/js/7137/57/">