شما در حد یک کرکر تازه کار خیلی خوب عملی کردید اما ظاهرا اطلاعات و دید کافی در مورد برنامه نویسی ندارید! این نقطه ضعف باعث شد تا گول ترفند ساده برنامه نویس رو بخورید
اما ایرادی نداره شما و دیگرانی که دوست دارن کرک رو از ابتدا یاد بگیرن زودتر برنامه هایی که می گم رو از بخش ابزار کرک دانلود کنید تا بریم سراغ کرک .
برنامه های مورد نیاز :
PEID
OllyDbg نسخه OllyIce رو پیشنهاد می کنم
VBDecompiler من از نسخه Lite استفاده کردم اما نسخه Pro امکانات بیشتری داره
خوب قبل از هر چیز بزارید یک مختصری در مورد نحوه کار قفل های تلفنی توضیح بدم:
ببینید اصولش خیلی ساده تر از اسمشه!
برنامه شماره سریال بعضی از سخت افزارهای سیستم رو می خونه ( اصلا مهم نیست می خواد CPU، HDD، MainBoard، یا هر چیز دیگه ای باشه )
بر فرض شماره سریال هارد و مادربورد رو می خونه، حالا این دوتا شماره رو می فرسته داخل یک تابع و اون تابع بعد از کلی عملیات یک عدد مثلا 10 رقمی به ما پس می ده.
این عدد در واقع همون شماره کامپیوتر هست که ما باید اون رو به شرکت سازنده اعلام کنیم.
شرکت سازنده این کد رو به تابع دیگه ای می ده ( تابع شماره 2) و یک کد دیگه ازش دریافت می کنه که همون کد فعال سازی هست که به شما می ده. و شما زمانی که کد فعال سازی رو وارد برنامه می کنید، در حقیقت برنامه شماره کامپیوتر رو به تابع شماره 2 می فرسته و خروجیش رو با کدی که شما وارد کردید مقایسه می کنه
اگر کدی که شما وارد کردید با کدی که خودش به دست آورده برابر باشن نتیجه اینکه شما این کد رو از شرکت دریافت کردید و بهتون اجازه اجرای بازی رو می ده.
خوب به نظر شما ما در کجای این پروسه دست کاری کنیم تا از کار بیافته؟
1- وقتی برنامه می خواد سریال سخت افزارها رو بخونه کاری کنیم همیشه یه سریال بخونه و اینطوری فقط کافیه یک بار کد صحیح رو از شرکت بگیریم.
2- وقتی برنامه می خواد کد کامپیوتر بسازه کاری کنیم همیشه یک کد خاص رو برگردونه تا با یک بار شماره گرفتن از شرکت روی همه سیستم ها نصب بشه
3- وقتی برنامه می خواد کد درست رو بسازه کاری کنیم کد درست رو به ما هم نشون بده! ( کیجن )
4- وقتی داره کد درست رو با کد ما مقایسه می کنه برنامه رو تریس کنیم و کد درست رو یادداشت کنیم! ( سریال فیشینگ)
5- جایی که داره کد ما رو مقایسه می کنه شرطش رو برعکس کنیم یعنی اگر کدها یکسان نبود بازی رو اجرا کن!
6-بازی با توابع و فراخوانی تابع اجرای بازی به جای تابع کنترل کد!
7- بعضی وقتها اگه سریالی که می خونه زیاد با ثبات نباشه می شه کلا سریال سخت افزار رو تغییر داد!!!( مثل تغییر سریال درایوها)
8- همیشه یک راه بهتر وجود داره
گزینه 3 و 4 از همه بهتر هستند اما اجراشون تخصص بیشتری می خواد ما اینجا گزینه 5 رو با هم انجام می دیم چون از همه ساده تر هست.
خوب قبل از هر چیز برنامه رو با PEID چک می کنیم
همونظور که می بینید این برنامه با VB6 نوشته شده پس بهتره قبل از هر کاری به سراغ VBDecompiler بریم. این برنامه کوچیک کمک بزرگی برای ماست تا بدونیم برنامه داره چکار می کنه. پس برنامه مون رو با اون باز می کنیم.
وقتی می خوایم برنامه رو باز کنیم VBDE به ما پیغام می ده که این برنامه پک شده و از ما اجازه می گیره تا آنپکش کنه! اشکالی نداره بزارید کارش رو انجام بده ( شاید واقعا جائی از برنامه دستکاری شده!)
در انتها ما این لیست رو داریم.
1- پنجره نمایش عناصر پروژه دکامپایل شده
2- پنجره نمایش کدهای نوشته شده توسط برنامه نویس
3- نمایش فرم های موجود در پروژه به همراه عناصر موجود در اون
4- نمایش توابع و ایونتهایی که برنامه نویس به وجود آورده
در حقیقت دکامپایلر دقیقا به ما نشون می ده برنامه نویس داره چکار می کنه و مارو از شر کدهای اضافه ای که دیباگر نشون می ده خلاص می کنه.
حالا به راحتی می تونید بفهمید پشت دکمه ها چه کاری انجام می شه
در اینجا من به سراغ PassFrm می رم و آدرس اولین خط توابع زیر رو در میارم
FormLoad_42FCD0 و SetPass_431B10 و StartUp_00433070 و Text1_Keydown_4319F0
می شه حدس زد که برنامه در هنگام FormLoad میاد تابع StartUp و SetPass رو اجرا می کنه تا اگه قبلا پسورد وارد شده باشه اون رو از فایل Pass.txt بخونه و برنامه رو به سرعت اجرا کنه. در غیر اینصورت منتظر دریافت کد فعالسازی می مونه.
چون برنامه کلید تائید نداره ( اولین اقدام برنامه نویس برای مثلا فریب کرکر ) احتمالا برنامه نویس از واقعه KeyDown استفاده کرده یعنی زمانی که شما کد رو وارد کرده و کلیک Enter رو فشار می دید.
البته اگر داخل این کدها سجتجو کنید اطلاعات ارزشمند دیگه ای هم به دست خواهید آورد مثل اینکه در کجا برنامه پیغام خطای پسورد اشتباه است رو می ده یا در کجا ها فایل Pass.txt رو باز می کنه یا اینکه مثلا اگر کد صحیح رو وارد کردید چه عملی ممکنه انجام بشه... اینها چیزهایی است که VBDE برای شما آماده کرده کافیه کدها رو با دقت بررسی کنید.
در هر صورت به هر خطی از کدها که مشکوک شدید کافیه آدرسش رو یادداشت کنید و در نهایت به سراغ دیباگرمون می ریم.
برنامه رو داخل دیباگر لود کرده و آدرس توابعی که گفتم رو به همراه اون خطهایی که بهشون شک دارید رو پیدا کرده و روشون بریک پوینت ( BP ) بزارید و برنامه رو اجرا کنید.
زمانی که برنامه در محل هایی که BP گذاشتید متوقف شد می تونید با فشردن کلید F8 برنامه رو خط به خط تریس کنید و ببینید چه اتفاقی در حال رخ دادن هست.
با این کار احتمالا با کمی صبر و دقت می تونید دستور شرطی که باعث نمایش پیغام خطا می شه رو پیدا کرده و برعکسش کنید.
البته یک راهنمایی دیگه : این برنامه تنها روی کد فعالسازی 10 رقمی واکنش نشون می ده و اگر می خواهید کد اشتباه وارد کنید ابتدا یک کد 10 رقمی وارد کرده و سپس کلید Enter رو فشار بدید و قسمت Text1_Keydwon رو به دقت تریس کنید.
ادامه این کار واقعا لذت بخشه و اگر کمی حوصله به خرج بدید در نهایت لذت کرک کردن رو خواهید چشید.
ولی در هر صورت من سعی می کن قسمت دوم آموزش رو هم برای کسائی که باز هم به کمک بیشتری احتیاج دارن تا چند روز آینده آماده کنم و اینجا قرار بدم اما تا اون موقع برای اجرای بازی می تونید از این فایل پچ شده استفاده کنید.
fifa2005_Cracked.rar (اندازه: 123.05 KB / تعداد دفعات دریافت: 139)