PDA

نسخه کامل مشاهده نسخه کامل : ساخت ترینر توسط ویژوال بیسیک



Blue Rose
08-04-2006, 04:44
سلام
ترینر بازی Need For Speed Most Wanted
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

کسی میتونه در مورد این توضیح بده
که چطوری میتونه پروسه های بازی رو تغییر بده

vorojax
22-04-2006, 06:47
یعنی هیچ کی بلد نیست یه کمکی کنه

Morteza_SOS
27-04-2006, 11:45
به نام خدا
از تمامی اعضای ساخت درخواست می کنم که آموزش ساخت تراینر را در صورت امکان از طریق ویژوال بیسیک 6 آموزش دهند
در غیر این صورت خودم آموزش فوق العاده کاملی قرار می دهم البته فعلا نه نه نه
چون دارم روش کار میکنم


خیلی خیلی کامل آموزشم ولی می خواهم ببینم شماها در چه سطحی قرار دارید در ضمن در کجا برنامه آموزشی را قرار دهم!!!؟

Morteza_SOS
27-04-2006, 11:58
به نام خدا
این آموزشی که قرار است در این تاپیک قرار دهم به صورت فایل PDF می باشد
خیـــــــــــــــــــــلی جالبه !!!

نظر بدید تا دلگرم شوم فقط 3-4 صفحه دیگر مانده کلا 28 صفحه شده چیزی در سبک کارهای PizzaDox می باشد جالبه نه
فقط نظر بدید
اگر کسی موفق به ساخت تراینر نشد که هیچ خودم آموزش می دهم ولی اگر کسی توانست در ویژوال بیسیک 6 تراینر بسازد هر
چند هم کامل نباشد من اول آموزش را به صورت خصوصی برای آن قرار می دهم و بعد از چند روز ... برای بقیه ( به صورت عمومی)
قرار می دهم
با تشکر
اس اُ اس

Morteza_SOS
27-04-2006, 12:16
به نام خدا
لطفا در همین تاپیک یک سایت برای قرار دادن اطلاعات (آپلود) معرفی کنید !!!

Payman_62
27-04-2006, 20:26
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload ax
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Upload

sa3er
27-04-2006, 20:45
+
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

vorojax
27-04-2006, 22:10
به نام خدا
این آموزشی که قرار است در این تاپیک قرار دهم به صورت فایل PDF می باشد
خیـــــــــــــــــــــلی جالبه !!!

نظر بدید تا دلگرم شوم فقط 3-4 صفحه دیگر مانده کلا 28 صفحه شده چیزی در سبک کارهای PizzaDox می باشد جالبه نه
فقط نظر بدید
اگر کسی موفق به ساخت تراینر نشد که هیچ خودم آموزش می دهم ولی اگر کسی توانست در ویژوال بیسیک 6 تراینر بسازد هر
چند هم کامل نباشد من اول آموزش را به صورت خصوصی برای آن قرار می دهم و بعد از چند روز ... برای بقیه ( به صورت عمومی)
قرار می دهم
با تشکر
اس اُ اس
ایول بابا اینجور که تو تعریف کردی دهنمون اب افتاد کی میزاریش

Morteza_SOS
28-04-2006, 11:53
به نام خدا
در آینده نه چندان دور فعلا سرم شلوغه ... ورووووووووووووووووووووجکس جان
چون اگر الان بگذارم در حق سایر دوستان نامردی کرده ام
درضمن من گفته ام که شماها هم یک قدم بردارید تا من هم 28 قدم بردارم
تا شماها فعالیت نکنید که فایده نداره تلاش کنید تا حتی دست و پا شکسته هم شده در موردش بنویسید چون باید یک ارزشیابی جزیی بکنم

vorojax
28-04-2006, 15:18
:sad: بابا وقتی ما هیچی ازش نمیدونیم چیکار کنیم؟

Blue Rose
29-04-2006, 05:49
سلام
شما بذار ما دو ماراتون راه میندازیم
دستتون درد نکنه

vorojax
29-04-2006, 11:38
بابا ازیت نکن دیگه بزار

p30planet
29-04-2006, 12:52
بابا ما هم تو کفیم دیگه بزار ...
راستی این آموزش رو که میگذاری طرف اگه یه نمه بلد باشه یا هیچی از vb سرش نشه که مشکلی پیش نمیاد........ ؟!؟!؟!؟!؟!

vorojax
01-05-2006, 07:27
اقا بیا ما یه نیم گام میریم
اول باید پروسیجرهای بازی رو پیدا کنیم بد فالصش کنیم

prance3
02-05-2006, 00:23
جون هر كي دوست داري بذار

vorojax
02-05-2006, 06:06
اقا مثل اینکه سره کاریه !!

Morteza_SOS
04-05-2006, 10:45
به نام خدا
دوستان ادامه بدید تا این تاپیک کمی حداقل بازدید کننده داشته باشد اگه اینطوری ادامه بدید که نه تنها من بلکه همه بی خیال این آموزش می شوند البته شوخی بید
پس فعلا تا مقاله حاضر بشه لطفا کمی در تاپیک های دیگر جستجو کرده تا اطلاعاتتان زیاد شده و بهد به سایت زیر سر بزنید ببین این سایت چیه !!!

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

با تشکر مرتضی اس اُ اس

Morteza_SOS
04-05-2006, 10:52
به نام خدا
خالق یکتا
دوستان گفتم تا من از شماها تلاشی نبینم مقاله قرار نمی دهم
من این مقاله را در سایت خودم که تماما انگلیسی می باشد قرار داده ام ولی تا شماها فعالییت نکنید قرار نمی دهم .
این کارها را می کنم تا به ارزشش پی ببرید فکرش را کنید بتوانید همانند کمپانی بزرگ Pizza Dox تراینر بسازید .
ببینم چه می کنید حتی اگر اطلاعاتی دست و پا شکسته قرار دهید ما راضی بیدیم پس الکی دنبال یک همچین مقاله با ارزش فارسی نباشید چون ..... خیلی با ارزشه وقتی قرار دادم می فهمید
با تشکر
Morteza_SOS

prance3
05-05-2006, 17:47
اقا مرتضي شما ميخواي وقتي همه ياد گرفتند بعد مقاله رو بذاري

با با ايول عجب روش اموزشي ;)

vorojax
06-05-2006, 07:17
جونه مادرت بزار..........................................

Morteza_SOS
08-05-2006, 09:45
به نام خدا
با سلام بر تمام دوستان عزیز والا من یادم نمی آید که گفته باشم برید و تمامی مراحلش را یاد بگیرید فقط و فقط گفتم برید و اطلاعات خیلی جزئی ای بدست آورید در سطح مقدماتی و در ضمن این روشی که من به شماها می خواهم آموزش بدم چیزی نیست که بتوان در هر سایت ، کتاب و... پیدا کرد در سایت های خارجی نیست چه برسه به سایت های فارسی زبان پس این قدر عجله نکنید !!!
چون من قبل از قرار دادن این آموزش باید سی دی هایم را که قرار است تا یکی دو ماه دیگر وارد بازار شود را بفروش برسانم و بعد به طور رایگان اینجا قرار می دهم البته خیلی بهتر از سی دی هایی است که قرار بفروشم پس اگر دوست دارید تا هفته دیگر قرار دهم این آموزش عالی را ، گفتم که از دوستان و مدیران برنامه نویس نیز می توانید کمک بگیرید .
راهنمایی : فقط شماها یاد بگیرید که چگونه یک Value را Load كنيم و از حالت load نيز خارج كنيم.
بعد ياد بگيريد كه چگونه يك يا چند Process را اجرا کرده و از حالت اجرا خارج کرد .
دیگر از این راهنمایی بیشتر بابا اگر این ها را دیگه نتونید خیلی خیلی .... بی استعدادید پس کمی تکان به خود بدید و این سوالات را در تاپیک های برنامه نویسی قرار داده و جوابتان را عینا در این تاپیک بگذارید .

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

مرتضی اس اُ اس

shahrdartoope
09-05-2006, 04:44
سلام به دوستان
(توی پرانتز میگم: بنظر من اگه کسی چیزی بلده و هدف بالا بردن سطح اطلاعاتی دیگرانه،موظفه که یاد بده)
خوب برای همین من دوتا برنامه معرفی میکنم

1- ArtMoney
2-Trainer maker
برنامه اول با آموزش کامل رو یکی از دوستان گذاشته بود

برنامه دوم درژن 1.51 غوغا کرده... این برنامه با ویژوال بیسیک نوشته شده کار کردن باهاش انقدر راحته که من در ظرف 10 دقیقه بطور کل یادش گرفتم (حالا ببین شما ها در چقدر... فکر میکنم در 1 دقیقه lol )

در برنامه اولی آدرسها رو گیر میارید و در برنامه دومی ازش استفاده میکنید به همین راحتی

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

شهردار

vorojax
09-05-2006, 09:08
هر 2 برنامه رو کار باهاشو بلدیم باور نداری صبر کن الان میرم اموزشش پیدا میکن تو فقط زودتر اموزشتو بده

vorojax
09-05-2006, 09:12
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

بیا اینم اموزشش
ARTmonuy

Morteza_SOS
09-05-2006, 10:19
سلام به دوستان
(توی پرانتز میگم: بنظر من اگه کسی چیزی بلده و هدف بالا بردن سطح اطلاعاتی دیگرانه،موظفه که یاد بده)
خوب برای همین من دوتا برنامه معرفی میکنم

1- ArtMoney
2-Trainer maker
برنامه اول با آموزش کامل رو یکی از دوستان گذاشته بود

برنامه دوم درژن 1.51 غوغا کرده... این برنامه با ویژوال بیسیک نوشته شده کار کردن باهاش انقدر راحته که من در ظرف 10 دقیقه بطور کل یادش گرفتم (حالا ببین شما ها در چقدر... فکر میکنم در 1 دقیقه lol )

در برنامه اولی آدرسها رو گیر میارید و در برنامه دومی ازش استفاده میکنید به همین راحتی

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

شهردار

به نام خدا
با عرض سلام و خسته نباشید خدمت عزیزان اولا حق با شماست ... من هم می خواهم کاری به شما یاد بدم که اصلا هیچ کجا نمونه اش را ندیده اید .
دوما مثل اینکه تاپیک قبلی من را نخوانده اید ( من برنامه نویس نرم افزار و سازنده سی دی های آموزشی هستم )
پس اگه من از شماها می خواهم که در این سایت یا سایت های دیگر جستجو کنید هدف من اذیت کردن شماها که نیست بلکه بالا بردن سطح آموزش در ایران عزیز است در ضمن ما که نخواستیم در مورد آرت مونی که تاپیکش را من و دوستان راه انداخته ایم توضیح دهید بلکه گفتم بروید و روش اینکه چگونه مثلا Value هایی را که در Artmoney پیدا کرده اید را در زبان های برنامه نویسی قرار دهیم تا به جای اینکه این مقادیر از برنامه آرت مونی اجرا شوند از زبان برنامه نویسی مثلا ویژوال بیسیک اجرا شود .
اگر تنها یک نفر موفق به این شد که این کار را انجام دهد فقط در ویژوال بیسیک 6 در این تاپیک قرار دهد تا من آموزش فوق العاده کاملم را که هنوز یک مقدارش مانده را قرار می دهم .
واقعا شرم آور یعنی توی این تاپیک به این بزرگی کسی نمی تواند این مقادیر را در ویژوال بیسیک بارگذاری کند !!!؟
بابا اگر این طوری پیش برود که من اگر آموزشم را هم قرار دهم فکر نکنم کسی متوجه بشود ...!!!

Morteza_SOS
09-05-2006, 10:33
سلام به دوستان
(توی پرانتز میگم: بنظر من اگه کسی چیزی بلده و هدف بالا بردن سطح اطلاعاتی دیگرانه،موظفه که یاد بده)
خوب برای همین من دوتا برنامه معرفی میکنم

1- ArtMoney
2-Trainer maker
برنامه اول با آموزش کامل رو یکی از دوستان گذاشته بود

برنامه دوم درژن 1.51 غوغا کرده... این برنامه با ویژوال بیسیک نوشته شده کار کردن باهاش انقدر راحته که من در ظرف 10 دقیقه بطور کل یادش گرفتم (حالا ببین شما ها در چقدر... فکر میکنم در 1 دقیقه lol )

در برنامه اولی آدرسها رو گیر میارید و در برنامه دومی ازش استفاده میکنید به همین راحتی

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

شهردار

به نام خدا
با عرض سلام و خسته نباشید خدمت عزیزان اولا حق با شماست ... من هم می خواهم کاری به شما یاد بدم که اصلا هیچ کجا نمونه اش را ندیده اید .
دوما مثل اینکه تاپیک قبلی من را نخوانده اید ( من برنامه نویس نرم افزار و سازنده سی دی های آموزشی هستم )
پس اگه من از شماها می خواهم که در این سایت یا سایت های دیگر جستجو کنید هدف من اذیت کردن شماها که نیست بلکه بالا بردن سطح آموزش در ایران عزیز است در ضمن ما که نخواستیم در مورد آرت مونی که تاپیکش را من و دوستان راه انداخته ایم توضیح دهید بلکه گفتم بروید و روش اینکه چگونه مثلا Value هایی را که در Artmoney پیدا کرده اید را در زبان های برنامه نویسی قرار دهیم تا به جای اینکه این مقادیر از برنامه آرت مونی اجرا شوند از زبان برنامه نویسی مثلا ویژوال بیسیک اجرا شود .
اگر تنها یک نفر موفق به این شد که این کار را انجام دهد فقط در ویژوال بیسیک 6 در این تاپیک قرار دهد تا من آموزش فوق العاده کاملم را که هنوز یک مقدارش مانده را قرار می دهم .
واقعا شرم آور یعنی توی این تاپیک به این بزرگی کسی نمی تواند این مقادیر را در ویژوال بیسیک بارگذاری کند !!!؟
بابا اگر این طوری پیش برود که من اگر آموزشم را هم قرار دهم فکر نکنم کسی متوجه بشود ...!!!

Morteza_SOS
09-05-2006, 10:49
به نام خدا
با سلام خدمت مرگ موش عزیز
سلام

خسته نباشيد

من مي خواستم يه پيشنهاد بدم راجع به آموزشي كه مي خواين بذارين. مي خواستم بگم كه اگه واستون امكان داره آموزش رو به صورت يه فايل Pdf آماده كنين و قرار بدين. چون كپي كردن از يه فايل Pdf فارسي سخته. اين رو به اين خاطر ميگم كه ديگران حاصل زحمت شما رو به اسم خودشون توي سايتهاي ديگه قرار ندن. مثلا مقاله من كه راجع به هك بازيها بود رو توي خيلي از سايتها قرار دادن كه مي تونين توي گوگل يه جستجو بكنين تا ببينين چند تا سايت و وبلاگ به اسم خودشون اين مقاله رو گذاشتن.

باز هم نظر شما مهمه و من جسارت نمي كنم. اگه كاري يا سوالي بود من يا امين يا اميد در خدمت هستيم.

تشكر

مهدي


جواب
خیلی خیلی لطف کردی مهدی جان ولی اگر می توانی آن تاپیک بالایی را که گذاشته ام را شما جواب بدهید تا من آموزش را برای این دوستان ارسال کنم .
در ضمن روی امنیت آموزشم نیز باید کار کنم .

Payman_62
09-05-2006, 11:42
مرتضي شما هري پاتري؟
راستي اينم بگم برنامه هايي هست كه ميشه به كمكشون Pdf رو هم دزديد. ولي خوب هر كسي نميشناسه و ميشه به Pdf اعتماد كرد.

