PDA

View Full Version : برداشتن رمز setup سیستم



sirvan-me
سه شنبه 02 اسفند 1390, 18:43 عصر
سلام خدمت همه ی اساتید ، دیروز اولین جلسه ی درس آزمایشگاه سیستم عاملم بود ، استاد اومد . همون اول بسم الله به من یه پروژه داد که ..... بگذریم پروژه از این قراره :

یه برنامه بنویسید که رمز Setup سیستم رو برداره .

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

mrbm_2007
سه شنبه 02 اسفند 1390, 19:08 عصر
منظور همون رمزیه که برای وارد شدن به تنظیمات سیستم قبل از بوت شدن سیستم عامل استفاده میشه؟

sirvan-me
سه شنبه 02 اسفند 1390, 19:13 عصر
منظور همون رمزیه که برای وارد شدن به تنظیمات سیستم قبل از بوت شدن سیستم عامل استفاده میشه؟


بله ، توی یکی از تاپیک های فارسی زبان خوندم که کد های زیر رو تو CMD وارد کنید :

Debug
o 70 13
o 71 14
q

توی یه سای انگلیسی زبان هم فقط یه سری رمز های مستر داده بود ..... :ناراحت:

mrbm_2007
سه شنبه 02 اسفند 1390, 19:25 عصر
فکر کنم باید این رو سرچ کنی
Programmatically reset bios password

sirvan-me
سه شنبه 02 اسفند 1390, 19:30 عصر
دوست عزیز اکثر وب سایت ها راه حل های سخت افزاری رو ارائه دادن یا گفتن باتری رو در بیار یا از جامپر استفاده کن . خب این ها که به درد برنامه نویسی نمی خوره ..... مگه اینکه یه برنامه بنویسم اجرا شد . باتری بپره بیرون . :لبخند:

در هر صورت مرسی به خاطر وقتی که گذاشتی و جوابت . بازم اگه چیزی به ذهنت رسید دریغ نکن .

mrbm_2007
سه شنبه 02 اسفند 1390, 19:32 عصر
http://www.experts-exchange.com/Programming/Processor_Platforms/Q_21576623.html

Depending on the bios type, you can write to the appropriate I/O-Ports. I implemented this for AWARD bios ages ago, I can post the source in pseudo-code if you like. However, this will only work when the bios password is set for the bios setup only (otherwise you can't boot your OS, and have to reset the bios password manually by using the clear CMOS jumper on the mainboard.
Please add more details to your question and I will supply you with the corresponding instructions :)

sirvan-me
سه شنبه 02 اسفند 1390, 19:34 عصر
نمیشه یه جوری یه برنامه ای نوشت که به Jumper دسترسی داشت . مثلا بزنیم Reset شه ..... یه چیزی تو مایه های Enable یا Disable کردن پایه ؟

sirvan-me
سه شنبه 02 اسفند 1390, 19:46 عصر
http://www.experts-exchange.com/Programming/Processor_Platforms/Q_21576623.html

موقع لود این صفحه یه پیغام ثبت نام میده !!!!! چطور برش دارم

mrbm_2007
سه شنبه 02 اسفند 1390, 19:55 عصر
موقع لود این صفحه یه پیغام ثبت نام میده !!!!! چطور برش دارم

برو آخر صفحه
پایین

sirvan-me
سه شنبه 02 اسفند 1390, 20:13 عصر
برو آخر صفحه
پایین

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

sirvan-me
پنج شنبه 04 اسفند 1390, 14:00 عصر
اساتید کسی نمیتونه کمکی بکنه ؟؟؟!!!!!!:گریه:

Esmail Solhkhah
پنج شنبه 04 اسفند 1390, 17:29 عصر
خدابیامرز DOS زیاد تو کار با سخت افزار گیر نمیداد ولی امان از این ویندوز که تا نفس میکشی میگه واسسا بینم داری چیکار میکنی.

