Best Programmer
یک شنبه 07 دی 1382, 14:11 عصر
همونطور که احتمالا همه میدونید SoftICE یکی از دیباگرهای بسیار قوی هست که اکثر برنامه های درست و حسابی رو با اون کرک میکنند.
من از نسخه ۵/۴ این برنامه استفاده میکنم که بطور طبیعی در ویندوز ۹۸ استفاده میشه و بطور معمولی نمیشه از اون در ویندوز میلنیوم یا اکس پی استفاده کرد.
خوب ، بعد از نصب برنامه برای اینکه برنامه بدرستی کار کنه باید چند تنظیم جزئی در فایل Winice.dat ایجاد کنید تا چند تا از فایلهای DLL مهم ویندوز تحت کنترل SoftICE قرار بگیرن.
برای اینکار به محل نصب برنامه مراجعه کنید و فایل Winice.dat رو با Notpad یا یه چیزی مثل اون باز کنید و تغییرات زیر رو انجام بدید :
در فایل فوق یک خط بصورت زیر وجود داره :
PHYSMB=32
این خط نشوندهنده مقدار رم سیستم شماست ، پس مقدار اون رو به اندازه رم سیستم خودتون تنظیم کنید.
چند خط مهم دیگه هم بصورت زیر هستن :
; ***** Examples of export symbols that can be included for Windows 95 *****
; Change the path to the appropriate drive and directory
;EXP=c:\windows\system\kernel32.dll
;EXP=c:\windows\system\user32.dll
;EXP=c:\windows\system\gdi32.dll
;EXP=c:\windows\system\comdlg32.dll
;EXP=c:\windows\system\shell32.dll
همونطور که میبینید این خطوط شامل آدرس فایلهای DLL ویندوز شما هستن. اولا این علامتهای ; رو از اولشون بردارید و ثانیا اگه مسیر نصب ویندوز شما چیزی به غیر از اون مسیریه که نشون داده شده ، مسیر ها رو تصحیح کنید.
همین مقدار تنظیمات برای شروع کار کفایت میکنه. پس فایل رو ذخیره کنید و سیستم رو ریست کنید تا تغییرات اعمال بشه.
برای شروع کار با SoftICE و نشون داده شدن پنجره اصلی اون باید کلیدهای Ctrl+Dرو بزنید. توجه کنید که وقتی به SoftICE وارد میشید کل سیستم تحت اختیار این برنامه قرار میگیره یعنی شما هیچ کاری نمیتونین تا وقتی که توی SoftICE هستین با ویندوز انجام بدید و این به این معنی هست که اگه دارین موزیک گوش میکنید قبل از ورود به SoftICE باید تعطیلش کنید و گرنه خود SoftICE این کار به نحو ناجوری انجام میده یعنی موزیکی که دارین گوش میکنین روی یه قسمت گیر میکنه وهی تکرار میشه !
کلا در هنگام کار با SoftICE و کار بر روی یک برنامه برای کرک کردن اون با SoftICE سعی کنید تا حد امکان برنامه های در حال اجرای دیگه رو ببندید تا تداخلی در کار بوجود نیاد.
در پنجره SoftICE بصورت عادی از بالا به ترتیب پنجره ای برای نمایش رجیسترها و فلگها ، پنجره ای برای نمایش DATA ، پنجره ای برای نمایش کد برنامه ای که روی اون کار میشه و در آخر هم یک خط فرمان وجود داره.
توجه کنید که من نمیخوام SoftICE رو از سیر تا پیاز توضیح بدم و فقط قصد آشنا کردن شما با این برنامه رو دارم تا بتونم بعضی از کارهایی رو که با این برنامه میشه انجام داد رو برای شما بگم. بعضی از کارهایی که خودم با این برنامه انجام دادم.
پس اگه میخواهید که این برنامه رو کامل یاد بگیرین باید به مراجع دیگه ای مراجعه کنید.
بعضی از دستورها هستن که در SoftICE زیاد استفاده میشن که به مرور با اونها بیشتر آشنا میشید ولی الان چندتایی از اونها رو میگم :
BPX
من به شکل کلی این دستور کار ندارم و اونطوری که اکثرا ازش استفاده میشه رو میگم. با این دستور ما میتونیم روی اجرا شدن یک API خاص در برنامه کنترل داشته باشیم یعنی یک BreakPoint قرار بدیم. بعدا در مثالهای بعدی با طرز استفاده از این دستور آشنا میشید.
BC
با استفاده از این دستور میشه BreakPoint ها رو پاک کرد هم بطور کلی و هم بطور تک تک.
BD
با استفاده از این دستور میتونید یک BreakPoint یا همون BP رو غیرفعال کنید.
BE
با این دستور میشه BP غیرفعال شده رو باز فعال کرد.
BL
این دستور لیستی از BP های قرار داده شده به شما نشون میده.
D
با این دستور میتونید یک آدرس از حافظه رو و یا مقدار داخل یکی از رجیسترهای مختلف مثل EAX رو ببینید.
R FL Z
دستور فوق صرفا وضعیت فلگ صفر رو برعکس میکنه یعنی اگر فعال باشه ، غیرفعال و اگر غیر فعال باشه ، فعال میکنه. Z در این دستور نشوندهنده فلگ صفر هست که میشه اونرو به نام هر فلگ دیگه ای تغییر داد تا وضعیت فلگ مورد نظر برعکس بشه.
X
این دستور از SoftICE خارج میشه.
همچنین کلیدهایی که در SoftICE استفاده میشه به ترتیب زیر هست :
F8
از این کلید برای وارد شدن به یک زیربرنامه در هنگام کار بر روی کد برنامه استفاده میشه یعنی مثلا اگر HighLight رو یک دستور Call قرار داشته باشه با زدن این کلید به داخل Call نفوذ میکنید.
F10
این کلید برای جلو رفتن در کد بدون وارد شدن به زیربرنامه ها استفاده میشه. یعنی اگر بر روی Call باشید با زدن این کلید برنامه Call رو اجرا میکنه و به خط بعدی میره.
F11
این کلید برای اینه که شما از داخل یک تابع به محل فراخوانی اون تابع برگردید.
F12
این کلید هم مثل F11 هست با این تفاوت که از هرجای کد که باشین به بک مرحله قبلتر بر میگردین.
من از نسخه ۵/۴ این برنامه استفاده میکنم که بطور طبیعی در ویندوز ۹۸ استفاده میشه و بطور معمولی نمیشه از اون در ویندوز میلنیوم یا اکس پی استفاده کرد.
خوب ، بعد از نصب برنامه برای اینکه برنامه بدرستی کار کنه باید چند تنظیم جزئی در فایل Winice.dat ایجاد کنید تا چند تا از فایلهای DLL مهم ویندوز تحت کنترل SoftICE قرار بگیرن.
برای اینکار به محل نصب برنامه مراجعه کنید و فایل Winice.dat رو با Notpad یا یه چیزی مثل اون باز کنید و تغییرات زیر رو انجام بدید :
در فایل فوق یک خط بصورت زیر وجود داره :
PHYSMB=32
این خط نشوندهنده مقدار رم سیستم شماست ، پس مقدار اون رو به اندازه رم سیستم خودتون تنظیم کنید.
چند خط مهم دیگه هم بصورت زیر هستن :
; ***** Examples of export symbols that can be included for Windows 95 *****
; Change the path to the appropriate drive and directory
;EXP=c:\windows\system\kernel32.dll
;EXP=c:\windows\system\user32.dll
;EXP=c:\windows\system\gdi32.dll
;EXP=c:\windows\system\comdlg32.dll
;EXP=c:\windows\system\shell32.dll
همونطور که میبینید این خطوط شامل آدرس فایلهای DLL ویندوز شما هستن. اولا این علامتهای ; رو از اولشون بردارید و ثانیا اگه مسیر نصب ویندوز شما چیزی به غیر از اون مسیریه که نشون داده شده ، مسیر ها رو تصحیح کنید.
همین مقدار تنظیمات برای شروع کار کفایت میکنه. پس فایل رو ذخیره کنید و سیستم رو ریست کنید تا تغییرات اعمال بشه.
برای شروع کار با SoftICE و نشون داده شدن پنجره اصلی اون باید کلیدهای Ctrl+Dرو بزنید. توجه کنید که وقتی به SoftICE وارد میشید کل سیستم تحت اختیار این برنامه قرار میگیره یعنی شما هیچ کاری نمیتونین تا وقتی که توی SoftICE هستین با ویندوز انجام بدید و این به این معنی هست که اگه دارین موزیک گوش میکنید قبل از ورود به SoftICE باید تعطیلش کنید و گرنه خود SoftICE این کار به نحو ناجوری انجام میده یعنی موزیکی که دارین گوش میکنین روی یه قسمت گیر میکنه وهی تکرار میشه !
کلا در هنگام کار با SoftICE و کار بر روی یک برنامه برای کرک کردن اون با SoftICE سعی کنید تا حد امکان برنامه های در حال اجرای دیگه رو ببندید تا تداخلی در کار بوجود نیاد.
در پنجره SoftICE بصورت عادی از بالا به ترتیب پنجره ای برای نمایش رجیسترها و فلگها ، پنجره ای برای نمایش DATA ، پنجره ای برای نمایش کد برنامه ای که روی اون کار میشه و در آخر هم یک خط فرمان وجود داره.
توجه کنید که من نمیخوام SoftICE رو از سیر تا پیاز توضیح بدم و فقط قصد آشنا کردن شما با این برنامه رو دارم تا بتونم بعضی از کارهایی رو که با این برنامه میشه انجام داد رو برای شما بگم. بعضی از کارهایی که خودم با این برنامه انجام دادم.
پس اگه میخواهید که این برنامه رو کامل یاد بگیرین باید به مراجع دیگه ای مراجعه کنید.
بعضی از دستورها هستن که در SoftICE زیاد استفاده میشن که به مرور با اونها بیشتر آشنا میشید ولی الان چندتایی از اونها رو میگم :
BPX
من به شکل کلی این دستور کار ندارم و اونطوری که اکثرا ازش استفاده میشه رو میگم. با این دستور ما میتونیم روی اجرا شدن یک API خاص در برنامه کنترل داشته باشیم یعنی یک BreakPoint قرار بدیم. بعدا در مثالهای بعدی با طرز استفاده از این دستور آشنا میشید.
BC
با استفاده از این دستور میشه BreakPoint ها رو پاک کرد هم بطور کلی و هم بطور تک تک.
BD
با استفاده از این دستور میتونید یک BreakPoint یا همون BP رو غیرفعال کنید.
BE
با این دستور میشه BP غیرفعال شده رو باز فعال کرد.
BL
این دستور لیستی از BP های قرار داده شده به شما نشون میده.
D
با این دستور میتونید یک آدرس از حافظه رو و یا مقدار داخل یکی از رجیسترهای مختلف مثل EAX رو ببینید.
R FL Z
دستور فوق صرفا وضعیت فلگ صفر رو برعکس میکنه یعنی اگر فعال باشه ، غیرفعال و اگر غیر فعال باشه ، فعال میکنه. Z در این دستور نشوندهنده فلگ صفر هست که میشه اونرو به نام هر فلگ دیگه ای تغییر داد تا وضعیت فلگ مورد نظر برعکس بشه.
X
این دستور از SoftICE خارج میشه.
همچنین کلیدهایی که در SoftICE استفاده میشه به ترتیب زیر هست :
F8
از این کلید برای وارد شدن به یک زیربرنامه در هنگام کار بر روی کد برنامه استفاده میشه یعنی مثلا اگر HighLight رو یک دستور Call قرار داشته باشه با زدن این کلید به داخل Call نفوذ میکنید.
F10
این کلید برای جلو رفتن در کد بدون وارد شدن به زیربرنامه ها استفاده میشه. یعنی اگر بر روی Call باشید با زدن این کلید برنامه Call رو اجرا میکنه و به خط بعدی میره.
F11
این کلید برای اینه که شما از داخل یک تابع به محل فراخوانی اون تابع برگردید.
F12
این کلید هم مثل F11 هست با این تفاوت که از هرجای کد که باشین به بک مرحله قبلتر بر میگردین.