shahrdartoope
09-05-2006, 19:32
بازم سلام...
مرتضی جان راست میگه اگه چیزی بد.ن زحمت آدم به دست بیاره بطور عمقی درکش نمیکنه!!
من دیروز از اینتر نت تمام چیزهای لازم رو یاد گرفتم فقط اگه آقا مرتضی اجازه میرن من بزارمشون

شهردار

vorojax
09-05-2006, 20:43
مرتضي جون دمت گرم جونه هر كي دوست داري اجازشو صادر كن
ثواب داره

Payman_62
10-05-2006, 01:40
مرتضي منظورم از هري پاتر همون حامد بازرگانيه. اوني؟

Morteza_SOS
10-05-2006, 09:40
بازم سلام...
مرتضی جان راست میگه اگه چیزی بد.ن زحمت آدم به دست بیاره بطور عمقی درکش نمیکنه!!
من دیروز از اینتر نت تمام چیزهای لازم رو یاد گرفتم فقط اگه آقا مرتضی اجازه میرن من بزارمشون

شهردار




به نام خدا
با عرض و سلام و خسته نباشید خدمت شما دوست گرامی ...
دوست عزیز shahrdartoope جان پس بالاخره یک شخصی پیدا شد تا درد دل ما را بفهمه البته نه اینکه بقیه نمی فهمندا بلکه درک نمی کنند . :blink:
اگر برای شما ممکن می باشد تمام چیزهایی را که از اینترنت گرفته اید را از طریق پیغام های خصوصی برایم ارسال کنید تا تغییرات لازمه را اعمال کنم ( تصحیح ) کنم . :biggrin:
با تشکر از شما دوست گرامی در ضمن دوستی پرسیده بود که آیا من هری پاترم به نظرتون دو تا هری پاتر تو سایت ضایع نیست ....!!! نه من نیستم من مرتضی ا.... پ.. هستم . :blush:

Morteza_SOS
10-05-2006, 10:28
به نام خدا
یک عذرخواهی به همه بدکارم
چون بعضی وقت ها دیر می آیم علتش اینه که تو بیشتر سایتهای ایرانی و خارجی فعالییت می کنم

Morteza_SOS
10-05-2006, 10:29
به نام خدا
با سلام
مرتضي منظورم از هري پاتر همون حامد بازرگانيه. اوني؟
خیر من اونی که شما می گید نیستم .
این وصله ها به ما نمی چسبه

ALt3rnA
11-05-2006, 16:20
سلام اقا مرتضی
اول از همه اینکه اگه بگم من بلدم رازی میشی؟؟؟ بابا اینا که جونشون اومد به لبشون راستی گروه داکس که کمپانی نیست!!

بعدشم اینکه یکشبه راه هزار شبو نمیشه رفت فعلا یعنی نمیشه یهو یه بازی بکنی جو گیر شی بگی من می خوام ترینر ساز بشم

اصلا فکر کنید برنامه نویسی رو یاد گرفتید خب باید بلد باشید چطوری برای ترینرتون اپشن های پیچیده مثل نامریی شدن یا پرواز یا عبور از دیوار و اینا بسازید ؟؟؟اینا رو که با ارت مانی نمیشه کار کرد و تازه اگه یاد بگیرید که کار تکی بدرد نمیخوره و باید تو یه گروه عضو شید که ازمون های بسیار سختی دارند که اصلا به فکرتون نمیرسه


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

در ضمن ترینر ساختن بدون گیم هکینگ ارزشی نداره منظورم گیم هکینگ به معنای نفوذ واقعی در بازی هستش.....


خب دیگه اینم یه نطقی بود از ما شرمنده اینقدر حرف زدم

vorojax
11-05-2006, 16:26
چی شد اقا کسی یاد نمیده؟

Morteza_SOS
12-05-2006, 10:00
سلام اقا مرتضی
اول از همه اینکه اگه بگم من بلدم رازی میشی؟؟؟ بابا اینا که جونشون اومد به لبشون راستی گروه داکس که کمپانی نیست!!

بعدشم اینکه یکشبه راه هزار شبو نمیشه رفت فعلا یعنی نمیشه یهو یه بازی بکنی جو گیر شی بگی من می خوام ترینر ساز بشم

اصلا فکر کنید برنامه نویسی رو یاد گرفتید خب باید بلد باشید چطوری برای ترینرتون اپشن های پیچیده مثل نامریی شدن یا پرواز یا عبور از دیوار و اینا بسازید ؟؟؟اینا رو که با ارت مانی نمیشه کار کرد و تازه اگه یاد بگیرید که کار تکی بدرد نمیخوره و باید تو یه گروه عضو شید که ازمون های بسیار سختی دارند که اصلا به فکرتون نمیرسه


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

در ضمن ترینر ساختن بدون گیم هکینگ ارزشی نداره منظورم گیم هکینگ به معنای نفوذ واقعی در بازی هستش.....


خب دیگه اینم یه نطقی بود از ما شرمنده اینقدر حرف زدم




به نام خدا
با سلام و تشکر از شما من به عنوان یکی از اعضای گروه حاضر به همکاری با شما هستم مثلا به عنوان یک کرکر یا یک تستر ولی این آخری را بیشتر دوست دارم پس من را راهنمایی کنید .
در ضمن Pizza Dox یک کمپانی کوچک در انگلیس می باشد که توسط منگو میچر مدیریت می شود البته شرکت کوچک هم می توان نامید در ضمن اگر اطلاعات کاملی از اعضای گروه شان را می خواهید پیغام بگذارید تا قرار بدم :puke:
خوب پس اگر ممکن است من را به عنوان یک تستر انتخاب کنید در ضمن من از شما متشکرم به خاطر نظراتتان .!!!

ALt3rnA
12-05-2006, 14:54
نه مرسی گروهشونو کاملا می شناسم ولی اگه بزارید تو فروم بهتره و اعضا استفاده میکنند

Morteza_SOS
13-05-2006, 10:22
به نام خدا
فعلا به قول دوست عزیزم گیم هکر موقع امتحانات اونم فکرش را بکنید رشته تجربی چه می شه پس بعد از امتحان کامل می کنم مقاله ای را که قولش را داده ام پس فعلا این تراینر پیش ساخته را داشته باشید.
در این برنامه یا تراینر که در ویژوال بیسیک 6 نوشته ام کافی است که مقادیری را که مثلا توسط آرت مونی پیدا کردن اید را در جاهایی که در کد و مدول ها توضیح داده ام قرار دهید شرمنده که دیر شد . اگر مشکلی بود نظر بدید تا مو به مو راهنمایی کنم .



لینک دانلود : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

سریال : Morteza_SOS_Trainer_Template_***_For_Iranian.

vorojax
13-05-2006, 11:36
مرتضی جون دمت گرم!!

vorojax
13-05-2006, 11:47
اه مرتضی چرا پسشو نزاشتی؟

ALt3rnA
14-05-2006, 15:49
Morteza_SOS_Trainer_Template_***_For_Iranian.


اینم پسش

راستی اینکه تبلیغه ولی سی دیه خیلی گرنه اگه طرفای 5 هزار بود میشد یه کاری کرد.

شما سی دیه اموزشیه تیم پرو گیمرز رو گرفتی؟؟؟

1 دی وی دی 17 دلار دی وی دی یه سه و نیم گیگش پره
یه چیزا یی ریختن روش که فکرشم نمیکنی من همین هفته ی پیش واسم رسید .

shahrdartoope
15-05-2006, 04:16
سلام به همه
شرمنده که نمیتونم زود به زود بیام تازگیها اینترنت خفن گرون شده!!!!
اونی که من گفتم از اینتر نت گرفتم منظو رم این بود که تحقیق کردم که....
1- چجوری میشه لیستی از برنامه های اجرایی رو در آورد
2- چجوری میشه همین لیست رو فیلتر کرد که فقط پنجره های باز شده رو نشون بده
3- چجوری میشه از رو حافظه خوند
4- در آخر به چه صورت میشه نوشت

خوب این هم برنامه ای که خودم نوشتم (باور کنید اگه این برنامه خیلی خیلی پیش پا افتاده هم باشه ولی چون خودم گشتم و ریزه کاریاشو در آوردم برام ارزش زیادی داره و ار استفاده کردنش لذت میبرم... برای یه بار هم که شده دنبال یه چیزی رو بگیرید و بدون حمایت کسی خ.دتون ته توی قظیه رو در رارین) خوب اینم فایل با 900 کیلو بایت


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

vorojax
15-05-2006, 06:46
رفیق چرا سورسشو نزاشتی؟

vorojax
15-05-2006, 07:32
Morteza_SOS_Trainer_Template_***_For_Iranian.


اینم پسش

راستی اینکه تبلیغه ولی سی دیه خیلی گرنه اگه طرفای 5 هزار بود میشد یه کاری کرد.

شما سی دیه اموزشیه تیم پرو گیمرز رو گرفتی؟؟؟

1 دی وی دی 17 دلار دی وی دی یه سه و نیم گیگش پره
یه چیزا یی ریختن روش که فکرشم نمیکنی من همین هفته ی پیش واسم رسید .

رفیق اون که گفتی پسش نبود
__
دمت گرم همونو اگه میتونی بدونه پسشو بزار

Morteza_SOS
15-05-2006, 11:26
به نام خدا
دوست عزیز وروجکس جان پسورد را که دوست عزیزم گیم هکر که گذاشت ..
پسورد : ( .Morteza_SOS_Trainer_Template_***_For_Iranian )
در ضمن این سی دی را من خودم خریدم و واقعا ازش راضی ام اگه یادتان باشد در تاپیک های قبلی من خیلی سوالات داشتم در مورد تراینر و... ولی از وقتی این سی دی را خریدم خداوکیلی خیلی باحاله کامل تراینر ساختن را یاد گرفتم.
در ضمن من پولی بابت این سی دی ندادم چون صاحب امتیاز این سیدی یک قابلیت جالبی که قرار داده اینه اگه شما 3 تا مشتری پیدا کنید برای خودتان این نرم افزار آموزشی رایگان تمام می شود در ضمن چون من این برنامه آموزشی را خریده ام با تمام روش های خریدش آشنایی دارم پس اگر سوالی در مورد خرید و نحوه خرید داشتید من در خدمتم .

Morteza_SOS
15-05-2006, 11:31
به نام خدا
دوست عزیز وروجکس جان پسورد را که دوست عزیزم گیم هکر که گذاشت ..
پسورد : ( .Morteza_SOS_Trainer_Template_***_For_Iranian )
در ضمن این سی دی را من خودم خریدم و واقعا ازش راضی ام اگه یادتان باشد در تاپیک های قبلی من خیلی سوالات داشتم در مورد تراینر و... ولی از وقتی این سی دی را خریدم خداوکیلی خیلی باحاله کامل تراینر ساختن را یاد گرفتم.
در ضمن من پولی بابت این سی دی ندادم چون صاحب امتیاز این سیدی یک قابلیت جالبی که قرار داده اینه اگه شما 3 تا مشتری پیدا کنید برای خودتان این نرم افزار آموزشی رایگان تمام می شود در ضمن چون من این برنامه آموزشی را گرفته ام با تمام روش های خریدش آشنایی دارم پس اگر سوالی در مورد خرید و نحوه خرید داشتید من در خدمتم .


واقعا قابلیت جالبی است مگه نه ...
شما فقط کافیست که 3 تا از دوستانتان را تشویق به خرید کنید تا این برنامه را رایگان دریافت کنید...

Morteza_SOS
15-05-2006, 11:37
Morteza_SOS_Trainer_Template_***_For_Iranian.


اینم پسش

راستی اینکه تبلیغه ولی سی دیه خیلی گرنه اگه طرفای 5 هزار بود میشد یه کاری کرد.

شما سی دیه اموزشیه تیم پرو گیمرز رو گرفتی؟؟؟

1 دی وی دی 17 دلار دی وی دی یه سه و نیم گیگش پره
یه چیزا یی ریختن روش که فکرشم نمیکنی من همین هفته ی پیش واسم رسید .




به نام خدا
سلام دوست عزیز با تشکر از اینکه این برنامه را دریافت کردید و نظر دادید در رابطه با این برنامه باید بگویم که فقط کافیست شما سورس را همانگونه که در مدول و کدها توضیح داده شده مقادیر را جایگزین کنید .
اگر سوالی بود ما در خدمتیم . :cool:

Morteza_SOS
15-05-2006, 11:43
به نام خدا
با سلام خدمت همگی دوستان یک سوال داشتم اگر جواب بدید من را بسیار خوشحال کرده اید .
سوالم اینه که من مثلا برنامه ایی را در ویژوال بیسیک نوشته ام و کامپایل کرده ام و به صورت فایل Exe در آورده ام و به دوستم داده ام آیا دوست من می تواند به سورس برنامه من دست پیدا کند ؟ چگونه ؟
با تشکر مرتضی اس اُ اس

در ضمن آن پسوردی را که در بالا قرار داده ام آن دو پرانتز را برای این گذاشتم که پسورد درست قرار بگیرد پس در هنگام وارد کردن پسورد آن دو پرانتز را وارد نکنید .

Morteza_SOS
15-05-2006, 12:01
به نام خدا
با سلام خدمت همگی دوستان یک سوال داشتم اگر جواب بدید من را بسیار خوشحال کرده اید .
سوالم اینه که من مثلا برنامه ایی را در ویژوال بیسیک نوشته ام و کامپایل کرده ام و به صورت فایل Exe در آورده ام و به دوستم داده ام آیا دوست من می تواند به سورس برنامه من دست پیدا کند ؟ چگونه ؟
با تشکر مرتضی اس اُ اس

در ضمن آن پسوردی را که در بالا قرار داده ام آن دو پرانتز را برای این گذاشتم که پسورد درست قرار بگیرد پس در هنگام وارد کردن پسورد آن دو پرانتز را وارد نکنید .

ALt3rnA
15-05-2006, 19:54
اقا مرتضی چطوری با صاحبش تماس بگیرم؟/

Payman_62
16-05-2006, 01:34
به سورس نه. ولي بعضي قسمت هارو ميشه كشيد بيرون.

vorojax
16-05-2006, 06:37
به نام خدا
دوست عزیز وروجکس جان پسورد را که دوست عزیزم گیم هکر که گذاشت ..
پسورد : ( .Morteza_SOS_Trainer_Template_***_For_Iranian )
در ضمن این سی دی را من خودم خریدم و واقعا ازش راضی ام اگه یادتان باشد در تاپیک های قبلی من خیلی سوالات داشتم در مورد تراینر و... ولی از وقتی این سی دی را خریدم خداوکیلی خیلی باحاله کامل تراینر ساختن را یاد گرفتم.
در ضمن من پولی بابت این سی دی ندادم چون صاحب امتیاز این سیدی یک قابلیت جالبی که قرار داده اینه اگه شما 3 تا مشتری پیدا کنید برای خودتان این نرم افزار آموزشی رایگان تمام می شود در ضمن چون من این برنامه آموزشی را گرفته ام با تمام روش های خریدش آشنایی دارم پس اگر سوالی در مورد خرید و نحوه خرید داشتید من در خدمتم .


واقعا قابلیت جالبی است مگه نه ...
شما فقط کافیست که 3 تا از دوستانتان را تشویق به خرید کنید تا این برنامه را رایگان دریافت کنید...
رفیق من میخام یه مقدار انتیجرو false کنم باید کدوم قسمتو دستکاری کنم یه توضیح میدی؟

