PDA

View Full Version : سوال: ترینر با ویبی



atige007
جمعه 06 مرداد 1391, 04:16 صبح
سلام
من تمام ادرس های حافظه gta sa رو پیدا کردم
حالا میخوام با ویبی این مقادیر رو تغییر بدم(ترینر)
کسی میتونه کمکم کنه؟

محسن واژدی
جمعه 06 مرداد 1391, 04:58 صبح
سلام علیکم
تاپیک زیر را بررسی کنید:
http://barnamenevis.org/showthread.php?304546-ترینر-سازی (http://barnamenevis.org/showthread.php?304546-%D8%AA%D8%B1%DB%8C%D9%86%D8%B1-%D8%B3%D8%A7%D8%B2%DB%8C)

موفق باشید

the king
جمعه 06 مرداد 1391, 05:07 صبح
سلام
من تمام ادرس های حافظه gta sa رو پیدا کردم
حالا میخوام با ویبی این مقادیر رو تغییر بدم(ترینر)
کسی میتونه کمکم کنه؟
من اینو برای Counter Strike : Condition Zero نوشته بودم :

90284

اول باید Process مورد نظر رو پیدا کنید :
CreateToolhelp32Snapshot یک لیست از Process های در حال اجرا می سازه.
Process32First مشخصات اولین Process لیست رو اعلام می کنه.
Process32Next مشخصات Process های بعدی رو یکی یکی اعلام می کنه.
لیست رو پیمایش می کنید تا Process مورد نظر رو از روی مشخصات اش پیدا کنید.

وقتی Process مورد نظر پیدا شد باز اش می کنید و حافظه اش را می خوانید یا داخلش می نویسید :
OpenProcess یک Process رو باز می کنه.
ReadProcessMemory محتویات بخشی از حافظه یک Process رو می خونه.
WriteProcessMemory در بخشی از حافظه یک Process می نویسه.

کار تون که با Process تموم شد ببندیدش :
CloseHandle یک Process رو که قبلا باز شده می بنده.

M.T.P
جمعه 06 مرداد 1391, 13:30 عصر
من اینو برای Counter Strike : Condition Zero نوشته بودم :
سلام دوست عزیز

فرض کن در یک پروژه جدید داخل یه ماژولش داریم:

Public Const lngNumber As Long = 1
فقط همین
کامپایل و اجرا می کنیم.

حالا با توجه به سورس بالا می تونید مقدار متغیر مذکور رو از یک به دو تغییر بدید؟

the king
جمعه 06 مرداد 1391, 14:31 عصر
سلام دوست عزیز

فرض کن در یک پروژه جدید داخل یه ماژولش داریم:

Public Const lngNumber As Long = 1
فقط همین
کامپایل و اجرا می کنیم.

حالا با توجه به سورس بالا می تونید مقدار متغیر مذکور رو از یک به دو تغییر بدید؟


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

M.T.P
جمعه 06 مرداد 1391, 14:57 عصر
اولا این متغیر نیست، ثابته، موقع کامپایل شدن جایگزین میشه.
بله حق با شماست ، ابتدا متغیر بود کد رو ویرایش کردم اما متن مربوطه رو نه.


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

the king
جمعه 06 مرداد 1391, 17:05 عصر
بله حق با شماست ، ابتدا متغیر بود کد رو ویرایش کردم اما متن مربوطه رو نه.


همین موضوع اینجاست که آدرس رو نمی دونیم اگه بدونیم که همه چی حله.
اون متغیری که می خواهید تغییر کنه مثل ذخیره گلوله در بازی ها نیست؟ فرضا اول 10 ئه، آدرس هر چی 10 در حافظه اش رو پیدا می کنند.
بعد یک گلوله شلیک می کنند و بعد دنبال متغیری می گردند که قبلا 10 بوده و حالا 9 شده. یکسری از آدرس ها مطابقت داره و بقیه نادیده گرفته میشه.
اگه هنوز تعداد آدرس ها زیاد بود یک گلوله دیگه شلیک می کنند دنبال متغیری می گردند که قبلا 10 بوده و بعدا 9 شده و حالا 8 ئه و ...