برنامه به زبان c که پسورد بایاس رو پاک کنه.

در اين بخش مي‌توانيد در مباحث مربوط به زبانهاي بر پايه C به بحث بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

ارسال پست
New Member
پست: 1
تاریخ عضویت: چهار شنبه 31 فروردین 1390, 12:38 pm

برنامه به زبان c که پسورد بایاس رو پاک کنه.

پست توسط mr_nemati » چهار شنبه 31 فروردین 1390, 2:01 pm

برنامه به زبان c که پسورد بایاس رو پاک کنه.

Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک شنبه 9 فروردین 1388, 9:11 am
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: برنامه به زبان c که پسورد بایاس رو پاک کنه.

پست توسط arashtabaie » دو شنبه 16 خرداد 1390, 2:17 pm

میدونم که یک مقدار از تاریخ پستتون گذشته ولی به هر حال برای مراجعه های بعدی راهنمایی میکنم...
کلا البته بهتر است که این کار را نکنید یعنی اگر دسترسی به سخت افزار دارید میتونید با اتصال کوتاه کردن مدار، بایوس را ریست کنید یا از گذرواژه های در پشتی (back door) که توسط سازنده سخت افزار ارائه میشه استفاده کنید.
مشکل اصلی برای انجام این کار به صورت نرم افزاری این است که شما نمیتوانید مشخصا فقط از شر پسورد خلاص بشید، بلکه مجبورید تمام بایوس را با کمک غیر صحیح(invalidate) کردن حافظه بایوس به حالت پیش فرض کارخانه برگردانید که نمیتواند همیشه نظر شما را تامین کند!
به هر حال برای انجام کار به صورت نرم افزاری، کد زیر کارتون را راه میندازه، زیر کد توضیحات مربوطه رو میدم:


کد: انتخاب همه

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main()
{
    FILE * batchFile = fopen("./temp.bat","w");
    fputs("DEBUG\n",batchFile);
    fputs("-o 70 2e\n",batchFile);
    fputs("-o 71 ff\n",batchFile);
    fputs("-q\n",batchFile);
    fputs("exit",batchFile);
   
    fclose(batchFile);

    system("./temp.bat");

    sleep(2000);   /* 2 sanieh delay baray tamam shodan kare thread jadid ke system bala baz karde!! */

    system("del ./temp.bat");

    return EXIT_SUCCESS;
}




در قطعه کد بالا، ابتدا یک temporary batch file درست میکنیم، دستورات مربوط به خراب کردن محتویات حافظه بایوس( ) را توی آن قرار داده سپس اون رو با استفاده از عملگر system به دست cmd ویندوز میدهیم تا اجرا کند! هرگونه تلاش به شکل دیگر برای اجرای این حرکت مذبوحانه که خارج از دیباگ مود صورت بگیره، توسط سیستم عامل خارج شدن از memory segment در نظر گرفته شده و segmentation fault میگیریم
آخرش هم فایل تمپمونو پاک میکنیم.
پ.ن1: این کد ممکنه یک مقدار دیباگ بخواد چون خودم تستش نکردم. همینطوری اینجا نوشتمش.
پ.ن2: به هر حال این یک عمل فورس هست و انجام اون رو خودم شخصا اصلا توصیه نمیکنم.
پ.ن3:به این علت که احتمالا دوست نداشتید یک فایل جدا گانه همراه با فایل اجرایی برنامه تون حمل و نقل کنید کد اینجوری فایل بازی شد!
پ.ن4: یاد shell scripting هم بخیر!(سر نخ برای مطالعه بیشتر )

ارسال پست

بازگشت به “C Base Programming”