blackroos
17-05-2006, 20:24
بابا این مسخره بازی ها چیه یکی التماس میکنه یکی دیگه ناز
این چه وضعیه اگه کسی واقعا چیزی بلده خوب بیاد بگه اگر نمی خواد بگه خوب چرا اصلا اول حرفشو میزنه که بعد بخواد ناز بکنه در هر صورت به نظر من این کارا درست نیست

vorojax
18-05-2006, 00:57
نه بنده خدا می خاد ما براش تلاش کنیم!

blackroos
18-05-2006, 17:56
وروجکس جان یعنی چی ایشون اگه واقعا بلدا خوب اگر به ما بگویند خوب ما هم می فهمیم و سطح علمون بالا می ره
من فکر می کنم ایشون هیچی بلد نیستند و فقط خواستند که خودشون رو معروف کنند
اما باید بدونید که با حلوا گفتن دهن آدم شیرن نمیشه و شما اگه می خواین که سطح علمی به اصطلاح خودتون ملت رو بالا ببرین باید هر چی بلدید بگید و این رو کا رو عملا انجام دهید

vorojax
18-05-2006, 20:00
shahrdartoope جان میشه سورس اونی که ساختیو بزاری
_______
راستی کسی بلد نیست یه مقدارو فالس کنه
___________________________
بکروس جان طرف اذیت میکنه منم مشکوک شدم نکنه بلد نیست

vorojax
21-05-2006, 16:05
shahrdartoope جان میشه سورس اونی که ساختیو بزاری
*********
با شما بودم رفیق اگه نمیدی بگو نمیدم

Blue Rose
22-05-2006, 04:21
سلام

یه سورس دیدم گفتم واستون بذارم
اگه کسی زبون آلمانی بلده لطفا ترجمش کنه
در ضمن این پروژه بر اساس یک پروژه دیگه ترینر رو میسازه
سورس هر 2 تا موجوده اما واسه من که خیلی گنگ بود لینکش رو میذارم اگه چیزی فهمیدید به من هم بگید
فقط خواهشا اذیت نکنید
اگه چیزی بلدید رو کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

یه مثال عملی واسه این ترینر که برای 100 درصد شدن کارها تو بازی همسایه جهنمی بکار میره
Dim Value As Long
Value = "&H" & "00F311F4"
WriteLong Value, "Neighbours From Hell", 100
توابع Api لازم رو هم که دارید

ALt3rnA
22-05-2006, 09:00
این که کاری نداره

اول یه ولیو گزاشته بعد هم ادرسو مشخص کرده

vorojax
22-05-2006, 22:26
سلام

یه سورس دیدم گفتم واستون بذارم
اگه کسی زبون آلمانی بلده لطفا ترجمش کنه
در ضمن این پروژه بر اساس یک پروژه دیگه ترینر رو میسازه
سورس هر 2 تا موجوده اما واسه من که خیلی گنگ بود لینکش رو میذارم اگه چیزی فهمیدید به من هم بگید
فقط خواهشا اذیت نکنید
اگه چیزی بلدید رو کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

یه مثال عملی واسه این ترینر که برای 100 درصد شدن کارها تو بازی همسایه جهنمی بکار میره
Dim Value As Long
Value = "&H" & "00F311F4"
WriteLong Value, "Neighbours From Hell", 100
توابع Api لازم رو هم که دارید

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

Blue Rose
23-05-2006, 04:20
سلام

کدی رو که اقا مرتضی گذاشت رو داونلود کن
حالا با توجه به مقدار و نوع پروسه ای که بدست اوردی جایگزاری کن
مثلا میخوای درصد کارهی انجام شده توی بازی همسایه جهنمی رو 100 در صد کنی
شماره پروسه 00f311f4 بود نوعش هم integer4byte

Dim Value As Long
Value = "&H" & "00F311F4"
WriteLong Value, "Neighbours From Hell", 100
در ضمن من کدی واسه فریز کردن ندیدم
اما این کد مقداری رو که شما میدی فریز میکنه

prance3
29-05-2006, 13:13
جون هركي دوست دارين يه اموزش كامل رو بزارين تا بفهميم چه كار كنيم الان يه ماه كه الافيم

اگه بلدي نيستين چرا تاپيك زدين؟

Blue Rose
30-05-2006, 08:30
جون هركي دوست دارين يه اموزش كامل رو بزارين تا بفهميم چه كار كنيم الان يه ماه كه الافيم

اگه بلدي نيستين چرا تاپيك زدين؟

سلام
من خودم هم دنبال یکی میگردیم که اموزش بده
واسه همین هم تاپیک زدم
اما میبینی که اونی که بلده تو فکر چیز دیگه ایه

ALt3rnA
30-05-2006, 09:29
دوستان بتون یه توصیه بکنم بی خیال شید اقای مرتضی پیداش نیست چند وقته من شاید تو تابستون یه اموزش زدم ولی بهتره فعلا بی خیال شید

prance3
30-05-2006, 14:32
gamehackir جون شما بلد نیستسی با vb تراینر بسازی

بابا هممون سر کاریم

ALt3rnA
31-05-2006, 08:55
شما از کجا میدونید من بلد نیستم؟؟؟؟

من تا به حال لی ترینر به vb .net و c++ نوشتم شما اگه یه سرچ کنید تو اینتر نت کارامو میبینید البته به اسم گروه ces هستش

اینکه من تا بحال کم اموزش میزارم به دلیل کمبود وقت و سنگینی دروس هستش چون مدرسه ی عادی نمیرم اکثرا هم از مدرسه ان میشم

ALt3rnA
31-05-2006, 09:00
در ضمن:

نیستسی ===============} سوتی

Morteza_SOS
31-05-2006, 12:23
به نام خدا
با سلام بر همگی بابا دمتون گرم خیلی به ما حال دادید والا من چند روزی بود که نبودم به خاطر امتحانات و ساخت چند بازی و برنامه و از همه مهمتر ساخت سایت جدیدم و...
بعد نکته دیگر اینکه این تاپیک دیگه خیلی در پیت شده هر آدم بی ادبی که تازه کامپیوتر خریده ( تازه به دوران رسیده ) که اسمش را نمی برم می یاد و می گوید شما بلد نیستی و نمی دانم اگه بلد نیستی چرا ؟ .... بماند اگه من بلد نبودم که دیوانه نبودم بیام به امثال شما ( معرفی نمیکنم ) آموزش بدم در ضمن وقتی گفتم پیشرفت گفتم برای دوستان خودم از جمله گیم هکر جان و Blue Rose و دو سه تا با مرام دیگر نه برای هر کس دیگری پس اظهار نظر نکنید !
من آدرس سایتم را که خیلی کار دارد را بعدا به صورت پیغام خصوصی برای دوستان خودم ارسال می کنم .
در ضمن اگر سوالی دارید بپرسید تا آنجا که بتوانم راهنمایی میکنم در ضمن سوالاتتان را کمی اگر ممکن است واضح تر بپرسید .

با تشکر

DAVAR_ETC
31-05-2006, 15:54
سلام به تمامي دوستان
اين وب سايتي كه مي خوام به شما معرفي كنم يكي از بزرگترين وبلاگ هاي ويژوال بيسيك است...
شما با عضويت در اين وب سايت ميتوانيد برنامه هاي ويژوال بيسيك خود را به صورت كاملا رايگان سفارش دهيد
من كه خودم تا حالا هر چي برنامه خواستم اين وب سايت در كمتر از 4 روز برام آماده كرده!!!
در ضمن آموزش هاي فوق العاده خوبي داره!!
++علاوه بر اين با عضويت در اين وب سايت ميتونيد درخواست دعوتنامه پرشين گيگ بكنيد
من خودم بعد از 5 روز كه مطرح كردم دعوتنامش برام رسييد
اينم وب سايت
دنياي ويژوال بيسيك [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

prance3
01-06-2006, 12:15
morteza_sos

prance3
01-06-2006, 12:19
به نام خدا

بعد نکته دیگر اینکه این تاپیک دیگه خیلی در پیت شده هر آدم بی ادبی که تازه کامپیوتر خریده ( تازه به دوران رسیده ) که اسمش را نمی برم می یاد و می گوید شما بلد نیستی و نمی دانم اگه بلد نیستی چرا ؟ نبودم که دیوانه نبودم



بــــــــابــــــــــــــ ــا وارد !!!!!!!!!

با با كامپيوتر ديده !!!!!!!!!!!
تايپيكميزني سا سال نمياي

prance3
02-06-2006, 00:41
به نام خدا

بعد نکته ديگر اينکه اين تاپيک ديگه خيلي در پيت شده هر آدم بي ادبي که تازه کامپيوتر خريده ( تازه به دوران رسيده ) که اسمش را نمي برم مي ياد و مي گويد شما بلد نيستي و نمي دانم اگه بلد نيستي چرا ؟ نبودم که ديوانه نبودم



بــــــــابــــــــــــــ ــا وارد !!!!!!!!!

با با كامپيوتر ديده !!!!!!!!!!!
تايپيكميزني سه سال نمياي!! :ohno:

شرمنده سه تا پست دادم با اين اينترنت سرعت بالا !
از دستم در رفت

ALt3rnA
02-06-2006, 11:31
فکر نکنم ..... با فاصله زمانیه نیم ساعت؟؟؟؟

A_M_IT2005
03-06-2006, 00:39
سلام
بعضی ها دارن کم لطفی می کنن. :blush:
طبق قوانین عضویت کسی حق نداره توهین کنه. :angry: :angry: :angry:
شایدمقاله ای که مرتضی جان همه مارو مشتاق دیدنش کردند اگه دست هر کدوم ما هم بود برای ارائه تا این اندازه
سختگیر بودیم.
به هر حال این سایت برای تبادل نظر وارتقاء سطح علمی در مورد موضوعات کامپیوتر هست و در هیچ موردی هم کسی حق توهین یا مسخره کردن رو نداره.
امیدوارم نه تو این تاپیک و نه توی هیچ کدوم از تاپیک های پی سی ورلد شاهد توهین و تمسخر نباشیم.

ALt3rnA
03-06-2006, 10:00
حرف A_m_it2005 تایید میشه
به نظرم بهتر مدیر اینجا رو فعلا ببنده

vorojax
03-06-2006, 16:55
بابا دعوا نكنيد اموزش بزاريد

prance3
03-06-2006, 18:13
منم با نظر دوستان موافقم
البته بنده قصد توهين نداشتم فقط ميخواستم جواب ايشون رو بدم كه دادم !!!!!!1
با عرض پوزش از همه دوستان
لطفا توي پست دادنتون يكم دقت كنين تا اينجوري نشه (اقا مرتضي)

prance3
03-06-2006, 18:17
منم با نظر دوستان موافقم
فقط ميخواستم خواهش كنم توي پست دادنتون يكم دقت كنين تا به كسي بي احترامي نشه

prance3
03-06-2006, 18:18
منم با نظر دوستان موافقم
فقط ميخواستم خواهش كنم توي پست دادنتون يكم دقت كنين تا به كسي بي احترامي نشه

با عرض پوزش از شما دوستان
اقا هكر شما اگه بلد هستي بي زحمت ما رو از تو كف در بيار

ALt3rnA
04-06-2006, 11:29
حقیقت من الان دارم عکسای اموزش تی سرچمو اپلود میکنم ولی بعدا مطمءن باشید میزارم

vorojax
04-06-2006, 16:53
بازم اين گيم هكر دمت گرم

Morteza_SOS
06-06-2006, 09:28
به نام خدا
با سلام خدمت همگی من آمده ام با دست پر اگر با زبان انگلیسی مشکلی ندارید یک سایت آموزش ساخت تراینر معرفی کنم در ضمن من نیز در آن سایت همکار مدیر کل سایت هستم پس با این همه مشغله کاری توقع نداشته باشید هر روز سر بزنم در ضمن وروجکس جان خیلی ممنون اگه از گیم هکر راضی باشی انگار از من راضی هستی پس پاچه خواری ممنوع !
آدرس سایت : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگر مشکلی داشتید از اول تابستان به بعد ما منتظر نظراتتان هستیم !
بچه من نمی دانم شماها چی خواستید و ما نگذاشتیم!!!؟

Morteza_SOS
06-06-2006, 09:32
به نام خدا
در جواب دوست گرانقدر گیم هکر جان عرض کنم که اون موضوعی که من در پست های قبلی مطرح کردم به هیچ عنوان به فارسی سازی بازی ها ربطی نداشت بلکه 100% به هک کردن بازی مرتبط بود .
راستی دوست عزیز چرا تاپیک هک کردن بازی را کند پیش می بری .

ALt3rnA
06-06-2006, 09:55
مرتضی جدا راست میگی؟؟؟؟ تو دستیار رییس گروه ces هستی؟؟

ALt3rnA
06-06-2006, 09:55
اگه راست میگی بگو ببینم شیخ عادل کیه؟؟؟

ALt3rnA
06-06-2006, 10:03
دوستان شرمنده یکم هیجانی زدم....

=========================
اول اینکه باز شدن سایت ces رو به همه تبریک میگم

دوم اینکه من همین امروز امتحاناتم تموم شد خب معلومه که دیر به دیر میومدم

سوم اینکه هنوز اموزش ها رو توی سایت قرار نداده اند ولی من ارشیو همه رو دارم اگه چیز خاصی مد نظرتونه پی ام بدید

چهارم اینکه به دوستانی که به اقای مرتضی شک دارن بهتره بگم:
اگه بلد نبود که نمیومد اینجا پست بده
اگه بلد نبود با اون همه حرفی که شما زدین پشت سرش امکان نداشت اینجا پست بده

پنجم هم اینکه اقای مرتضی ایدی یاهوتو اگه داری بده کارت دارم

ALt3rnA
06-06-2006, 11:38
WriteProscessMemory Tutorial
Basic Game Hacking Tutorial For Visual Basic 6.0
By LCSBSSRHXXX

Tools:
ArtMoney (or other memory searchers)
VB 6.0
Program you want to write new memory too.

In this example we will use a free game called PQ (Progress Quest)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]




################################################## #################################
### NOTICE: ###
### Addresses, and search results will often varry for different users ###
################################################## #################################




OK to start out make a file on PQ.
Open up ArtMoney and Select Progress Quest in the "Select process" combo box
Now click search set it up as the fallowing :

Search - Exact Value
Value -
Type - ALL

Value is what you want your searching for. Well start out by searching for your characters Race, my characters race it Panda Man,
you need to type the value your searching for exactly how it is in the game (because the search is Case sensetive)

Search - Exact Value
Value - Panda Man
Type - ALL

You should come up with a couple of results, around 4 maybe more or less, but around there.


################################################## #################################
### NOTICE: ###
### Addresses, and search results will often varry for different users ###
################################################## #################################

Value 1 - 0012002F - Panda Man - Text 9 Bytes
Value 2 - 0016E247 - Panda Man - Text 9 Bytes
Value 3 - 004D0BCE - Panda Man - Text 9 Bytes
Value 4 - 009F98D8 - Panda Man - Text 9 Bytes

Now your going to change the values.


Value 1 - 0012002F - 1 - Text 9 Bytes
Value 2 - 0016E247 - 2 - Text 9 Bytes
Value 3 - 004D0BCE - 3 - Text 9 Bytes
Value 4 - 009F98D8 - 4 - Text 9 Bytes

