تبليغاتX
ویژوال بیسیک - ویژوال ++c - الكترونيك
برنامه نویسی - الكترونيك - رياضيات
شاید تا بحال خواسته باشید یک بازی را تمام کنید اما سختی مراحل بازی شما را منصرف کنه.یکی از بازی هایی که من خیلی دوست دارم Pinball هستش.این بازی توسط شرکت Maxis برای Microsoft ساخته شده و همراه چندین سیستم عامل ویندوز ارائه شده است.

اول از همه بگم اگر دلتون می خواهد پدرش رو در بیارین و ظرف ۵ دقیقه تمومش کنید،کارهای زیر را انجام بدهید:
۱)وارد بازی بشید
۲) عبارت Hidden Test را بصورت کاملا دقیق تایپ کنید
3)بعد با موس توپ را بگیرید و به هرجا که میخواهید ببرید
4)دیگه حالتون از بازی به هم می خوره

شاید هم بخواهید با کسی سر امتیازش مسابقه بدهید.به تصویر زیر توجه کنید:

بازی Pinball در حالی که هک شده است

 در شکل فوق در قسمت ۱ امتیاز شما درج شده و کاملا مشخصه که امتیاز رو تا آخرش بردم بالا البته نه با بازی عادی بلکه با دست کاری کردن حافظه اصلی(RAM).
این بازی شامل یک فایل اجرایی هستش که در مسیر C:\Program Files\Windows NT\Pinball قرار داره.
به دو صورت میشه یک بازی را هک کرد:

1)با هک فایل اجرایی و دست کاری اون.این مورد رو در مقاله های بعدی بیشتر توضیح می دهم.
2)با تغییر مقدار متغییر های برنامه(مثل شکل فوق) و تغییر مقدار آنها به مقدار مطلوب که الآن می خواهم بگم.

کاری که ما می خواهیم انجام بدهیم تغییر مقدار متغیر هاست البته نه از توی برنامه بلکه از RAM.
تمامی متغیر ها وقتی تعریف می شوند فضایی از حافظه RAM را به خود اختصاص می دهند. این فضا باتوجه به نوع متغییر فرق می کنه.در جدول زیر فضای اشغالی انواع متغیر ها را در ویژوال بیسیک درج شده است:

Visual Basic type

Common language runtime type structure

Nominal storage allocation

Value range

Boolean

Boolean

Depends on implementing platform

True or False

Byte

Byte

1 byte

0 through 255 (unsigned)

Char (single character)

Char

2 bytes

0 through 65535 (unsigned)

Date

DateTime

8 bytes

0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999

Decimal

Decimal

16 bytes

0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) † with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28) †

Double (double-precision floating-point)

Double

8 bytes

-1.79769313486231570E+308 through -4.94065645841246544E-324 † for negative values;

4.94065645841246544E-324 through 1.79769313486231570E+308 † for positive values

Integer

Int32

4 bytes

-2,147,483,648 through 2,147,483,647 (signed)

Long (long integer)

Int64

8 bytes

-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 †) (signed)

Object

Object (class)

4 bytes on 32-bit platform

8 bytes on 64-bit platform

Any type can be stored in a variable of type Object

SByte

SByte

1 byte

-128 through 127 (signed)

Short (short integer)

Int16

2 bytes

-32,768 through 32,767 (signed)

Single (single-precision floating-point)

Single

4 bytes

-3.4028235E+38 through -1.401298E-45 † for negative values;

1.401298E-45 through 3.4028235E+38 † for positive values

String (variable-length)

String (class)

Depends on implementing platform

0 to approximately 2 billion Unicode characters

UInteger

UInt32

4 bytes

0 through 4,294,967,295 (unsigned)

ULong

UInt64

8 bytes

0 through 18,446,744,073,709,551,615 (1.8...E+19 †) (unsigned)

User-Defined (structure)

(inherits from ValueType)

Depends on implementing platform

Each member of the structure has a range determined by its data type and independent of the ranges of the other members

UShort

UInt16

2 bytes

0 through 65,535 (unsigned)

† In scientific notation, "E" refers to a power of 10. So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.

هرچه محدوده مقادیر افزایش پیدا کنه،حجم اش هم افزایش پیدا می کنه.بیشتر توضیح نمی دهم.
البته نکته ای که باید به آن توجه کنید اینه که برای متغییر امتیاز در شکل بالا که با شماره 1 مشخص شده از نوع داده ای Byte استفاده نمی کنند.

برای تغییر مقدار متغییر ها ابتدا باید اونها را پیدا کنیم.برای این کار از تکنیک جستجو در حافظه سود می بریم.جستجو رو با برنامه TSearch انجام می دهیم.

دانلود TSearch 1.6(حجم ۱.۷۲ مگا بایت)

بعد از دانلود و اجرای برنامه با پیغام امنیتی مواجه می شوید که باید اون رو تایید کنید تا برنامه اجرا بشه.


آموزش برنامه TSearch:

در زیر می توانید شکل برنامه رو ببینید:

 برای شروع برنامه Pinball رو هک می کنیم.البته خاطر تون باشه که رو ویندوز 64بیتی جواب نمی دهد.برنامه Pinball را اجرا کنید و کمی به بازی بپردازید تا امتیازی کسب کنید.سپس وارد برنامه TSearch شوید و دکمه شماره 1 را بزنید(شکل فوق)،از لیستی که باز می شود Pinball.exe را برگزینید.
دکمه شماره 2 را زده و از کادری که باز میشه با انتخاب گزینه Exact Value و وارد کردن امتیاز کسب شده در بازی در قسمت Value که در شکل با رنگ قرمز مشخص شده،دکمه OK را بزنید.
برای Type هم با توجه به محدوده مقادیر و جدول بالا مورد مناسب را انتخاب کنید.

اگر همه چیز را درست انجام داده باشید دو آدرس پیدا می کنید(مثل قسمت ۷ در شکل).با زدن دکمه ۶ هر دو آدرس را برای ویرایش به سمت راست یعنی همون لیستی که با رنگ مشکی متمایز شده منتقل کنید.مانند قسمت ۹ هر امتیازی که دوست دارید وارد کنید البته از محدوده ۴ بایت خارج نشوید.

دیگر دکمه ها:
دکمه ۳:جستجو در مقادیر یافت شده.
دکمه ۴:حذف نتایج جستجو.
دکمه ۵:انتقال آدرس انتخابی به سمت راست
دکمه ۶:انتقال تمامی آدرس ها به سمت راست
دکمه ۹:Freeze کردن مقدار یک آدرس،در مواردی مثل تایمر ها کاربرد داره.


بیشتر توضیح نمی دهم.خودتون کار کنید و لذت ببرید.

+ نوشته شده در  پنجشنبه هشتم فروردین 1387ساعت 13:3  توسط امید مسجودیان | 
 
+ نوشته شده در  شنبه سوم فروردین 1387ساعت 14:40  توسط امید مسجودیان |