دسترسی مستقیم به سخت افزار تو ویندوز با کد سطح User نمیشه باید Kernel Mode کار کنید یا از ابزارهای نوشته شده شرکتهای ثالث استفاده کنید که عمدتا هم بصورت

Kernel Mode هستن ولی برای کار راحت برنامه نویس معمولا یه DLL یا ActiveX ارائه میدن ( پس پرده این DLL یا ActiveX با کد سطح کرنل ارتباط برقرار میکنه )

ولی اگه DOS خاستید کار کنید

#include <dos.h>
#define ADDRPORT (0x70)
#define DATAPORT (0x71)

int main( void )
{
outportb( ADDRPORT, 0x13 );
outportb( DATAPORT, 0x14 );
return(0);
}


دقت کنید برای دسترسی به اطلاعات CMOS پورت 70 برای پورت آدرس و پورت 71 برای پورت دیتا بکار میره و این دوتا هر دوشون بصورت هگز هستن.

مسئولیت اجرای این کد گردن اونایی که میگن، قبلش CMOS Memory Map رو یه نیگایی بکنید، زیادم مطمئن نباشید بعضی مواقع این شرکتهای سازنده

یه تغییراتی تو این مدل استاندارد میدن

موفق باشید.

sirvan-me
یک شنبه 07 اسفند 1390, 10:23 صبح
خدابیامرز DOS زیاد تو کار با سخت افزار گیر نمیداد ولی امان از این ویندوز که تا نفس میکشی میگه واسسا بینم داری چیکار میکنی.

دسترسی مستقیم به سخت افزار تو ویندوز با کد سطح User نمیشه باید Kernel Mode کار کنید یا از ابزارهای نوشته شده شرکتهای ثالث استفاده کنید که عمدتا هم بصورت

Kernel Mode هستن ولی برای کار راحت برنامه نویس معمولا یه DLL یا ActiveX ارائه میدن ( پس پرده این DLL یا ActiveX با کد سطح کرنل ارتباط برقرار میکنه )

ولی اگه DOS خاستید کار کنید

#include <dos.h>
#define ADDRPORT (0x70)
#define DATAPORT (0x71)

int main( void )
{
outportb( ADDRPORT, 0x13 );
outportb( DATAPORT, 0x14 );
return(0);
}


دقت کنید برای دسترسی به اطلاعات CMOS پورت 70 برای پورت آدرس و پورت 71 برای پورت دیتا بکار میره و این دوتا هر دوشون بصورت هگز هستن.

مسئولیت اجرای این کد گردن اونایی که میگن، قبلش CMOS Memory Map رو یه نیگایی بکنید، زیادم مطمئن نباشید بعضی مواقع این شرکتهای سازنده

یه تغییراتی تو این مدل استاندارد میدن

موفق باشید.


ممنون بابت وقتی که گذاشتین اما میشه یذره راجع به این کد توضیح بدبد ..... یذره گیج شدم . پیشاپیش مرسی:قلب:

vistacali
یک شنبه 07 اسفند 1390, 10:53 صبح
خدابیامرز DOS زیاد تو کار با سخت افزار گیر نمیداد ولی امان از این ویندوز که تا نفس میکشی میگه واسسا بینم داری چیکار میکنی.

دسترسی مستقیم به سخت افزار تو ویندوز با کد سطح User نمیشه باید Kernel Mode کار کنید یا از ابزارهای نوشته شده شرکتهای ثالث استفاده کنید که عمدتا هم بصورت

Kernel Mode هستن ولی برای کار راحت برنامه نویس معمولا یه DLL یا ActiveX ارائه میدن ( پس پرده این DLL یا ActiveX با کد سطح کرنل ارتباط برقرار میکنه )

ولی اگه DOS خاستید کار کنید

#include <dos.h>
#define ADDRPORT (0x70)
#define DATAPORT (0x71)

int main( void )
{
outportb( ADDRPORT, 0x13 );
outportb( DATAPORT, 0x14 );
return(0);
}


دقت کنید برای دسترسی به اطلاعات CMOS پورت 70 برای پورت آدرس و پورت 71 برای پورت دیتا بکار میره و این دوتا هر دوشون بصورت هگز هستن.