Now go to the the bottom of ArtMoney and click save, or go to the "Table" menu then click "Save".
Now open PQ back up, and look at your race. It should be the original value with the first letter replaced with one of the numbers you listed.

Race - 4anda Man

Now that it you know what number wrote to Panda Man (in my case 4) look at Value 4, and write down, or rember that address.


Value 4 - 009F98D8 - 4 - Text 9 Bytes

The address for value 4 is 009F98D8, now you know what address to write to.
Open up VB, and start a new project, make a module, and a from called what ever
In the module you want to put ur API in it (you dont need all of those calls, but those are the basic API calls you would use to write a ---- / trainer.)

Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Ok now your going to make a form with a command button, and textbox on it. Name the button cmdChange1, and the textbox txtRace.
Double click cmdChange1, so u bring up the code window start out by writing this.

Private Sub cmdChange1_Click()
Dim hwnd As Long
Dim pid As Long
Dim pHandle As Long
Dim hProcess as Long

hwnd = FindWindow(vbNullString, "Progress Quest")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit sub
End If
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
End Sub

Ok that part of the code will find Progress Quest's Window and get the proscess's handle, if the window isn't open it will bing up an error.
Now, for the other part of the code, This will write the new memory to the address, take the address from earlier and plug it in to the code:
Since my address is 009F98D8, we will do this &H009F98D8, this will chop off the first digits (VB will do this automaticly)

Input
WriteProcessMemory pHandle, &H009F98D8, txtRace.Text, Len(txtRace.Text), 0&
Output
WriteProcessMemory pHandle, &H9F98D8, txtRace.Text, Len(txtRace.Text), 0&



Finished code should look like this :

Private Sub cmdChange1_Click()
Dim hwnd As Long
Dim pid As Long
Dim pHandle As Long
Dim hProcess as Long

hwnd = FindWindow(vbNullString, "Progress Quest")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit sub
End If
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
WriteProcessMemory pHandle, &H9F98D8, txtRace.Text, Len(txtRace.Text), 0&
CloseHandle hProcess
End Sub

mshiraz.2006
07-06-2006, 09:55
به نام خدا
کدهای زیر رو کجا باید وارد کرد؟
میشه یه کم بیشتر توضیح بدید؟

vorojax
07-06-2006, 10:25
اقايه توضيح كوچكولو هم بده دمت گرم

Morteza_SOS
07-06-2006, 11:14
WriteProscessMemory Tutorial
Basic Game Hacking Tutorial For Visual Basic 6.0
By LCSBSSRHXXX

Tools:
ArtMoney (or other memory searchers)
VB 6.0
Program you want to write new memory too.

In this example we will use a free game called PQ (Progress Quest)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]




################################################## #################################
### NOTICE: ###
### Addresses, and search results will often varry for different users ###
################################################## #################################




OK to start out make a file on PQ.
Open up ArtMoney and Select Progress Quest in the "Select process" combo box
Now click search set it up as the fallowing :

Search - Exact Value
Value -
Type - ALL

Value is what you want your searching for. Well start out by searching for your characters Race, my characters race it Panda Man,
you need to type the value your searching for exactly how it is in the game (because the search is Case sensetive)

Search - Exact Value
Value - Panda Man
Type - ALL

You should come up with a couple of results, around 4 maybe more or less, but around there.


################################################## #################################
### NOTICE: ###
### Addresses, and search results will often varry for different users ###
################################################## #################################

Value 1 - 0012002F - Panda Man - Text 9 Bytes
Value 2 - 0016E247 - Panda Man - Text 9 Bytes
Value 3 - 004D0BCE - Panda Man - Text 9 Bytes
Value 4 - 009F98D8 - Panda Man - Text 9 Bytes

Now your going to change the values.


Value 1 - 0012002F - 1 - Text 9 Bytes
Value 2 - 0016E247 - 2 - Text 9 Bytes
Value 3 - 004D0BCE - 3 - Text 9 Bytes
Value 4 - 009F98D8 - 4 - Text 9 Bytes

Now go to the the bottom of ArtMoney and click save, or go to the "Table" menu then click "Save".
Now open PQ back up, and look at your race. It should be the original value with the first letter replaced with one of the numbers you listed.

Race - 4anda Man

Now that it you know what number wrote to Panda Man (in my case 4) look at Value 4, and write down, or rember that address.


Value 4 - 009F98D8 - 4 - Text 9 Bytes

The address for value 4 is 009F98D8, now you know what address to write to.
Open up VB, and start a new project, make a module, and a from called what ever
In the module you want to put ur API in it (you dont need all of those calls, but those are the basic API calls you would use to write a ---- / trainer.)

Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Ok now your going to make a form with a command button, and textbox on it. Name the button cmdChange1, and the textbox txtRace.
Double click cmdChange1, so u bring up the code window start out by writing this.

Private Sub cmdChange1_Click()
Dim hwnd As Long
Dim pid As Long
Dim pHandle As Long
Dim hProcess as Long

hwnd = FindWindow(vbNullString, "Progress Quest")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit sub
End If
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
End Sub

Ok that part of the code will find Progress Quest's Window and get the proscess's handle, if the window isn't open it will bing up an error.
Now, for the other part of the code, This will write the new memory to the address, take the address from earlier and plug it in to the code:
Since my address is 009F98D8, we will do this &H009F98D8, this will chop off the first digits (VB will do this automaticly)

Input
WriteProcessMemory pHandle, &H009F98D8, txtRace.Text, Len(txtRace.Text), 0&
Output
WriteProcessMemory pHandle, &H9F98D8, txtRace.Text, Len(txtRace.Text), 0&



Finished code should look like this :

Private Sub cmdChange1_Click()
Dim hwnd As Long
Dim pid As Long
Dim pHandle As Long
Dim hProcess as Long

hwnd = FindWindow(vbNullString, "Progress Quest")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit sub
End If
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
WriteProcessMemory pHandle, &H9F98D8, txtRace.Text, Len(txtRace.Text), 0&
CloseHandle hProcess
End Sub




به نام خدا
با تشکر قربانت از این همه آقایی ...
در ضمن امیدوارم که موفق بوده باشی در امتحانات ! :blush: :blush: :blush:
این کدهایی را که الان گذاشتی زودتر از این توقع داشتم بگذاری چون ناسلامتی حرفه ای هستی دیگه !
راستی به سایتی که گذاشتم رفتی خیلی عالیه !
در ضمن من هنوز امتحاناتم تمام نشده 2 ، 3 تایی مونده ولی مهم نیست در ضمن اگر در اداره کردن این تاپیک همراهی کنی مرا خوشحال می شوم تا موقع رهایی از امتحانات. :blink:

mshiraz.2006
07-06-2006, 16:16
به نام خدا

با سلام
بابا یکی یه ذره در مورد طریقه وارد کردن کدها توضیح بده
ثوابش کمتر از خود کدها نیست ها.

ALt3rnA
08-06-2006, 14:24
با با من که بتون گفتم مبتدی باشید نمی تونید کاری بکند

Morteza_SOS
09-06-2006, 12:05
به نام خدا
با سلام خدمت حاضرين در اين سايت ...
کدهاي زير مربوط به سايت تراينر در ويژوال بيسيک 6 است .
: Cod
If Hotkey(112) Then
WriteInteger &H8F2730, "test", &H3E8
End If
If Hotkey(113) Then
WriteInteger &H8F4B0C, "test", &H1388
End If
If Hotkey(114) Then
WriteInteger &H8F9D5C, "test", CDec(&H1388)
End If
If Hotkey(115) Then
WriteInteger &H8F9D60, "test", CDbl(&H1388)
End If

فقط کافيه که مقاديرها را در بالا جايگزين کنيد و بعد کار تمام ... يک تراينر کامل و ساده به همراه Hotkey هاي موجود ديگه چي مي خواهيد .


کد زير مربوط به منجمد کردن مقدارها است :
براي Freezing a memory منجمد کردن حافظه چندين راه وجود دارد که من راحتترينآن را آموزش مي دهم و آن قرار دادن علامت ><
مي باشد که شما با اين کار جهش مقادير را به آن مقدار محدود مي کنيد .

کد زير براي ساخت يک تراينر حرفه اي به همراه مدول هايش است :


Private Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Const TH32CS_SNAPPROCESS = &H2
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
Private Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Long) As Integer
Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Public Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Public Sub WriteAInt(Address As Long, Value As Long)
Dim hwnd As Long, pID As Long, phandle As Long
'PSO for PC is the window name
hwnd = FindWindow(vbNullString, "PSO for PC")
If (hwnd <> 0) Then
GetWindowThreadProcessId hwnd, pID
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pID)
If (phandle <> 0) Then
WriteProcessMemory phandle, Address, Value, 4, 0&
End If
CloseHandle phandle
End If
End Sub

خداوکيلي ديگه چي خواستيد ما نگذاشتيم .
بعد بريد بگيد اس اُ اس بده
By Morteza_SOS



در ضمن ببخشيد گيم هکر جان من فراموش کردم بگم که آي دي دارم ولي اصلا حوصله چت کردن ندارم .
پيشنهاد مي کنم که از طريق پيغام خصوصي با يکديگر در ارتباط باشيم .

-------------------------------------------------------------------------------------------------------------------------------------------------
در ضمن حرف گیم هکر تایید می شود
شماها اول برید یک کمی برنامه نویسی یاد بگیرید و بعد می فهمید که این همه کد چه فایده ای دارند .

Morteza_SOS
09-06-2006, 12:09
به نام خدا

با سلام
بابا یکی یه ذره در مورد طریقه وارد کردن کدها توضیح بده
ثوابش کمتر از خود کدها نیست ها.



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

Morteza_SOS
09-06-2006, 12:13
به نام خدا

با سلام
بابا یکی یه ذره در مورد طریقه وارد کردن کدها توضیح بده
ثوابش کمتر از خود کدها نیست ها.



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

ALt3rnA
10-06-2006, 09:16
مصطفی جان لطفا پیغام خصوصیتو چک کن

Morteza_SOS
10-06-2006, 10:20
به نام خدا
با سلام مجدد ... امروز یک کار خارق العاده آوردم و آن هم ساخت تراینر برای GTA 5 SanA می باشد به کدهای زیر توجه کنید خیلی خیلی هم کدها ساده هستن !!!

' Tells VB That All Variables Must Be Declared Before Being Used
Option Explicit

' API Functions To Find The Process And Read/Write DMA Memory
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Declare Function GetCurrentProcess Lib "kernel32" () As Long

' Contants For Getting The Process
Global Const SYNCHRONIZE As Long = &H100000
Global Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Global Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)

' Keyhook Function (Check If A Key Is Being Pressed)
Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer

' Sleep API (Pause Within Program)
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

' Variables For Process/Window Information
Public WindowHandle As Long
Public ProcessID As Long
Public ProcessHandle As Long

Public Function GetGTAProcess(fProcessName As String) As Boolean

WindowHandle = FindWindow(vbNullString, fProcessName)
If (WindowHandle = 0) Then
GetGTAProcess = False
Exit Function
End If

GetWindowThreadProcessId WindowHandle, ProcessID
ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID)
If (ProcessHandle = 0) Then
GetGTAProcess = False
Exit Function
End If

GetGTAProcess = True

End Function

' **********************************
' *** GTA: San Andreas Functions ***
' **********************************

' Read The Player Pointer
Public Function SAptrPlayer() As Long
SAptrPlayer = ReadLong(&HB6F5F0)
End Function

' Read The Car Pointer
Public Function SAptrCar() As Long
SAptrCar = ReadLong(&HB6F3B8)
End Function

' Read Pointer To An Objects XYZ Matrix - Player / Player In Car / Other Car
Public Function SAptrXYZMatrix(fObject As Long) As Long
SAptrXYZMatrix = ReadDMALong(fObject, 20&)
End Function

' Read The Pointer Of Last Car
Public Function SAptrLastCar() As Long
SAptrLastCar = ReadDMALong(SAptrPlayer, 1420&)
End Function


' *** SA Player Subs / Function ***

' Read The Players X Co-Ord - If In Car Returns Car Co-Ords
Public Function SAplrXCoOrd() As Single
SAplrXCoOrd = ReadDMASingle(SAptrXYZMatrix(SAptrCar), 48&)
End Function

' Read The Players Y Co-Ord - If In Car Returns Car Co-Ords
Public Function SAplrYCoOrd() As Single
SAplrYCoOrd = ReadDMASingle(SAptrXYZMatrix(SAptrCar), 52&)
End Function

' Read The Players Z Co-Ord - If In Car Returns Car Co-Ords
Public Function SAplrZCoOrd() As Single
SAplrZCoOrd = ReadDMASingle(SAptrXYZMatrix(SAptrCar), 56&)
End Function

' Write Players X/Y/Z Co-Ords - If In Car, Writes To Cars X/Y/Z Co-Ords
Public Sub SAplrGoToCoOrd(fX As Single, fY As Single, fZ As Single)

Call WriteDMASingle(SAptrXYZMatrix(SAptrCar), 48&, fX)
Call WriteDMASingle(SAptrXYZMatrix(SAptrCar), 52&, fY)
Call WriteDMASingle(SAptrXYZMatrix(SAptrCar), 60&, fZ)

End Sub

' Is The Player In A Car - Returns TRUE or FALSE
Public Function SAplrIsInCar() As Boolean
If SAptrPlayer = SAptrCar Then
SAplrIsInCar = False
Else
SAplrIsInCar = True
End If
End Function

' Is The Player On Foot - Returns TRUE or FALSE
Public Function SAplrIsOnFoot() As Boolean
If SAptrPlayer = SAptrCar Then
SAplrIsOnFoot = True
Else
SAplrIsOnFoot = False
End If
End Function

' Set Player Health
Public Sub SAplrHealth(sHealth As Single)
Call WriteDMASingle(SAptrPlayer, &H540&, sHealth)
End Sub

' Set Player MAX Health
Public Sub SAplrMaxHealth(sMaxHealth As Single)
' 8CDE78 = Address That Max Health Is Set To **********************8
Call WriteDMASingle(SAptrPlayer, &H544&, sMaxHealth)
End Sub

' Set Player Armour
Public Sub SAplrArmour(sArmour As Single)
Call WriteDMASingle(SAptrPlayer, &H548&, sArmour)
End Sub

' Set Player Immunities
Public Sub SAplrImmunitiesOn()
Dim plrImmunities As Byte
plrImmunities = ReadDMAByte(SAptrPlayer, 66)
plrImmunities = plrImmunities Or 4: 'Bullet Proof
plrImmunities = plrImmunities Or 8: 'Fire Proof
plrImmunities = plrImmunities Or 64: 'Dent Proof - Also Bit 1=Soft Ped (Move Thru Walls)
plrImmunities = plrImmunities Or 128: 'Explosion Proof - 2=Freeze Ped (Cant Move)
Call WriteDMAByte(SAptrPlayer, 66, plrImmunities)
End Sub

' Remove Player Immunities
Public Sub SAplrImmunitiesOff()
Call WriteDMAByte(SAptrPlayer, 66, 0)
End Sub


' *** SA Car Sub / Functions ***


' Get Current Car ID - 0 If Not In Car **************
Public Function SAcarID() As Integer
If SAplrIsInCar = True Then
SAcarID = ReadDMAInteger(SAptrCar, 34&)
Else
SAcarID = 0
End If
End Function

' Set Car Damage To #
Public Sub SAcarHealth(sCarHealth As Single)
Call WriteDMASingle(SAptrCar, 1216&, sCarHealth)
End Sub

