چهارشنبه, ۲۶ دی, ۱۴۰۳ / 15 January, 2025
مجله ویستا
از بین بردن رمز ست آپ کامپیوتر (پاک کردن اطلاعات حافظه)
پاک کردن اطلاعات حافظه CMOS
در کامپیوترهایXT باتوجه به تعداد محدود پارامترها، پیکربندی سیستم بااستفاده از میکروسوئیچ امکان پذیر می باشد اما در سیستم های AT به دلیل بالا بودن تعداد پارامترهای قابل برنامه ریزی توسط استفاده کننده ، حضور یک منبع که هم به راحتی در دسترس باشد و هم جای کمی اشغال نماید ، ضروری به نظر می رسد. این منبع در کامپیوترهای AT حافظه CMOS نامیده می شود .حافظه CMOS دارای ۶۴ بایت و یا بیشتر ظرفیت می باشد که توسط دو پورت H۷۰ و H۷۱ قابل دسترسی می باشد. و از آن برای نگهداری ساعت ، تاریخ و پیکربندی سیستم استفاده می شود. همچنین تعدادی از بیت های این حافظه برای چک کردن پیکربندی سیستم تحت عنوان CHECKSUM استفاده می شود. محتویات این حافظه در زمان خاموش بودن سیستم توسط یک باطری پشتیبان ۶/۳ ولتی نگهداری می شود. این باطری ممکن است در داخل و یا در خارج از مادربورد قرار داشته باشد . البته در بعضی از سیستمها مجموعه باطری و حافظه به صورت یکپارچه ارائه شده که نمونه آن مارک DALLAS می باشد.از نظر عملکرد و نحوه دستیابی هیچ تفاوتی بین انواع متفاوت CMOS وجود ندارد و همگی با استفاده از دو پورت یادشده قابل دسترسی و برنامه ریزی می باشند.
تغییر در محتویات CMOS بطور معمول از طریق برنامه SETUP امکان پذیر است اما در صورتی که در ست آپ سیستم رمز تعریف شده باشد و رمز مربوطه را هم در اختیار نداشته باشید در اینصورت امکان ورود به برنامه ست آپ و تغییر در پیکر بندی سیستم ( اطلاعات CMOS ) امکان پذیر نخواهد بود . در این موارد راهی جز پاک کردن محتویات CMOS نداریم . دراین مواقع در احتمال وجود دارد .
۱) برای وارد شدن به سیستم رمز تعریف شده باشد.
۲) برای وارد شدن به ست آپ رمز تعریف شده باشد.
در حالت اول با توجه به بوت نشدن کامپیوتر کاری از نرم افزارها ساخته نیست و باید اقدام به پاک کردن محتویات CMOS به صورت سخت افزاری نمود .
این کار معمولا با برداشتن باطری پشتیبان ست آپ برای چند دقیقه ، یااتصال کوتاه بر روی جامپر مربوطه ( J۸ ) و یا تعویض تراشه CMOSامکان پذیر می باشد . البته این روشها در صورتی کارآمد خواهد بود که شما مجاز به بازکردن کیس کامپیوتر باشید که البته در اکثر مواقع این امکان وجود ندارد .شایان ذکر است در صورتی که اعمال فوق درست صورت نگیرد احتمال سوختن و خراب شدن CMOS وجود دارد بنابراین تا حد امکان باید از کاربرد این روش اجتناب شود مگر در مواقعی که ضرورت ایجاب نماید.در حالت دوم با توجه به بوت شدن کامپیوتر نیازی به اقدامات فوق نبوده و می توان با استفاده از نرم افزارهای مناسب اقدام به پاک کردن و یا ذخیره اطلاعات CMOS نماییم . از آنجایی که همیشه نرم افزار مناسب وجود ندارد و یا در دسترس نیست بعنوان یک مهندس نرم افزار باید قادر باشیم تا با استفاده از امکانات موجود بر روی کامپیوتر این کار را انجام دهیم . با استفاده از برنامه DEBUG.EXE که همراه فایلهای سیستم عامل DOS و ویندوز وجود دارد می توان با خواندن و یا نوشتن در پورت های H۷۰ و H۷۱ تغییرات لازم را در محتویاتCMOS اعمال نموداز دو پورت فوق پورت H۷۰ بعنوان گذرگاه آدرس( ADDRESS BUS ) و پورت H۷۱ بعنوان گذرگاه داده بکار می رود. الگوریتم کلی کار به این صورت است که CMOS را بعنوان یک آرایه یک بعدی در نظر می گیریم که دارای ۲۵۶ خانه می باشد . برای دسترسی به هر خانه باید ابتدا اندیس ( آدرس ) خانه را در پورت H۷۰ بنویسیم و بعد از دسترسی به خانه مورد نظر می توان دادهٔ دلخواه را درآن نوشت و یا از آن خواند . دسترسی به داده ها نیز فقط از طریق پورت H۷۱ امکان پذیر می باشد . آخرین نکته اینکه عمل نوشتن و یا خواندن از پورت ها به کمک ثبات AL و توسط دستورهای IN و OUT مربوط به زبان اسمبلی امکان پذیر است .
الگوریتم کلی حذف اطلاعات حافظه CMOS
void CLR_CMOS(void){
for(int i=۰;i<۲۵۶;i++){
move value of i to register Al ;
Out Register Al to Port ۷۰h ;
Set register Al to zero ;// Al=۰
Out Register Al to Port ۷۱h
پیاده سازی این الگوریتم به کمک زبان اسمبلی بسیار آسان می باشد . اما از آنجا که قرار است این الگوریتم را با استفاده از debug پیاده سازی کنیم قبل از هر چیز باید با تعدادی از دستورات این نرم افزار آشنا شویمبا اجرای فایل debug.exe می توانید وارد محیط نرم افزار debug شوید محیط اصلی نرم افزار یک علامت خط تیره می باشد که بعد از اجرای فایل debug.exe ظاهر می شود.
این نرم افزار دارای تعدادی دستور می باشد که با تایپ یک علامت سئوال و فشردن کلید ENTER می توان لیست فرمانها را مشاهده نمود . در زیر تعدادی از فرمانها را که برای پیاده سازی این الگوریتم به آن نیاز داریم توضیح می دهیم و سایر فرامین را به خواننده واگذار می کنیم تا درصورت نیاز با مراجعه به راهنمای نرم افزار با نحوه کار هریک آشنا شود.
حال با فرض بر این که شما وارد محیط debug شده اید مجموعه دستورات لازم برای پیاده سازی الگوریتم فوق را در زیر می آوریم .
مرحله ۱
با اجرای دستور a وارد مود برنامه نویسی اسمبلی شوید در این صورت debug با نشان دادن آدرس xxxx:۰۱۰۰ آمادگی خود را برای دریافت دستورات اعلام می دارد ( در عمل debug بجای xxxx سگمنت مربوط به برنامه را نشان می دهد که توجه به این موضوع اصلاً در اینجا اهمیتی ندارد .)
مرحله ۲
دستورات زیر را با دقت تایپ کرده و در انتهای هر خط کلید ENTER را فشار دهید ( مواردی که زیر آن خط کشیده شده از طرف نرم افزار نشان داده می شود این آدرسها در واقع مشخص کننده طول هر دستور و در نهایت طول برنامه می باشد) .
XXXX:۱۰۰ MOV CL , FF
XXXX:۱۰۲ MOV AL , CL
XXXX:۱۰۴ OUT ۷۰ , AL
XXXX:۱۰۶ MOV AL , ۰
XXXX:۱۰۸ OUT ۷۱ , AL
XXXX:۱۰A LOOP ۱۰۲
XXXX:۱۰C INT ۲۰
XXXX:۱۰E
(در صورتی که مایل به درک کار دستورات برنامه نمی باشید به مرحله ۳ بروید )
توضیح خط به خط برنامه :
خط اول : یک شمارنده با مقدار ۲۵۵ در نظر گرفته شده که معادل همان متغیر i در الگوریتم است .
خط دوم : al را برابر cl قرار می دهیم.
خط سوم : محتوای al را به پورت h۷۰ ارسال کردیم (در واقع تنظیم گذرگاه آدرس ) .
خط چهارم : al را برابر صفر قرار می دهیم .
خط پنجم : محتوای al را به پورت h۷۱ ارسا ل می کنیم و در واقع داده موجود در al را در آدرسی که قبلاً مشخص کرده ایم می نویسیم
خط ششم : از آنجا که عملیات مربوط به تنظیم آدرس و نوشتن داده در محل آدرس باید به تعداد لازم تکرار شود بنایراین از دستور LOOP برای ایجاد یک حلقه با تعداد تکرار مشخص شده در CX استفاده کردیم دستور LOOP ۱۰۲ باعث می شود تا برنامه در هربار اجرا یک واحد از مقدار CX کم کرده و در صورت منفی شدن دستور بعدی و در غیر اینصورت به آدرس مشخص شده پرش می کند .در این برنامه با توجه به مقدار CX خطوط دوم تا پنجم ۲۵۶ بار اجرا می شوند .
خط هفتم : اجرای این وقفه باعث ختم برنامه خواهد شد
مرحله ۳
بعد از فشردن کلیدENTER درآخرین مرحله مجدداً اعلان DEBUG ظاهر می شود در این مرحله چنانچه نمی خواهید برنامه را ذخیره کنید در جلوی اعلان
( همان علامت منها ) دستور G را اجرا کنید تا کلیه محتویات CMOS پاک شود. سیستم را RESET نموده و با فشردن کلید DEL وارد ست آپ سیستم شوید و تغییرات لازم را اعمال نمایید . اما در صورتی که تمایل دارید کد برنامه را به صورت یک فایل اجرایی از نوع COM درآورید مراحل بعدی را انجام دهید
مرحله ۴
با اجرای فرمان R CX در مقابل اعلان DEBUG مقدار ثبات CX را به E تغییر داده و کلید ENTER را فشار دهید .( دقت داشته باشد که کلیه اعداد در DEBUG در مبنای ۱۶ نوشته می شوند و عدد Eهمان طول برنامه شماست یعنی اختلاف ۱۰E – ۱۰۰ در مبنای ۱۶)
مرحله ۵
با اجرای فرمان N CLR_CMOS.COM در جلوی اعلان DEBUG نام CLR_CMOS.COM را برای برنامه خود مشخص کنید ( به جای این نام می توانید نام دلخواه خودتان را با پسوند COM جایگزین کنید )
مرحله ۶
با اجرای فرمان W در جلوی اعلان DEBUG تعداد ۱۴ بایت کد نوشته شده در فایلی با نامی که در مرحله قبل مشخص کرده اید ذخیره خواهد شد .
حال شما دارای یک فایل اجرایی ۱۴ بایتی خواهید بود که هر وقت بر روی یک کامپیوتر اجرا شود محتویات حافظه CMOS آنرا پاک می کند .
مرحله ۷
در این مرحله می توانید همچون مرحله ۳ عمل نموده و یا با اجرای دستور Q از DEBUG خارج شوید و فایلی را که ساخته اید اجرا نموده و سیستم را RESET کنید و وارد ست آپ شوید.
در کامپیوترهایXT باتوجه به تعداد محدود پارامترها، پیکربندی سیستم بااستفاده از میکروسوئیچ امکان پذیر می باشد اما در سیستم های AT به دلیل بالا بودن تعداد پارامترهای قابل برنامه ریزی توسط استفاده کننده ، حضور یک منبع که هم به راحتی در دسترس باشد و هم جای کمی اشغال نماید ، ضروری به نظر می رسد. این منبع در کامپیوترهای AT حافظه CMOS نامیده می شود .حافظه CMOS دارای ۶۴ بایت و یا بیشتر ظرفیت می باشد که توسط دو پورت H۷۰ و H۷۱ قابل دسترسی می باشد. و از آن برای نگهداری ساعت ، تاریخ و پیکربندی سیستم استفاده می شود. همچنین تعدادی از بیت های این حافظه برای چک کردن پیکربندی سیستم تحت عنوان CHECKSUM استفاده می شود. محتویات این حافظه در زمان خاموش بودن سیستم توسط یک باطری پشتیبان ۶/۳ ولتی نگهداری می شود. این باطری ممکن است در داخل و یا در خارج از مادربورد قرار داشته باشد . البته در بعضی از سیستمها مجموعه باطری و حافظه به صورت یکپارچه ارائه شده که نمونه آن مارک DALLAS می باشد.از نظر عملکرد و نحوه دستیابی هیچ تفاوتی بین انواع متفاوت CMOS وجود ندارد و همگی با استفاده از دو پورت یادشده قابل دسترسی و برنامه ریزی می باشند.
تغییر در محتویات CMOS بطور معمول از طریق برنامه SETUP امکان پذیر است اما در صورتی که در ست آپ سیستم رمز تعریف شده باشد و رمز مربوطه را هم در اختیار نداشته باشید در اینصورت امکان ورود به برنامه ست آپ و تغییر در پیکر بندی سیستم ( اطلاعات CMOS ) امکان پذیر نخواهد بود . در این موارد راهی جز پاک کردن محتویات CMOS نداریم . دراین مواقع در احتمال وجود دارد .
۱) برای وارد شدن به سیستم رمز تعریف شده باشد.
۲) برای وارد شدن به ست آپ رمز تعریف شده باشد.
در حالت اول با توجه به بوت نشدن کامپیوتر کاری از نرم افزارها ساخته نیست و باید اقدام به پاک کردن محتویات CMOS به صورت سخت افزاری نمود .
این کار معمولا با برداشتن باطری پشتیبان ست آپ برای چند دقیقه ، یااتصال کوتاه بر روی جامپر مربوطه ( J۸ ) و یا تعویض تراشه CMOSامکان پذیر می باشد . البته این روشها در صورتی کارآمد خواهد بود که شما مجاز به بازکردن کیس کامپیوتر باشید که البته در اکثر مواقع این امکان وجود ندارد .شایان ذکر است در صورتی که اعمال فوق درست صورت نگیرد احتمال سوختن و خراب شدن CMOS وجود دارد بنابراین تا حد امکان باید از کاربرد این روش اجتناب شود مگر در مواقعی که ضرورت ایجاب نماید.در حالت دوم با توجه به بوت شدن کامپیوتر نیازی به اقدامات فوق نبوده و می توان با استفاده از نرم افزارهای مناسب اقدام به پاک کردن و یا ذخیره اطلاعات CMOS نماییم . از آنجایی که همیشه نرم افزار مناسب وجود ندارد و یا در دسترس نیست بعنوان یک مهندس نرم افزار باید قادر باشیم تا با استفاده از امکانات موجود بر روی کامپیوتر این کار را انجام دهیم . با استفاده از برنامه DEBUG.EXE که همراه فایلهای سیستم عامل DOS و ویندوز وجود دارد می توان با خواندن و یا نوشتن در پورت های H۷۰ و H۷۱ تغییرات لازم را در محتویاتCMOS اعمال نموداز دو پورت فوق پورت H۷۰ بعنوان گذرگاه آدرس( ADDRESS BUS ) و پورت H۷۱ بعنوان گذرگاه داده بکار می رود. الگوریتم کلی کار به این صورت است که CMOS را بعنوان یک آرایه یک بعدی در نظر می گیریم که دارای ۲۵۶ خانه می باشد . برای دسترسی به هر خانه باید ابتدا اندیس ( آدرس ) خانه را در پورت H۷۰ بنویسیم و بعد از دسترسی به خانه مورد نظر می توان دادهٔ دلخواه را درآن نوشت و یا از آن خواند . دسترسی به داده ها نیز فقط از طریق پورت H۷۱ امکان پذیر می باشد . آخرین نکته اینکه عمل نوشتن و یا خواندن از پورت ها به کمک ثبات AL و توسط دستورهای IN و OUT مربوط به زبان اسمبلی امکان پذیر است .
الگوریتم کلی حذف اطلاعات حافظه CMOS
void CLR_CMOS(void){
for(int i=۰;i<۲۵۶;i++){
move value of i to register Al ;
Out Register Al to Port ۷۰h ;
Set register Al to zero ;// Al=۰
Out Register Al to Port ۷۱h
پیاده سازی این الگوریتم به کمک زبان اسمبلی بسیار آسان می باشد . اما از آنجا که قرار است این الگوریتم را با استفاده از debug پیاده سازی کنیم قبل از هر چیز باید با تعدادی از دستورات این نرم افزار آشنا شویمبا اجرای فایل debug.exe می توانید وارد محیط نرم افزار debug شوید محیط اصلی نرم افزار یک علامت خط تیره می باشد که بعد از اجرای فایل debug.exe ظاهر می شود.
این نرم افزار دارای تعدادی دستور می باشد که با تایپ یک علامت سئوال و فشردن کلید ENTER می توان لیست فرمانها را مشاهده نمود . در زیر تعدادی از فرمانها را که برای پیاده سازی این الگوریتم به آن نیاز داریم توضیح می دهیم و سایر فرامین را به خواننده واگذار می کنیم تا درصورت نیاز با مراجعه به راهنمای نرم افزار با نحوه کار هریک آشنا شود.
حال با فرض بر این که شما وارد محیط debug شده اید مجموعه دستورات لازم برای پیاده سازی الگوریتم فوق را در زیر می آوریم .
مرحله ۱
با اجرای دستور a وارد مود برنامه نویسی اسمبلی شوید در این صورت debug با نشان دادن آدرس xxxx:۰۱۰۰ آمادگی خود را برای دریافت دستورات اعلام می دارد ( در عمل debug بجای xxxx سگمنت مربوط به برنامه را نشان می دهد که توجه به این موضوع اصلاً در اینجا اهمیتی ندارد .)
مرحله ۲
دستورات زیر را با دقت تایپ کرده و در انتهای هر خط کلید ENTER را فشار دهید ( مواردی که زیر آن خط کشیده شده از طرف نرم افزار نشان داده می شود این آدرسها در واقع مشخص کننده طول هر دستور و در نهایت طول برنامه می باشد) .
XXXX:۱۰۰ MOV CL , FF
XXXX:۱۰۲ MOV AL , CL
XXXX:۱۰۴ OUT ۷۰ , AL
XXXX:۱۰۶ MOV AL , ۰
XXXX:۱۰۸ OUT ۷۱ , AL
XXXX:۱۰A LOOP ۱۰۲
XXXX:۱۰C INT ۲۰
XXXX:۱۰E
(در صورتی که مایل به درک کار دستورات برنامه نمی باشید به مرحله ۳ بروید )
توضیح خط به خط برنامه :
خط اول : یک شمارنده با مقدار ۲۵۵ در نظر گرفته شده که معادل همان متغیر i در الگوریتم است .
خط دوم : al را برابر cl قرار می دهیم.
خط سوم : محتوای al را به پورت h۷۰ ارسال کردیم (در واقع تنظیم گذرگاه آدرس ) .
خط چهارم : al را برابر صفر قرار می دهیم .
خط پنجم : محتوای al را به پورت h۷۱ ارسا ل می کنیم و در واقع داده موجود در al را در آدرسی که قبلاً مشخص کرده ایم می نویسیم
خط ششم : از آنجا که عملیات مربوط به تنظیم آدرس و نوشتن داده در محل آدرس باید به تعداد لازم تکرار شود بنایراین از دستور LOOP برای ایجاد یک حلقه با تعداد تکرار مشخص شده در CX استفاده کردیم دستور LOOP ۱۰۲ باعث می شود تا برنامه در هربار اجرا یک واحد از مقدار CX کم کرده و در صورت منفی شدن دستور بعدی و در غیر اینصورت به آدرس مشخص شده پرش می کند .در این برنامه با توجه به مقدار CX خطوط دوم تا پنجم ۲۵۶ بار اجرا می شوند .
خط هفتم : اجرای این وقفه باعث ختم برنامه خواهد شد
مرحله ۳
بعد از فشردن کلیدENTER درآخرین مرحله مجدداً اعلان DEBUG ظاهر می شود در این مرحله چنانچه نمی خواهید برنامه را ذخیره کنید در جلوی اعلان
( همان علامت منها ) دستور G را اجرا کنید تا کلیه محتویات CMOS پاک شود. سیستم را RESET نموده و با فشردن کلید DEL وارد ست آپ سیستم شوید و تغییرات لازم را اعمال نمایید . اما در صورتی که تمایل دارید کد برنامه را به صورت یک فایل اجرایی از نوع COM درآورید مراحل بعدی را انجام دهید
مرحله ۴
با اجرای فرمان R CX در مقابل اعلان DEBUG مقدار ثبات CX را به E تغییر داده و کلید ENTER را فشار دهید .( دقت داشته باشد که کلیه اعداد در DEBUG در مبنای ۱۶ نوشته می شوند و عدد Eهمان طول برنامه شماست یعنی اختلاف ۱۰E – ۱۰۰ در مبنای ۱۶)
مرحله ۵
با اجرای فرمان N CLR_CMOS.COM در جلوی اعلان DEBUG نام CLR_CMOS.COM را برای برنامه خود مشخص کنید ( به جای این نام می توانید نام دلخواه خودتان را با پسوند COM جایگزین کنید )
مرحله ۶
با اجرای فرمان W در جلوی اعلان DEBUG تعداد ۱۴ بایت کد نوشته شده در فایلی با نامی که در مرحله قبل مشخص کرده اید ذخیره خواهد شد .
حال شما دارای یک فایل اجرایی ۱۴ بایتی خواهید بود که هر وقت بر روی یک کامپیوتر اجرا شود محتویات حافظه CMOS آنرا پاک می کند .
مرحله ۷
در این مرحله می توانید همچون مرحله ۳ عمل نموده و یا با اجرای دستور Q از DEBUG خارج شوید و فایلی را که ساخته اید اجرا نموده و سیستم را RESET کنید و وارد ست آپ شوید.
منبع : سازمان آموزش و پرورش استان خراسان
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست