آموزش ساخت ترینر خب شما قراره یک حرفه ای بشید نه. این قسمت یکم حرفه ای تر از قسمت های قبل است.
یادتونه بهتون گفتم که کدهای بر نامه ها هم در رم زخیره میشند( به زبان اسمبلی ) حالا کار ما با همون کدها شروع میشه. راستی بگم که برای یاد گرفتن این قسمت نیازی به بلد بودن زبان اسمبلی ندارید ولی اگه با این زبان آشنایی داشته باشید این قسمت رو بهتر می فهمید. در ضمن شما در این قسمت پا شیوه پچ کردن بازی هم آشنا میشید.
امروز میخواهیم برای بازی مین روپر ویندوز ترینر و پچ بسازیم.(چون بازی سبکی هست و کارمون راحته بعدن خودتون میتونید از همین روش برای بازی های روز هم پچ یا ترینر بسازید)
در مورد زمان که هر کی قسمت اول رو خونده باشه میتونه عوض کنه.
در مورد مین ها هم اگه سرچ کنید سه تا متغییر وجود داره که من آدرس اونا رو میگم:



01005194 01005330 010056A4 زمان هم برای اینکه نگردید(البته ما اصلا با این کاری نداریم):

( 0100579Cبرای اضافه کردن این آدرس ها هم به صورت دستی از کلید:

Add address manually استفاده کنید که طریقه استفاده اون هم به این صورته:



در بخش اول آدرس و در بخش دوم هم یه نام براش انتخاب کنید و در بخش سوم هم نوع متغییر رو انتخاب کنید که در اینجا تمام متغییر ها از نوع 4 بایت هستن. تیک گزینه:

Pointer هم نزنید. البته بعدا با این گزینه کار داریم.
خب دیگه باید شروع کنیم. توی بعضی بازی ها فریز کردن فایده ای نداره ولی شما مطمین هستید که اون متغییر رو باید نگه داشت. این جا من یک راه دیگه رو براتون توضیح میدم. شما برای حل این مشکل باید کاری کنی که کد های برنامه اون متغییر رو تغیر ندن برای این کار روی متغییر راست کلیک کنید و گزینه:
Find out what write to this address



رو انتخاب کنید. حالا از شما سوال میکنه که برای این کار باید این برنامه رو کاملا زیر نظر داشت آیا شما حاضرید؟(همون دیباگ خودمون)(در ضمن اگر در صفحه انتخاب برنامه به جای کلید اوکی از کلید:
Attach to process
رو بزنید جواب بلی بدید. بعدش صفحه جدیدی رو میبینید:



یعنی اینکه در حال حاضر در حال کنترل کامل برنامه ای با
ID
00000CE4
هستیم که زیاد مهم نیست. ولی یه صفحه دیگه هم ظاهر میشه که ما از الان با اون کارداریم.
حالا مین ها رو با زدن کلید آدمک تغییر بدید. چی میبینی؟؟ خب ممکنه هر چیزی ببینید چون من سه تا آدرس به شما دادم و هر کدوم یه جوری به شما جواب میدن ولی این تصویر از متغییر اولی هست:



اینها کد هایی در برنامه هستن که این متغییر رو تغییر میدن. حالا هر کدوم رو انتخاب کنید و کلید:

Add to the codelist رو بزنید یه نام بدبد و دوباره اوکی کنید صفحه جدیدی باز میشه که هر بار این کلید رو میزنید اون گزینه ای رو که انتخاب کردید به اون یکی لیست اضافه میشه(در ضمن این صفحه رو میتونید با زدن کلید

Advanced Options در پایین سمت چپ هم بیارید



حالا هر کدوم رو انتخاب کنید کلیک راست کنید و گزینه:

Replace with code that does nothing میبینید که رنگش قرمز میشه در این صورت دیگه این کد اجرا نمیشه. حالا در پنجره قبلی کلید:

Stop و سپس:

Close رو بزنید و برای اون دو متغییر دیگه هم همین کارا رو بکنید. چی شد؟؟
بله بازی به باگ خورد. پس باید چه کار کرد. ببینید بین اون سه متغییر یکی متغییر اصلی است و بقیه از اون پیروی میکنند. برای اینکه بفهمید کدومشون اصلی است هر کدوم رو جداگانه (البته باید بازی رو دو باره اجرا کنی و همه کارو از آول شروع کنی) تغییر بده و ببین کدوم یکی از اونا بعد از زدن کلید آدمک باعث تغییر بقیه میشه.روی اون یکی یعنی:

010056A4 کلیک راست کنید و مراحلی رو که قبلا گفته بودم رو دنبال کنید. ولی اینبار نه با زدن کلید آدمک چون این متغییر بازدن کلید آدمک تغییر نمیکنه بلکه از گزینه هایی که در منوی گیم وجود داره تغییر میکنه. بعد از همه اون کار هایی که کردید. برید و متغییر رو به 1 تغییر بدید( نباید به 0 تغییر بدید چون برنامه به باگ میخوره) و از اون منو سطح سختی رو تغییر بدید و میبینید که عمل نمیکنه. ولی اگه گزینه :

Custom رو از همون منوی گیم انتخاب کنی باز تغییر میکنه که باید با همو ن روش کد اون رو هم پاک کنی.
حالا میبینید که با زدن اون کلیدها بازی شروع میشه ولی هنوز تعداد مین ها 1 است و حتی در بازی هم تعداد مین ها 1 است. خب تا اینجا شما ترینر رو ساختید ولی اگه میخواهید براش پچ بسازید یعنی کاری کنید که اون بازی بدون ترینر و وجود این برنامه مین هایش قابل تغییر نباشه (یعنی کد داخل فایل اجرایی رو پاک کنید) باید همون کلید:

Advanced Options رو بزنید رو اون کدی که میخواهید از خود برنامه هم پاک کنید رو انتخاب کرده و گزینه:
Find this code inside a file



رو انتخاب کنید. بعد فایل اجرایی برنامه رو پیدا کنید و انتخاب کنید مثلا این بازی در :

C:\windows\system32\winmine.exe وجود داره بعد در صفحه بعدی ممکنه به شما بگه که چندین کد با همین مظمون وجود داره یکی رو اتخاب کنید و کلید

Replace رو بزنید و بعد فایل رو یک جای دیگه سیو کنید. برای گزینه های بعدی هم در پنجره :

Advanced Options همین کارها رو بکنید ولی هر بار فایل قبلی رو که سیو کرده بودید انتخاب کنید و به یه نام دیگه سیو کنید. در این صورت شما به معنای کامل بازی رو ترکوندید. باتشکر(اگر اون فایلی رو که سیو کردید بعد از بستن بازی جای فایل همون بازی کپی کنی و نامش رو با نام فایل اجرایی بازی عوض کنی و از این به پس از اون استفاده کنی دیگه بازی بدون نیاز به ترینر عمل میکنه)


نویسنده : امیر حسین محمدیان ; ساعت ۳:۳۱ ‎ب.ظ روز سه‌شنبه ٦ امرداد ۱۳۸۸ تگ ها : بازی