' Set No Car Damage
Public Sub SAcarFullHealth()
Call WriteDMASingle(SAptrCar, 1216, CSng(1000))
End Sub

' Set Car Burn To #
Public Sub SAcarBurn(sCarBurn As Single)
Call WriteDMASingle(SAptrCar, 1216, sCarBurn)
End Sub

' Set Car Not Burning
Public Sub SAcarNotBurn()
Call WriteDMASingle(SAptrCar, 2276&, 0)
End Sub

' Set Car Immunities
Public Sub SAcarImmunitiesOn()
Dim CarImmunities As Byte
CarImmunities = ReadDMAByte(SAptrCar, 66)
CarImmunities = CarImmunities Or 4 ' Explosion Proof
CarImmunities = CarImmunities Or 8 ' Dent Proof
CarImmunities = CarImmunities Or 16 ' Fire Proof
CarImmunities = CarImmunities Or 128 ' Bullet Proof
Call WriteDMAByte(SAptrCar, 66, CarImmunities)
End Sub

' Lock The Doors Of The Current Car Player Is Driving
Public Sub SAcarLockDoors()
Call WriteDMAByte(SAptrCar, 1272&, 2)
End Sub

' Un-Lock The Doors Of The Current Car Player Is Driving
Public Sub SAcarUnlockDoors()
Call WriteDMAByte(SAptrCar, 1272&, 1)
End Sub

' Give Weight To Current Car Player Is Driving
Public Sub SAcarGiveWeight()
Call WriteDMASingle(SAptrCar, 140&, CSng(200000))
Call WriteDMASingle(SAptrCar, 144&, CSng(420000))
End Sub