مسئولیت اجرای این کد گردن اونایی که میگن، قبلش CMOS Memory Map رو یه نیگایی بکنید، زیادم مطمئن نباشید بعضی مواقع این شرکتهای سازنده

یه تغییراتی تو این مدل استاندارد میدن

موفق باشید.



سلام ببخشید که من جلوی اساتید بزرگی همچون شما ها صحبت میکنم ولی این دستور دیگه توی مادربردهای تولید سال 2006 به اینور پاسخ گو نیست من خودم جریانا کشیدم سر این رمز ،،،

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


پیروز موفق و سربلند باشید

Esmail Solhkhah
یک شنبه 07 اسفند 1390, 21:42 عصر
ممنون بابت وقتی که گذاشتین اما میشه یذره راجع به این کد توضیح بدبد ..... یذره گیج شدم . پیشاپیش مرسیگفتم که اگه DOS خاستید کار کنید ، کد به زبان C هست
دستور outportb برای ارسال اطلاعات به پورت خاص بکار میره پارامتر اول شماره پورت ، پارامتر دوم دیتا
معادل همون کدی هست که شما تو Debug وارد کردید (C معادل اسمبلی شما)


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


مسئولیت اجرای این کد گردن اونایی که میگن، قبلش CMOS Memory Map رو یه نیگایی بکنید، زیادم مطمئن نباشید بعضی مواقع این شرکتهای سازنده یه تغییراتی تو این مدل استاندارد میدن
فقط باید بتونه این دوستمون با سخت افزار ارتباط برقرار کنه فکر کنم باید به زبان ماشین مسلط باشه وگرنه هیچ راهی از توی ویندوز وجود نداره که بشه این رمز رو غیر فعال کرد (البته فکر کنم)اگه دقت کنید بنده همون اول پست گفتم دسترسی مستقیم به سخت افزار تو سیستم عامل های NT Base وجود نداره و برای اینکار باید از کد سطح

Kernel استفاده کنید،وقتی کد شما سطح کرنل اجرا میشه فرقی نمیکنه اسمبی باشه یا C ، اجباری به استفاده زبان ماشین نیست .

راه اصولیش اینه که شما Memory Map رو از شرکت سازنده در نظر بگیرید ، باز این نکته رو هم تو تاپیک بالا اشاره کردم

مثلا داستان آدرس 24H در AWARD با همون آدرس تو AMI فرق میکنه و امثالهم

موفق باشید.

tefos666
یک شنبه 07 اسفند 1390, 21:47 عصر
ببین کاری نداره با استفاده از دستورات shell که تو cmd اجرا میکنی این چند خط رو اجرا کنی که تو C# کاری نداره و یا

می تونی یک فایل bat درست کنی و توش این کدها رو بنویسی نهایتا اونو اجرا کنی
debug
o 70 20
o 71 25
q

این کد CMOS رو خالی میکنه رو بیشتره bios ها جواب میده .

Esmail Solhkhah
دوشنبه 08 اسفند 1390, 00:39 صبح
ببین کاری نداره با استفاده از دستورات shell که تو cmd اجرا میکنی این چند خط رو اجرا کنی که تو C#‎‎‎ کاری نداره و یا

می تونی یک فایل bat درست کنی و توش این کدها رو بنویسی نهایتا اونو اجرا کنی
debug
o 70 20
o 71 25
q

این کد CMOS رو خالی میکنه رو بیشتره bios ها جواب میده .کد شما درست اجرا میشه ولی تو سیستم عاملهایی که اجازه دسترسی مستقیم به سخت افزار رو بدن مثلا DOS یا ... ، در کل NT Base ها رو از این قضیه جدا کنید.

Debug.exe جزو کامندهای زیر سیستم داس بوده و تحت NTVDM اجرا میشه و NTVDM اجازه دسترسی مستقیم به حافظه و سخت افزار رو نداره.

موفق باشید.