' Stop Cars Motion
Public Sub SAcarStopMotion()
Call WriteDMASingle(SAptrCar, 68&, 0#)
Call WriteDMASingle(SAptrCar, 72&, 0#)
Call WriteDMASingle(SAptrCar, 76&, 0#)
End Sub

' Stop Cars Spinning
Public Sub SAcarStopSpin()
Call WriteDMASingle(SAptrCar, 80&, 0#)
Call WriteDMASingle(SAptrCar, 84&, 0#)
Call WriteDMASingle(SAptrCar, 88&, 0#)
End Sub

' Flip Car Over
Public Sub SAcarFlipOver()
Dim Flip1 As Single
Dim Flip2 As Single
Flip1 = ReadDMASingle(SAptrXYZMatrix(SAptrCar), CLng(16))
WriteDMASingle SAptrXYZMatrix(SAptrCar), CLng(4), -Flip1
Flip2 = ReadDMASingle(SAptrXYZMatrix(SAptrCar), CLng(20))
WriteDMASingle SAptrXYZMatrix(SAptrCar), CLng(0), Flip2
WriteDMASingle SAptrXYZMatrix(SAptrCar), CLng(8), CSng(-0.00001)
WriteDMASingle SAptrXYZMatrix(SAptrCar), CLng(24), CSng(-0.006)
End Sub

Public Sub SAcarFixTyresCar()
WriteDMAByte SAptrCar, 1445&, 0&
WriteDMAByte SAptrCar, 1446&, 0&
WriteDMAByte SAptrCar, 1447&, 0&
WriteDMAByte SAptrCar, 1448&, 0&
End Sub

Public Sub SAcarFixTyresBike()
WriteDMAByte SAptrCar, 1628&, 0&
WriteDMAByte SAptrCar, 1629&, 0&
End Sub

Public Sub SAcarRestartEngine()
Dim EngineState As Byte
EngineState = ReadDMAByte(SAptrCar, 1064&)
EngineState = EngineState Or 16
WriteDMAByte SAptrCar, 1064&, EngineState
End Sub

Public Sub SAcarRepairPlane()
WriteDMALong SAptrCar, 1460&, CSng(0)
End Sub


' *** Trailer Sub / Functions ***

Public Function SAptrTrailer() As Long
SAptrTrailer = ReadDMALong(SAptrCar, CLng(1224))
End Function

Public Function SAcarTrailerHas() As Boolean
If SAptrTrailer = 0 Then
SAcarTrailerHas = False
Else
SAcarTrailerHas = True
End If

End Function

Public Sub SAcarTrailerRepair()
If SAcarTrailerHas = True Then
WriteDMASingle SAptrTrailer, 1216&, CSng(1000)
End If
End Sub

Public Sub SAcarTrailerImmunitiesOn()
If SAcarTrailerHas = True Then
Dim TrailerImmunities As Byte
TrailerImmunities = ReadDMAByte(SAptrTrailer, 66)
TrailerImmunities = TrailerImmunities Or 4: ' Explosion Proof
TrailerImmunities = TrailerImmunities Or 8: ' Dent Proof
TrailerImmunities = TrailerImmunities Or 16: ' Fire Proof
TrailerImmunities = TrailerImmunities Or 128: ' Bullet Proof
WriteDMAByte SAptrTrailer, 66, TrailerImmunities
End If
End Sub


Public Function SAcarType(CarID As Integer) As String

Select Case CarID

Case 0
SAcarType = "On Foot"

Case 400 To 405, 407 To 416, 418 To 424, 426 To 429, 431 To 434, 436 To 443, 445, _
451, 455 To 459, 466, 467, 470, 474, 475, 477 To 480, 482, 483, 485, 486, _
489 To 492, 494 To 496, 498 To 500, 502 To 508, 514 To 518, 524 To 536, _
540 To 547, 549 To 552, 554, 555, 558 To 562, 564 To 568, 571, 572, 574 To 576, _
578 To 580, 582, 583, 585, 587 To 589, 594, 596 To 605, 609
SAcarType = "car"

Case 406, 444, 556, 557, 573
SAcarType = "mtruck"

Case 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563
SAcarType = "heli"

Case 430, 446, 452 To 454, 472, 473, 484, 493, 595
SAcarType = "boat"

Case 435, 450, 584, 591, 606 To 608, 610, 611
SAcarType = "trailer"

Case 448, 461 To 463, 468, 521 To 523, 581, 586
SAcarType = "bike"

Case 449, 537, 538, 569, 570, 590
SAcarType = "train"

Case 460, 464, 476, 511, 512, 513, 519, 520, 539, 553, 577, 592, 593
SAcarType = "plane"

Case 471
SAcarType = "quad"

Case 481, 509, 510
SAcarType = "bmx"

Case Else
SAcarType = "other"

End Select

End Function




' ********************************
' *** GTA: Vice City Functions ***
' ********************************

Public Function VCptrPlayer() As Long
VCptrPlayer = ReadLong(&H7E4B8C)
End Function

Public Function VCptrCar() As Long
VCptrCar = ReadLong(&H7E49C0)
End Function




' ************************
' *** Read DMA Address ***
' ************************

Public Function ReadByte(Address As Long) As Byte
ReadProcessMemory ProcessHandle, Address, ReadByte, 1&, 0&
End Function

Public Function ReadInteger(Address As Long) As Integer
ReadProcessMemory ProcessHandle, Address, ReadInteger, 2&, 0&
End Function

Public Function ReadLong(Address As Long) As Long
ReadProcessMemory ProcessHandle, Address, ReadLong, 4&, 0&
End Function

Public Function ReadSingle(Address As Long) As Single
ReadProcessMemory ProcessHandle, Address, ReadSingle, 4&, 0&
End Function

Public Function ReadDouble(Address As Long) As Double
ReadProcessMemory ProcessHandle, Address, ReadDouble, 8&, 0&
End Function

' *******************************************
' *** Read DMA Address (Pointer & Offset) ***
' *******************************************

Public Function ReadDMAByte(Address As Long, Offset As Long) As Byte
ReadProcessMemory ProcessHandle, Address + Offset, ReadDMAByte, 1&, 0&
End Function

Public Function ReadDMAInteger(Address As Long, Offset As Long) As Integer
ReadProcessMemory ProcessHandle, Address + Offset, ReadDMAInteger, 2&, 0&
End Function

Public Function ReadDMALong(Address As Long, Offset As Long) As Long
ReadProcessMemory ProcessHandle, Address + Offset, ReadDMALong, 4&, 0&
End Function

Public Function ReadDMASingle(Address As Long, Offset As Long) As Single
ReadProcessMemory ProcessHandle, Address + Offset, ReadDMASingle, 4&, 0&
End Function

Public Function ReadDMADouble(Address As Long, Offset As Long) As Double
ReadProcessMemory ProcessHandle, Address + Offset, ReadDMADouble, 8&, 0&
End Function

' *************************
' *** Write DMA Address ***
' *************************

Public Sub WriteByte(Address As Long, fWByte As Byte)
WriteProcessMemory ProcessHandle, Address, fWByte, 1&, 0&
End Sub

Public Sub WriteInteger(Address As Long, fWInt As Integer)
WriteProcessMemory ProcessHandle, Address, fWInt, 2&, 0&
End Sub

Public Sub WriteLong(Address As Long, fWLong As Long)
WriteProcessMemory ProcessHandle, Address, fWLong, 4&, 0&
End Sub

Public Sub WriteSingle(Address As Long, fWSingle As Single)
WriteProcessMemory ProcessHandle, Address, fWSingle, 4&, 0&
End Sub

Public Sub WriteDouble(Address As Long, fWDouble As Double)
WriteProcessMemory ProcessHandle, Address, fWDouble, 8&, 0&
End Sub

' *******************************************
' *** Write DMA Address (Pointer & Offset) ***
' *******************************************

Public Sub WriteDMAByte(Address As Long, Offset As Long, Value As Byte)
WriteProcessMemory ProcessHandle, Address + Offset, Value, 1&, 0&
End Sub

Public Sub WriteDMAInteger(Address As Long, Offset As Long, Value As Integer)
WriteProcessMemory ProcessHandle, Address + Offset, Value, 2&, 0&
End Sub

Public Sub WriteDMALong(Address As Long, Offset As Long, Value As Long)
WriteProcessMemory ProcessHandle, Address + Offset, Value, 4&, 0&
End Sub

Public Sub WriteDMASingle(WSAddress As Long, WSOffset As Long, WSValue As Single)
WriteProcessMemory ProcessHandle, WSAddress + WSOffset, WSValue, 4&, 4&
End Sub

Public Sub WriteDMADouble(Address As Long, Offset As Long, Value As Single)
WriteProcessMemory ProcessHandle, Address + Offset, Value, 8&, 0&
End Sub


اگر کسی متوجه نشد فقط پیغام بده اگر توانستم کمک می کنم .

Morteza_SOS
10-06-2006, 10:24
به نام خدا
در ضمن نکته ای که در رابطه با کد بالا فراموش کردم بگم این است که من خودم تمام مقادیری را که قرار داده ام را سرچ کردم در ضمن نیاز به تغییر مقادیر نیست فقط کافیست که تبدیل به فایل اجرایی کنید که خیلی ساده است ...
مقادیر شامل جان بی نهایت ، تیر بینهایت و ... می باشد .
باز بگید Morteza_SOS بده ...

Morteza_SOS
10-06-2006, 10:27
به نام خدا
در ضمن هر بازی ای خواستید بگید اگر داشتم بازم تکرار می کنم اگر داشتم بازی را براش تراینر می سازم .
به سبک PizzaDox
فقط 2 تا امتحان دیگر مانده دعا کنید همه را خوب بدم کولاک می کنم ....

By Morteza_SOS

Morteza_SOS
10-06-2006, 10:32
به نام خدا
اینم سورس برای اجرای بازی و چند کار دیگر مثلا بارگذاری و ... که دیگه نیاز به توضیح نداره که خودش یک جورایی تراینر ولی زیاد کامل نیست .
کد:

Private Sub Command1_Click()
Call SAplrGoToCoOrd(2506.92, 2144.385, 10.96094)
End Sub

Private Sub Command2_Click()
Call Form_Load
End Sub

Private Sub Form_Load()
List1.Clear
List1.AddItem "GTA Running: " & GetGTAProcess("GTA: San Andreas")
List1.AddItem "Player Pointer: " & SAptrPlayer
List1.AddItem "Car Pointer: " & SAptrCar
List1.AddItem "Last Car Pointer: " & SAptrLastCar
List1.AddItem "Current XYZMatrix Pointer: " & SAptrXYZMatrix(SAptrCar)
List1.AddItem "Is Player On Foot: " & SAplrIsOnFoot
List1.AddItem "Is Player In Car: " & SAplrIsInCar
List1.AddItem "X Co-Ord: " & SAplrXCoOrd
List1.AddItem "Y Co-Ord: " & SAplrYCoOrd
List1.AddItem "Z Co-Ord: " & SAplrZCoOrd
List1.AddItem "Current Car ID: " & SAcarID
List1.AddItem "Current Car Type: " & SAcarType(SAcarID)
If SAisInCar = True And SAcarTrailerHas = True Then
List1.AddItem "Trailer Pointer: " & SAptrTrailer
Else
List1.AddItem "Trailer Attached: No"
End If

End Sub

Private Sub Timer1_Timer()
DoEvents

If GetGTAProcess("GTA: San Andreas") = True Then
Label1.Caption = "GTA:SA Is Running"
Else
Label1.Caption = "GTA:SA Is Not Running"
Exit Sub
End If

' Give Full Health
Call SAplrHealth(400)
' Give Full Max Health
Call SAplrMaxHealth(400)
' Give Full Armour
Call SAplrArmour(400)

' If Player Is On Foot, Give Immunities
If SAplrIsOnFoot = True Then
Call SAplrImmunitiesOn
End If

' If In A Car
If SAplrIsInCar = True Then
' Fix Any Damage
Call SAcarFullHealth
' Stop Car From Blowing Up
Call SAcarNotBurn
' Make Car Bullet/Fire/Dent/Explosion Proof
Call SAcarImmunitiesOn
' Make Car Heavy To Send Hit Cars Flying
Call SAcarGiveWeight

' If You Are In A Car Or On A Quad, Repair The Tyres
If SAcarType(SAcarID) = "car" Or SAcarType(SAcarID) = "quad" Then
SAcarFixTyresCar
End If

' If You Are On A Bike, Repair The Tyres
If SAcarType(SAcarID) = "bike" Then
SAcarFixTyresBike
End If

' If A Trailer Is Attached, Give Full Health & Immunities
If SAcarTrailerHas = True Then
Call SAcarTrailerRepair
Call SAcarTrailerImmunitiesOn
End If

End If

End Sub

mshiraz.2006
10-06-2006, 11:58
به نام خدا

با سلام
آقا مرتضی یه برنامه با حجم حدود 35 کیلوبایت تو چند صفحه قبل گزاشتید که ما هرچی پسوردش رو می زنیم قبول نمی کنه
میشه یه لطف کنید برام ایمیل بزنیدش.

با تشکر
esmail_jokar66@yahoo.comfi k

mshiraz.2006
10-06-2006, 11:59
به نام خدا

با سلام
آقا مرتضی یه برنامه با حجم حدود 35 کیلوبایت تو چند صفحه قبل گزاشتید که ما هرچی پسوردش رو می زنیم قبول نمی کنه
میشه یه لطف کنید برام ایمیل بزنیدش.

با تشکر
esmail_jokar66@yahoo.com

Morteza_SOS
10-06-2006, 12:15
به نام خدا

با سلام
آقا مرتضی یه برنامه با حجم حدود 35 کیلوبایت تو چند صفحه قبل گزاشتید که ما هرچی پسوردش رو می زنیم قبول نمی کنه
میشه یه لطف کنید برام ایمیل بزنیدش.

با تشکر
esmail_jokar66@yahoo.com



به نام خدا
با سلام خدمت شما دوست عزیز !
البته که پسورد را قرار می دهم ولی شرمنده نمی توانم ایمیل بزنم چون اصلا وقت ندارم ....
پسورد :
.Morteza_SOS_Trainer_Template_***_For_Iranian

mshiraz.2006
10-06-2006, 15:12
به نام خدا

با سلام
خب آقا مرتضی از همون اول بگو باید پسورد رو تایپ کنیم نه کپی
حالا مال من یکی که اینجوری بود مال لقیه رو نمی ذونم

با تشکر از شما دوستان خصوصا آقا مرتضی

mshiraz.2006
10-06-2006, 15:15
به نام خدا

با سلام
آقا مرتضی وقتی که صفحه راهنمای آبیه میاد باید چه کارش کنی؟

Morteza_SOS
11-06-2006, 12:22
به نام خدا

با سلام
آقا مرتضی وقتی که صفحه راهنمای آبیه میاد باید چه کارش کنی؟




به نام خدا
با سلام خدمت شما دوست عزیز ...
شما به آن صفحه آبی کاری نداشته باشید بلکه ابتدا برنامه ویژوال بیسیک 6 را نصب کنید و بعد سورس را بارگذاری کنید و تغییرات لازمه را اعمال کنید در ضمن در کد نیز توضیح داده شده پس فکر نکنم دیگه نیاز به توضیح باشه ;)

mshiraz.2006
11-06-2006, 14:33
به نام خدا

با سلام
ممنون
تازه فهمیدم باید چه کار کنم
به خودم خسته نباشید میگم
با تشکر

Morteza_SOS
11-06-2006, 16:07
به نام خدا

با سلام
ممنون
تازه فهمیدم باید چه کار کنم
به خودم خسته نباشید میگم
با تشکر


به نام خدا
با سلام مجدد خدمت شما دوست عزیز از این حرف شما بسیار خوشحالم .
اگر احیانا با مشکلی برخوردید ما یا بهتر است بگم من در خدمتم . :blush:

ALt3rnA
12-06-2006, 08:29
خدا رو شکر اخرش یکی از تاپیک استفاده برد

==================================
اقا مرتضی میگم این تاپیکو توی انجمن بازی بزنید بهتره چون گیمر ها زیاد به انجمن برنامه نویسی سر نمیزنن

Morteza_SOS
12-06-2006, 18:58
خدا رو شکر اخرش یکی از تاپیک استفاده برد

==================================
اقا مرتضی میگم این تاپیکو توی انجمن بازی بزنید بهتره چون گیمر ها زیاد به انجمن برنامه نویسی سر نمیزنن




به نام خدا
با سلام و تشکر از تیکه ای که به ما انداختی ولی دیگه از این کارا نکن :angry: :angry: :angry: :angry: :angry:
=================================
در ضمن با ایجاد تاپیک جدید مخالفم ... چون سایر دوستان سردرگم می شوند ولی اگر شما این کار را مفید می دانید
چشم به روی چشم سمت راستم . :biggrin:
در ضمن اون تیریپ جذبه ای که در بالا آمدم را زیاد جدی نگیر چون من و تو که دیگه از این حرفا نداریم . :cool:
در ضمن مهدی جان یک سورپرایز عالــــــــــــــــــی برایت دارم .
از طریق پیغام خصوصی می فرستم . :cool: :cool: :cool:

mshiraz.2006
13-06-2006, 05:55
به نام خدا

با سلام
یه سوال
شما برای کلید "f1" کد 101 رو وارد کردید.
چه جوری میشه کد بقیه کلیدهای صفحه کلید رو بدست آورد؟
با تشکر از زحمات شما

*Batman*
13-06-2006, 06:53
سلام.
مرتضي جان دستور زير بايد Private باشه وگرنه خطا ميده:


Public Const TH32CS_SNAPPROCESS = &H2

پردازه WriteInteger قبلا تعريف شده يا مال خود VB هستش؟

اگه امكان داره كدها رو به صورت مرتب ((شلوغ نباشه)) براي دسترسي به آدرس و مقدار دهي در آن بگذاريد.

كدهاي gamehackir خوب بود ولي اگه دوبله ميشد بهتر بود. :blush:

*Batman*
13-06-2006, 07:37
gamehackir جان كدهاي شما رو بايد با آب طلا نوشت.
تو فاصله زماني پست قبلي تا الان تونستم با كدهاي شما يه ترينر براي بازي Game House Super Pop & Drop! بسازم.
دستت درد نكنه.

mshiraz.2006
13-06-2006, 09:53
به نام خدا
با سلام مجدد خدمت شما دوست عزیز از این حرف شما بسیار خوشحالم .
اگر احیانا با مشکلی برخوردید ما یا بهتر است بگم من در خدمتم . :blush:


به نام خدا

با سلام
شما برای کلید F1 کد 101 رو وارد کردید.
چطوری کد بقیه کلیدهای صفحه کلید رو پیدا کنم
آیا نرم افزاری است یا در خود ویژوال بیسیک میشه پیدا کرد؟
با تشکر

prance3
13-06-2006, 11:59
كد ها بايد در فرم قرار بگيرند
با تشكر!!!!!!!!!!!

soldier
13-06-2006, 12:09
سلام
این فقط تاپیک مخصوص : ساخت ترینر توسط ویژال بیسیک بود
در كل خوب بود اما براي ما دلفي كارها هيچ بدرد نمي خوره.
پس دلفی کار ها چی ؟! چیکار کنند؟
در صورتی که ویژال بیسیک هم بلد نباشند.
و در صورتی هم که در دلفی حرفه ای باشند!
اگر اینطور باشه اون شخص باید دلفی را رها کند و به ویژال بیسیک کار کنه؟؟؟؟؟؟
پس بهتره هر کی که کد های مخصوص ساخت تیرینر با دلفی پیدا کرد بزاره توی تاپیک :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mshiraz.2006
13-06-2006, 16:21
كد ها بايد در فرم قرار بگيرند
با تشكر!!!!!!!!!!!


به نام خدا

با سلام
منظورم رو نگرفتی
اون کدها رو باید از کجا گیر آورد؟
یا بهتره بگم ( هر کلید تو کیبرد چه کدی داره ) مثلا اگه کد کلید F1 عدد 101 کلید F2 کدش چیه؟
امیدوارم منظورم رو بفهمی؟
با تشکر

ALt3rnA
13-06-2006, 16:37
اشنایی بیشتر به اعداد سیستمی (برای اشنایی با ادرس ها و متغیر ها )
A Guide to Number Systems


Introduction
'Number systems?' you may be thinking. What in the world has game hacking got to do with number systems?

Well, quite a lot as it turns out. I thought that the number of people out there that actually know about all the different number systems used within computers is so few, that it may be well worth writing a 'tutorial' about it. So here it is. I hope it helps you understand the fundamentals of the various number systems and hopefully it will also enable you to understand the processes that take place when you create a trainer. I feel that this tutorial will also be very helpful to people out there that are interested in making Save Game Editors, as basic knowledge of the number systems is a must.

I will include information on the most important number systems including decimal, hexadecimal and binary. I will also give brief details of the other systems. I also intend to take you through creating your own tool to convert numbers to different number systems. Delphi will be the programming language, and I will include full downloadable source and executable.

Tradition
There have been many different number systems used through history. The Roman system is familiar to most people, where counting follows the pattern of: I II III IV V VI VII VIII IX X .... and so on. These roman numerals became very popular and were used for centuries in many cultures. However, as time passed a new system has taken over the Roman system and this system is often referred to as the Arabic system. This is indeed the system that we use today.

Normal everyday numbers which we are so use to are called base ten or denary numbers. The use of ten as the radix is partly due to the fact that we have ten fingers to count with, but also because ten is a convenient size to work with. Numbers are decoded by interpreting each digit as powers of ten in descending order from left to right. Hence:

6524 is interpreted as (6 x 1000) + (5 x 100) + (2 x 10) + (4 x 1)

However, this denary system which we use is not altogether brilliant. For example, it cannot be divided by the number 3 which means that even the simplest calculations can result in recurring decimals, which leads us to the most simplest number system of all - the binary system.

Binary Numbers
This can be quite hard to understand at first, but once you've cracked it you'll know everything you ever needed to know about binary numbers. So concentrate.

Binary numbers operate around a two-state system. On or off. 0 or 1. For example, if a switch is on, then the state is 1, if not the state is 0. The numbers in a computer are represented by strings of zero and one in a radix two, or binary notation. For example:

101 represents

Fours
Twos
Units

1 0 1

which equivocates to the denary number 5.

Larger numbers follow the same fashion, each time the heading in the column doubling. So, as a further example:

10010110 represents

(1 x 128) + (0 x 64) + (0 x 32) + (1 x 16) + (0 x 8) + (1 x 4) + (1 x 2) + (0 x 1)

= 128 + 0 + 0 + 16 + 0 + 4 +2 + 0

= 150

Understand all that? Good!

A binary code is used to represent all the data processed in a modern digital computer. There are two reasons why digital computers are designed to use binary numbers rather than other number systems:

The construction of two-state devices is much simpler than the construction of devices with more than two states.

Communication between devices is very reliable because only two different signals need to be recognized when data is transmitted (i.e. off or on).


Representing Data with a Binary Code
OK, so hopefully now you understand the basics of the binary system. Now it's time to find out how data is actually represented by the computer using binary code. You've most likely heard of bits before; this acronym comes from: binary digits. To represent data as a binary code, you must first decide the number of bits needed to represent each separate character of data. For example, the Microsoft Window's Operating System is currently a 32-bit operating system and therefore runs on 32-bit computers. However, the N64 console is a 64-bit computer which means that it represents data with 64-bit wordlengths.

Confusing? Yes, I know, but it will soon come clearer. Basically, binary code is used to represent characters in a computer and the way it does this is defined by the internal character code of the computer. The most popular example of this is ASCII, which can represent letters, numbers and symbols and is therefore categorized as an alphanumeric code.

A section of computer memory that can store a single character of data is called a byte of memory. In most computers, each byte will contain eight bits. That way, the ASCII character code is able to represent a unique code to each character that it needs to make available to the computer. For example, the ASCII code for the letter P is:

0 1 0 1 0 0 0 0

which from our previous knowledge of binary numbers, converts to the decimal equivalent of 80. Every other letter in the alphabet has its own unique binary code as well as the ten digits and various symbols. Each ASCII code represents 1 byte of data, which consists of eight bits. So from just a few 1's and 0's you can represent a character!

But how is a complete word stored as data? Well, this is actually fairly straightforward. When a computer is built, it is provided with a large number of separate memory locations.. Each location is numbered, representing the address of the location. The computer can use the address to select the data it contains.

In modern computers, each memory location can contain 4 bytes i.e. 32-bits. These are 32-bit computers. Therefore, each memory address is able to hold 4 separate characters. Hence the word PEAR can be stored into a memory address as follows:

Address Data
1000 01010000 11000101 01000001 11010010
P E A R

Basically, at memory address 1000, the word pear is stored, using a separate binary code for each character. In this instance, the memory address is now full and further data will be placed into the next memory address.

Hexadecimal Numbers
The hexadecimal is another frequently used system and it works with powers of 16. It uses as its digits:

0 1 2 3 4 5 6 7 8 9 A B C D E F

The letters A...F are a continuation of the pattern, hence A represents 10, B represents 11......up until F, which represents 16!

Hexadecimal numbers are used in computer systems where memory is stored in bytes, where each byte can be expressed as two hexadecimal digits. You will probably have recognized this if you have attempted to create a trainer using a special kit, such as WinHack, by Grant Malinverni or Trainer Maker Kit (both downloadable from the tools section at [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]). You can also see this representation of hexadecimal numbers by viewing a file in hex view, using a tool such as Hex Workshop.

So, for example, if the denary value of 29 is stored in a byte of memory, then the hexadecimal number is used to represent this data. Here's how its found:

The binary code for 29 is

128 64 32 16 8 4 2 1
0 0 0 1 1 1 0 1



This is then split into two:

0001 1101

and then converted to two hexadecimal numbers by adding up the digits in each block: 1 and 13, which converts to........

1D -- that's it! The hexadecimal equivalent of 29!

Each byte of memory is represented as two hexadecimal numbers like this. For larger numbers, such as floats and words the hexadecimal numbers are joined together to make up the larger number.


Other Number Systems
There are a number of other number systems, the most popular being the Octal system, which works with power of eights, and also the two's complement and the one's complement representation. These are not that commonly used and so I don't feel the need to further comment upon them.

Different Types of Numbers
Type Range Memory Allocation
SHORT -128....127 signed 8-bit
INTEGER -32768.... 32767 signed 16-bit
LONG –2147483648.... 2147483647 signed 32-bit
BYTE 0.... 255 unsigned 8-bit
WORD 0.... 65535 unsigned 16-bit
DOUBLE WORD 0.... 4294967295 unsigned 32-bit

Each of these types of numbers are used to store numbers in memory. For example, a game may store a character's health value. This health value is out of 100 and therefore the data type should be a Byte. On the other hand, the gold collected by the character could be 60000 and therefore the data type will be either a Word or a Double Word to allow capacity for the value.

Converting

There are times, especially when creating a trainer, that you may need to convert a number from one system to another. For example, when finding a denary value stored in the memory of a loaded game, you need to be able to convert the value to a hexadecimal state so that you can find it. For me, I need to do this quite often, especially when creating a trainer from scratch by programming it rather than using a trainer maker kit. Hence, I created my own tool that allows me to convert numbers from decimal to hexadecimal and binary.

I may release my converting tool soon so that you can download it and I will also include full source code so that you can fiddle with it. For now, here's a screenshot of what it looks like:



If you think you would find this tool helpful then either e-mail me or post a message on the web board and I may release it....

Conclusion
Hopefully, now you realize how data is stored in memory using different types of number systems. I hope you benefit from this tutorial, and I look forward to releasing further tutorials, focusing more on programming in C++ and Delphi.

For now, that's it -- any comments, criticism, praise, suggestions for future tutorials, or whatever then feel free to contact me,

mshiraz.2006
13-06-2006, 16:40
به نام خدا

عزیز این ها رو در جواب سوال من نوشتی؟

ALt3rnA
13-06-2006, 16:59
کد اینجکشن

ode Caves and Code Injection


I. Introduction

Code caves are series of 00 and/or 90 hex bytes located in the process memory of our games. We can use these code caves as a place wherein we can write our own code/routine/function.


II Needed Tools

1. SoftIce/Tsearch (I prefer SoftIce) [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
2. Your favorite Memory Searcher (I use ArtMoney) [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
3. Tsongkie’s Code Cave Tool ? [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
4 Game (I used Gangsters 2 v1.0.5)
5. Few Brain cells ?


III Hacking the Game

I have searched the game as normal and found the value 010BAFDC for money. I also noticed that the money is being updated when the time returns to 00 (e.g. 10:00, 11:00). Also, 010BAFDC is a COUNTER Address, changing it wont have any effect with the real value.

For SoftIce Users be sure that the you enabled the following in SoftIce:

Dump Window: wd [return]
Register Window: wr [return]
Hex Codes: code on [return]


What we need is to put a breakpoint at 010BAFDC… so…

Press ctrl+d
Type bpmd 010BAFDC w
X
And wait for SoftIce to Pop when time reaches 00…

When SoftIce pops up, I get the following code:

0177:005650E6 85C0 TEST EAX,EAX
0177:005650E8 75CA JNZ 005650F4
0177:005650EA 8A8658040000 MOV AL,[ESI+00000458]
0177:005650F0 84C0 TEST AL,AL
0177:005650F2 7570 JNZ 00565164
0177:005650F4 57 PUSH EDI
0177:005650F5 8B7C240C MOV EDI,[ESP+0C] ? Notice here
0177:005650F9 85FF TEST EDI,EDI ? SoftIce Pops Here
0177:005650FB 7D0B JGE 00565108

type d [ESP+0C]
BINGO! [ESP+0C] is equal to 010BAFDC, our money address ?. If we simply NOP this, the money wouldn’t change…It wouldn’t either increase nor decrease… the answer to this problem is code injection…

What we need is change MOV EDI,[ESP+0C] to:
MOV EDI,00FFFFFF which gives us $99,999,999…


IV Code injection


First, Get TCCT (Tsongkie’s Code Cave Tool… Yeah ? ) and search Gangsters2 Window for code caves. Look at the results and select one… I chose 00400319. In SoftIce type:

D 400319 [return]

Scroll down some more just to be safe…Look at 00400342…Again type

U 00400342

It is a series of code caves… Write down the address in a piece of paper.


For our own injected function

Now we need to assemble 00400342, so type:

A 00400342 [return]

0028:400342 MOV EDI,00FFFFFF [RETURN]
0028:400347 TEST EDI,EDI
0028:400349 RET

Again type: U 400342 [return]

It should look like this:

0028:00400342 BFFFFFFF00 MOV EDI,00FFFFFF
0028:00400347 85FF TEST EDI,EDI
0028:00400349 C3 RET

What we have just written is our own function ?.

1) The instruction at 0028:00400342 is the code that we need to have $9,999,999.

2) The instruction at 0028:00400342 is the same code at 0177:005650F9. We rewrote this because we are going to overwrite the instruction at 0177:005650F9 when we call our own function.

3) All functions/procedures end with a RET (instruction at 0028:00400349)

The only thing we need to do is call our function…


Calling Our Function/Procedure

Lets look at the game’s code again:
0177:005650F2 7570 JNZ 00565164
0177:005650F4 57 PUSH EDI
0177:005650F5 8B7C240C MOV EDI,[ESP+0C] ? Notice here
0177:005650F9 85FF TEST EDI,EDI
0177:005650FB 7D0B JGE 00565108

What we need is to overwrite the code at 0177:005650F5 and 0177:005650F9 with a CALL Instruction. Lets assemble and overwrite the said codes.

Now type:

A 005650F5 [return]

0177:005650F5 CALL 00400342
0177:005650FA NOP ? NOP this because the next instruction starts at: 005650FB
0177:005650FB [RETURN] ? Next Instruction starts here

Type again:

U 005650F5 [RETURN]

It should look like this:

0177:005650F2 7570 JNZ 00565164
0177:005650F4 57 PUSH EDI
0177:005650F5 E848B2E9FF CALL 00400342
0177:005650FA 90 NOP
0177:005650FB 7D0B JGE 00565108


There, we are done. ? Clear all our breakpoints and check if it works. It should.


V. Our Trainer

You just need to write…

Address New Bytes

00400342 BF FF FF FF 00 85 FF C3
005650F5 E8 48 B2 E9 FF 90


V

ALt3rnA
13-06-2006, 18:13
ساخت ترینر در ویژوال بیسیک 6



1- Introduction
2- Things you need
3- How to Write Trainers
4- Extra Stuff
5- Credits

<Introduction>
Fisrt of all, MAXIMIZE your notepad so you can read this thing with no trouble.
This code has been sitting in my computer for months and I didn´t use it at all.....
so I decided to write a tutorial and post it somewhere. I´ll try to show you a way to write your
own trainers without the aid of Magic Trainer or such. Have fun.

<Things you need>
* Visual Basic 6.0 (otherwise you won´t be able to see the examples)

<How to Write Trainers>
Trainer is the common name used to desgin those little cool programs that ---- PC games (mostly)
like Starcraft, Age of Emipres, Diablo, etc... Since these games create saved games with
checksums and other kind of stuff, the only way to ---- 'em is by changing the data when the game
is running. How do you do this?? Well, the WinApi has a lot of different functions to handle the
operation.
I wrote a Visual Basic Class to do all the work. It's based on Beans' VB documentation and the
C++ class document written by a Oboema.
Class Properties:
WindowTitle> This is the actual title of the window, to see the title press Alt+Ctl+Del and seek
your name in the list. It has to be the FULL name, I didn´t add support for
incomplete strings, but it can be easily done (get some info about that from
planet-source-code.com)
ProcessHandle> Public property where the process handle is stored, you can store it manually but
the class won´t know that the process is open (see ProcessIsOpen() as Boolean)

The class can be divided into 10 public functions (and a few others private):
__________________________________________________ ______________________________________________
OpenPR()
This function will open the process (based on the WindowTitle property previously given) and
return TRUE or FALSE, depending on the result of the operation. If it returns TRUE, the program
will retrive a Process Handle from the system and store it in the ProcessHandle property of the
class.
__________________________________________________ ______________________________________________
ClosePR()
This function will close the handle to the process. If no handle has been retrieved it'll return
FALSE. No parameters are necessary, since the ProcessHandle is a Public property.
__________________________________________________ ______________________________________________
ReadByte(address as Long)
This one will return the byte value at the given address.
__________________________________________________ ______________________________________________
WriteByte(address as Long, value as Byte)
This one will write a byte value at the given address.
__________________________________________________ ______________________________________________
ReadUINT(address as Long)
This one will return the Unsigned Integer value at the given address. (0-65535)
__________________________________________________ ______________________________________________
WriteUINT(address as Long, value as Long)
This one will write a Unsigned Integer value at the given address. (0-65535)
__________________________________________________ ______________________________________________
ReadHexString(address as Long, size as long)
DON´T PASS THE &H PREFIX!
This function will return the hexadecimal base value located at the given offset, the size is
multiplied by 2, example:
ReadHexString(1234, 1) will return "0F" (the values are just examples....)
ReadHexString(1234, 2) will return "0FC4"
ReadHexString(1234, 3) will return "0FC471" ...Got it?
__________________________________________________ ______________________________________________
WriteHexString(address As Long, HexString As String)
Just pass a address and a value, it doesn´t matter the size of the expresion (as long as it's a
valid number). If you pass "F" the program will add the extra 0, the same for 98F4A.. and so on
__________________________________________________ ______________________________________________
ReadString(addres as Long, size as Long)
The size you send to the function will be the actual lenght of the returned string, when using
this function with textboxes remember this: strings are terminated by a NULL character so if
you pass a size of 20000 and the 5th character is 0, you´ll get a 4 char long string into your
text box, but that does´t mean the program didn´t read the 20000 characters...
__________________________________________________ ______________________________________________
WriteString(address as Long, str as String)
Just pass the string, the address and it will do the rest.
__________________________________________________ ______________________________________________

<Extra Stuff>
Well, the included project has an example program. The basic steps to use the class are:
* Declare it like this: Dim MyClass As New CProcess
* You can access the functions by the "." operator: MyByte = MyClass.ReadByte(12345)
* Set the WindowTitle property: MyClass.WindowTitle = "Calculator"
* Open the Process: MyClass.OpenPr()
* Use it: MyClass.WriteHexString(1234, "0FA43")
* Close the Process: MyClass.ClosePr()
Download

ALt3rnA
13-06-2006, 18:14
ساختن ترینر برای انرژی بار یه همون نوار های جان


=============================================


How to create a trainer for energy bars using GameHack and Master Cheater
I'm using Virtua Fighter to demonstrate how the creation works but I think it can be generalized so that nearly every game with energy bars can be cheated using that method...

First of all you should start Virtua Fighter, then ALT-TAB to your desktop and load GameHack.
Now select the process you wanna cheat (in that case 'Virtua Fighter PC') by clicking on the cog-wheel button and seearching the process.
Done ? Allright, let's continue.


Get back to the game (I think you know how to do that...). It's much easier to find the offsets you are searching for (the ones of the energy bar) if you select a two-player game now. It could be helpful to turn off the timer as well since the cheating process will take a lot of time...
Once inside the game ALT-TAB (or CTRL-F12) to GameHack. Press that binoculars- button (start search) and start an advanced search using the type: '1 byte'. Why ? That's easy ... most of the games with energy bars use the value '255' as the maximum of the bar. In hex that's 'FF' which is one byte.
Click on OK and return to your game.


As the second player hit player 1 one time and go back to GameHack.
Click on 'Next search andsearch for a 'decreased' value now. GameHack finds a lot of those offsets, so go back to the game, hit player 1 another time and switch to GameHack. Search for a 'decreased' value again. Continue that procedure until there are only a few offsets left. If player 1 looses a match (because player two striked him down too often) and reappears for the next round (with a full energy bar!), get back to GameHack and choose an 'increased' value since the bar has been filled. It can be that a lot of adresses are left at the end, so use the 'Trial-and-error' method and try to freeze every single offset one after another. That takes quite a long time, so go through the list and search for a value that could be THE ONE AND ONLY. :)

I think those negative values are complete bulls**t, so (in my case) 008E3710 is the right offset (for VF). Let's experiment a bit with it.


Try to enter '255' as the value and go back to the game. Whew, the energy bar looks quite strange, so VF doesn't use the '255-is-maximum'-algorithm (cool word...).
Type in '200' and get back to VF. Allright ... everything's normal and click on the square next to 'Description' (in GameHack of course) and freeze the value.
Try to hit player 1 in the game ... the energy fills up everytime he's hit.


GREAT ! Now let's create the trainer using Master Cheater !

STAY INSIDE OF THE GAME, IT WILL MAKE THE PROCESS HANDLE EASIER LATER !! Umm ... use the Hotkey you've chosen to start Master Cheater (should be a CTRL-?? combination). Type 'TMLIST' and insert 'Energy' as description and the offset you've found as address (008E3710). Master Cheater wants the value to enter in hex, so we've got to convert the 200 into hex. There are enough (free!) calculators to do this on the net, so here's the hex value: C8.
Enter that C8 (Beware ! This is for Virtua Fighter ! This value may not work on other games as well as the address !!!) into the value field (the buttons to do this are displayed at the bottom of Master Cheater) and press ESC. The list needs to be saved, so enter TMSAVE [name] on the input field. [Name] can be anything you like, I choose 'vfenergy'. -> TMSAVE vfenergy
The program creates a file called vfenergy.mct in its directory which is important ! Type TMBUTTONS now to create the outfit of the trainer.
The BUTTONS TITLE should be 'Energy P1' so that the end user knows what'll happen if he pushes the button. Press your right cursor key now to change to the ON-row. Press L now and select the file you've just saved (vfenergy.mct). The OFF-field should stay EMPTY since nothing shall happen if the freeze-option is turned off. Since we want to have unlimited energy for player 1, the STATUS should be 'FREEZED' (press C a couple of times to do that). Now we're ready to build our trainer ! Type TMBUILD into the input field and choose the options that will fulfill your needs (About-Screen, Title-Screen, Filename of the trainer). Hopfully you did the whole process inside of the game (I warned you!), so the process name of the game (in my case VFPC.EXE) should be in the process window. If not, type it in (you can use the windows explorer to find out which is the starting exe). After you pushed the N button the last time, the specified trainer will be created in your Master Cheater directory. Start it, minimise it, press CTRL-T inside the game, freeze your energy bar and try it out (mark EXIT and press ENTER to return to your game)!

ALt3rnA
13-06-2006, 18:19
اموزش ساخت ترینر در ویژوال بیسیک

================================



Programming Trainers: Part 1

Updated: 03/12/2000

This article won’t teach you how to make trainers, it just goes over the most common methods of making trainers for Windows games, and lists several of the advantages and disadvantages of each. In a future tutorial examples and code will be given for making trainers.

Finding ‘data values’ in games is not discussed either. If you are not familiar with searching a game’s memory space to find values, then you might want to study that first. There are several good tutorials on finding game data at [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] in the ‘Newbie Help’ section.



The methods

Trainers can be made with several programs; below is my take on the available options.

Auto Trainers – This category comprises the trainers created automatically by a Memory searching utility. Find the values and click a button to generate the trainer.
Advantages: Very easy to use. A trainer can be quickly generated.
Disadvantages: Inflexible. Large exe files. Can’t be used with ‘advanced’ trainer methods.
Trainer Generating Kits – These types of programs provide a great deal of flexibility in the user interface. Design your trainer’s look almost anyway you want; use bitmaps with selectable special effects, scrolling text boxes and more.
Advantages: Neat special effects. Easier than programming from scratch.
Disadvantages: Large exe files. Can’t be used for ‘advanced’ trainer techniques.
Programming – By far the most flexible option. Anything the other 2 categories can do can be done with programming and much more. However this option can require more work, and of course knowledge of a programming language.
Advantages: Very flexible, normally has small exe files.
Disadvantages: Need to know a programming language, takes longer to create a simple trainer.
For more info on the first 2 options check out the Tools section at [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Almost every game searching tool and trainer kit I know of is there along with other useful tools as well. I do want to discuss programming trainers in a little more detail. Partly because that is the method I use to make trainers, but more importantly because of what can be done by programming trainers from scratch.

Several languages can be used to ‘program’ a trainer: C++, Asm, Visual Basic and others. Asm is the best choice if you know it, as very small executable files can be generated. Next I prefer straight C/C++. All code in this tutorial will be C / C++ or asm but the general principles will be the same no matter which language you use. Programming trainers in C++ and Visual Basic will be discussed in more detail in other tutorials.



Responding to input

Trainers can be used in different ways depending on the game, and the way the game’s data needs to be manipulated.

Buttons
Setting a Timer
Intercepting Keystrokes
Buttons are a very intuitive way to let the user perform a trainer option. Label the button with what the trainer option does and then the user just clicks on it to perform that action. The trainer can then respond to the WM_CLICK event for that button. However this causes an inconvenience to the user in full screen games; the user must alt-tab out of a game to activate or deactivate each option.

Timers routines can be used to check for user key presses. For example, assign an option like Level Skip to the F12 key by:

Setting a timer for your trainer with the SetTimer API function.
Add a handler for the WM_TIMER message.
Use the GetAsyncKeyState or other API call to check for an F12 keypress.
If the F12 key was pressed Skip to the next level.
In some games this provides a more transparent method but still can cause problems. Even 5 options with separate keys for each can make it difficult to remember which key goes with which option. And if the trainer option is a toggle there is no feedback letting the user know if its toggled on or off. However these issues can be addressed through the use of ingame message displays and/or ingame menus.

Intercepting Keystrokes is a variation of the WM_TIMER method but the trainer only gets called if a key is pressed, not at specific timer intervals. Basically if the Game requires a lot of keyboard input the Timer is probably a better option, if a key gets pressed only once every 3 or 4 seconds then intercepting the keystrokes may be more efficient.



Advanced trainer techniques

This section describes some of the things that can be done by programming your own trainers. Details about each topic will be addressed in later tutorials or updates to this one.

Multiple version support through version detection and feedback
Memory scan for new version support
Resolving dynamic memory addresses at runtime
Displaying ingame cheat menus
Automating cheat code entry
Calling game code
Having the game call your trainer
Multiple version support with feedback makes a trainer much easier to use as the user no longer needs to wonder why the trainer doesn’t works with his version. This does require more work by the programmer, and may require that the game data be found multiple times. But 1 trainer can then supports several versions of a game. Feedback to the user can be in the form of a status window. If the game window is found but the version string is not then "Unsupported version" can be displayed. If the game window can’t be found then "Game window not found" and so on.

Memory scanning is an automatic way to add support for new versions of a game, but it only works if the code is relatively the same between versions, which it quite often is.

Dynamic memory: A lot of the new games coming out are using dynamic memory. This refers to the fact that each time the game restarts its data offsets change in memory. However there are 2 effective ways to address this.

Change the code as opposed to the data - Even though data offsets change each time the game restarts the address of the code in memory stays the same. So instead of continually placing $1,000,000 at a money address, you can change the game code in memory that modifies that address. For example change aDEC EAX to NOP’s or INC EAX. However this method has some drawbacks. For example, that code address may be the same code address that decrements the computer’s money, so the computer would benefit also. The Trainer Creation Kits can use this method.
Find the new data address in memory at runtime – This method works very well and is the one I prefer although each has advantages in specific situations. Basically it involves reading up to 5 different game addresses and using each one to get a pointer to the next pointer and finally to the data. The difficulty with this method is that none of the current memory searching programs can find these pointers easily (except for Spyderن , which isn’t currently available).


Ingame cheat menus – Ingame cheat menus can be used as opposed to external dialogs for trainer options. This can be accomplished through the use of a modal dialog as a child window of the game window.

Automating cheat code entry – Trainers can also be used for 1 key access to cheat code entry. Assign a long cheat code to any key and when the user presses that key during the game the cheat code is automatically entered by using the keybd_event function from the trainer. A selectable list of available cheat codes can also be displayed as an ingame menu.

Calling game code – Calling game code directly from a trainer can be a huge benefit. Why rewrite a complicated procedure to modify a game’s map terrain when you can call the same routine in the game and have the game perform all modifications.

Having the game call your trainer allows the trainer to be a seamless interface into the game. By having the trainer call my code I can add new features to a game or modify existing functions to act exactly how I want.



That’s it for now, I know it doesn’t go into much detail but it does give some alternative approaches to making trainers. Future tutorials will have more detailed information on making trainers, as well as code and examples.

Programming Trainers Part 2: Visual Basic

Updated: 03/30/2000

So you want to make trainers in Visual Basic. "I'm sorry but its not possible because VB is such a simple programming language." If someone tells you that, don't listen to them. Just about any type of program can be made with VB and definitely trainers, I've made them.

However there's something you should think about first. In order to use a trainer programmed in VB, gamers will need the VB runtimes. Some people might not have these and to include them in a zip file would make the file very large. Just to get an idea of the size I created a setup for the trainer created later in this tutorial, and the total size was just over 1MB. Of course that included a nice setup and uninstall program but the main size hit was the VB40032.DLL file.

On the plus side, creating a trainer in VB is very simple and once you've done it a few times it can be done very quickly. Also trainers made with VB can resolve dynamic memory at runtime, so trainers can be made for even the newest games. (Dynamic memory won't be covered in this tutorial as I consider it an advanced option, although really it is very simple to program for).


Some Background Info

Unlike C, VB doesn't include declarations of the common API functions so we must add them to our project. There are 6 main functions used in almost every trainer, and those will be discussed here.

FindWindow(ClassName, WindowTitle) - FindWindow returns a handle to a window that has the class name and window title we specify. For our purposes we can leave ClassName Null and just give the WindowTitle of the game were interested in. It can be declared as follows: Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

GetWindowThreadProcessId(WindowHandle, ProcessId) - Here we pass the handle from FindWindow and get back a ProcessId, which is needed to get a handle to the process. It's declaration is: Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

OpenProcess(DesiredAccess, Inherit, ProcessId) - This function will return a handle to our target process. This handle can then be used to read and write to our target. DesiredAccess determines the access rights the handle will have to the target; for now just use PROCESS_ALL_ACCESS. Inherit should always be False. ProcessId is gotten from the GetWindowThreadProcessId function. Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

CloseHandle(ProcessHandle) - Every handle you open should be closed with a call to CloseHandle. Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

WriteProcessMemory(ProcessHandle, Address, Value, SizeofValue, BytesWritten) - This is one of the two functions that does the actual work. It writes Value to the target address specified by Address. You can declare it like this: Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

ReadProcessMemory(ProcessHandle, Address, Value, SizeofValue, BytesWritten) - This is the other work function. It places into Value the value from the target's address specified by Address. Declare it: Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
There is a lot to know about the Windows API functions. You should make it a point to study the more common ones by looking it up in your programming help files. The help files will also give much more valuable information on the above functions, such as return values and error handling.


A Simple Trainer

So how do these functions work together so we can make trainers? As an example here's how to code a simple "trainer" for the windows calculator application. The trainer will read the value displayed in the calculator window, and will write our name there if we click a button.

First we need to find the address of the calculator display window. This is not a tutorial on Memory searching in games so I'm only giving very general instructions.

Enter 123456 into the calculator display
Open your favorite memory search program and search for the string 123456
Repeat with a different value until only 1 address is found
That's the only address we need to know to make our trainer. The address for the display in my calculator application is 40B181 hex, 4239745 dec. When I refer to this address in the code listings just replace it with whatever value you found.

Now lets go ahead and design the trainer interface.

Start a new project in VB and then add 1 Textbox, 1 button and a timer. The textbox will be used to display the string we retrieve from the calculator window and the button will be used to send our name to the display window.
Set the form Caption to Calculator Trainer
Rename the textbox to txtDisplay and clear the Text property
Change the timer name to ReadTimer and the interval to 500
Change the button Caption to "Display Name" and the button Name to btnPasteName

For this trainer we will need all 6 of our common functions, ReadProcessMemory, WriteProcessMemory, OpenProcess, GetWindowThreadProcessId ,FindWindow and CloseHandle. Insert a new module into the project and add the following lines. Several of the lines are wrapped here but they must be on one line in your module (or you can use the continuation character _ )

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


So let's write the code we need to display our name to the calculator window. First we need to get a handle to our target window with the FindWindow function. We'll need to save this handle in a variable and check it for errors to make sure the calculator program is actually running. (FindWindow returns 0 on error)
Dim hwnd As Long
hwnd = FindWindow(vbNullString, "Calculator")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit Sub
End If
Notice we passed a Null String to FindWindow in place of the ClassName, so any window named "Calculator" should be found. If you know the ClassName you can use it but its not necessary.

Now lets use our window handle and get a ProcessId. Notice pid is passed as an argument and not assigned the return value.
Dim pid As Long
GetWindowThreadProcessId hwnd, pid

We can now use our pid (ProcessId) to get a Process Handle to the calculator program. The return value here can again be checked for a valid handle and if not then exit the sub.
Dim pHandle As Long
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If

The WriteProcessMemory function is the most important one to our trainer and is the one most likely to fail. So lets take a closer look at the parameters it wants.
WriteProcessMemory (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long)
Lets break it down so we know what each function argument does.
hProcess is the handle of the process were writing to. We receive this handle from the OpenProcess function above.
lpBaseAddress - This is the address we want to write to in the Calculator's virtual memory space, which we found with our memory search program. (The address for my calculator program was &H40B181)
lpBuffer is the data I want to write to the above address, . It can be a value, array, string or any other data type.
nSize is the number of bytes we want to write to lpBaseAddress. This field should match your data type: if your writing a long then this value should be 4. If your writing a string it should be the length of the string.
lpNumberOfBytesWritten will hold the actual number of bytes written to the target address when WriteProcessMemory returns. It can be checked to make sure the call actually worked.

Putting our values into this function we get WriteProcessMemory pHandle, &H40B181, "Beans", 5, 0&. I'm passing 0 to lpNumberOfBytesWritten because I'm not going to double check the number of bytes written.

Finally we need to close the handle opened by OpenProcess by passing our Process Handle to CloseHandle().
CloseHandle hProcess


Now to add all the code to our trainer. Double Click on the button to display its code window. The code were adding will go under the Click event for the button (btnPasteName), so make sure that's where your at, then add the following lines. (You don't need to add the comments).

Private Sub btnPasteName_Click()
' Declare some variables we need
Dim hwnd As Long ' Holds the handle returned by FindWindow
Dim pid As Long ' Used to hold the Process Id
Dim pHandle As Long ' Holds the Process Handle

' First get a handle to the "game" window
hwnd = FindWindow(vbNullString, "Calculator")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit Sub
End If

' We can now get the pid
GetWindowThreadProcessId hwnd, pid

' Use the pid to get a Process Handle
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If

' Now we can write to our address in memory
WriteProcessMemory pHandle, &H40B181, "Beans", 5, 0&

' Close the Process Handle
CloseHandle hProcess
End Sub
And that's it! Clicking the button will cause the calculator window text to be reset to the name we entered. (You may have to minimize and restore the calculator app before it will update its display.


Lets add one more feature to our trainer. We'll monitor the display window of the calculator program and show the text in our trainer window. Double Click on the timer to display its code window. Then add the following lines.

Private Sub ReadTimer_Timer()
' Declare some variables we need
Dim hwnd As Long ' Holds the handle returned by FindWindow
Dim pid As Long ' Used to hold the Process Id
Dim pHandle As Long ' Holds the Process Handle
Dim str As String * 20 ' String to hold display text

' First get a handle to the "game" window
hwnd = FindWindow(vbNullString, "Calculator")
If (hwnd = 0) Then Exit Sub

' We can now get the pid
GetWindowThreadProcessId hwnd, pid

' Use the pid to get a Process Handle
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then Exit Sub

' Now we can read from memory
ReadProcessMemory pHandle, &H40B181, str, 20, 0&

' And display the string in our textbox
txtDisplay = str

' Close the Process Handle
CloseHandle hProcess
End Sub

soldier
13-06-2006, 21:30
سلام
اگر بتوني همينطور در دلفي آموزش بدي خيلي خوبه.
در تاپيكي كه ساخته ام.

Behzad.master
13-06-2006, 21:35
من nfs the most wanted رو از [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] دانلود كردم ولي كار نميكنه

*Batman*
14-06-2006, 06:12
gamehackir جان بي زحمت طريقه پيدا كردن Pointer و Offset رو آموزش بده.خيلي لازم ميشه براي برنامه نويسي.
با تشكر

mshiraz.2006
17-09-2006, 06:20
به نام خدا

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

در مورد چند صفحه قبل آقا مرتضی یه برنامه ساده گزاشتند که فقط می خواد اعداد رو عوض کنی من چیزی نفهمیدم/ میشه یه کم واضح تر بگید و اینکه چه اعدادی لازمه؟

با تشکر.

mshiraz.2006
18-09-2006, 06:56
به نام خدا

كسي نبود جواب پست بالايي رو بده؟

ALt3rnA
18-09-2006, 11:54
من درست متوجه نشدم ....لطفا واضح تر بگید

*Batman*
19-09-2006, 00:53
به دستورات ReadprocessMemory و WriteProcessMemory بايد توجه ويژه اي داشت.
اين دستورات همونطور كه از نامشون پيداست مقداري رو از حافظه بازي ميخونن و مينويسن.
بقيه دستورات براي شناسايي پنجره بازيه.
حتما نبايد از كدهاي صفحات قبل عينا براي ترينر خودتون استفاده كنيد.
مثلا كد vice City كه مرتضي جان گذاشته بود قواعد و خواص خودشو داره .

((اصلا فكر نميكردم اين تاپيك دوباره بياد بالا)) :blink:

mshiraz.2006
19-09-2006, 05:58
من درست متوجه نشدم ....لطفا واضح تر بگید


به نام خدا

شما مي تونيد يه برنامه كه فقط با همون چند خط نوشته شده باشه براي يه بازي بنويسيد ؟

اگر ميشه لطف كنيد براي تست يه ترينر بسازيد تا من نگاش كنم ببينم چيزي مي فهمم يا نه؟

با تشكر..

mshiraz.2006
21-09-2006, 08:03
به نام خدا

کسی نبود جواد پست بالایی رو بده؟

salar2010
26-09-2006, 04:41
اقا دست همتون درد نكنه ميشه چند تا سورس ترينر هم بزاري از بازي Gta

vorojax
26-09-2006, 17:59
تو يكي از پستا سورس يه ترينر هست بگردي پيدا ميشه

H A M A S
27-09-2006, 04:18
آقا ما اين نحوه ساختن ترينر تو صفحه سوم ميخواهيم دانلود كنيم ميگه اين فايل پاك شده!
چكار كنم؟ :sad:

vorojax
27-09-2006, 15:47
قسه خوردی دوست عزیز یه 2روز دندون رو جیگر بزار قول میدم خودم برات اپلودش کنم

H A M A S
28-09-2006, 04:01
قسه خوردی دوست عزیز یه 2روز دندون رو جیگر بزار قول میدم خودم برات اپلودش کنم
فقط تو رو خدا زود تر من با ديدن مطالب شما ميخواهم که ببينم ميتونم يه ترينر درست کننم
ممنون

*Batman*
29-09-2006, 02:32
FLOWER CITY بايد كمي از T-Search بدوني و بتوني آدزس ها رو پيدا كني.
VB فقط مقادير رو در آدرس مورد نظر مينويسه.اصل ماجرا پيدا كردن آدرسهاست.

لينك دانلود برنامه(T-Search 1.6)

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

يه آموزش مقدماتي از T-Search:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

H A M A S
29-09-2006, 03:39
از لطف شما دوستان گرامی ممنونم حالا باید ببینم میتونم ترینر درست کنم یا نه

MARTIN
09-10-2006, 21:30
دوستانی که در این زمینه فعالیت کردن ایا سورسی دارید که یه بایت را از ادرسی که ما می خواهیم از یک پروسه (((بخواند)))
با تشکر

vorojax
14-10-2006, 15:25
دوست عزيز تلفنمون فعلا يه طرفست
اگه يه مدت صبر كني خودم برات سورس يه ترينر مي زارم

MARTIN
14-10-2006, 16:38
دوست عزيز تلفنمون فعلا يه طرفست
اگه يه مدت صبر كني خودم برات سورس يه ترينر مي زارم
دوستان لطف کردن یه سورس توپ برام قرار دادن ;) ....

black_storm
17-10-2006, 19:24
اقا من دارم openGL کار می کن تو وی بی
-
ساخت بازی های سه بعدی
شاید بتونم کمکت کنم
اسمم فرهاد
یه ندا بده

HAMIDZRK
25-10-2006, 23:26
لطفا درصورت امکان برنامه های ویژوال بیسیک رابنویسید متشکرم حمید

Shahriar-b
14-11-2006, 16:33
کسی سورس ترایند برای دلفی را نداره ؟؟آخه ما که با دلفی کار میکنیم باید چیکار کنیم ؟؟

Shahriar-b
18-11-2006, 17:23
كسينبود جواب ما رو بده ؟؟

ALt3rnA
18-11-2006, 17:41
گیم لایف برو بخش دلفی

Shahriar-b
19-11-2006, 15:59
من كل انجمن دلفي رو گشتم ولي چيزي پيدا نكردم !!

mike_3000
20-11-2006, 07:03
باسلام خدمت همه دوستان
یک سئوال دارم هر که میدونه لطفا جواب بده
من ویژوال استدیو 2005.دات نت را یک بار نصب کردم روی سیستمم خب کار کرد ولی بار دوم که ویندوز را عوض کردم دیگه کار نکرد
یعنی به خوبی نصب می شه ولی در پایان وقتی برنامه را اجرا می کنم این پیام رو میده:
the data period is over
now you can remove visual studio 2005.net from your computer
کی میتونه مشکل منو حل کنه هر که میدونه لطف کنه بگه
what should i do? please tel me