حقیقت من الان دارم عکسای اموزش تی سرچمو اپلود میکنم ولی بعدا مطمءن باشید میزارم
Printable View
حقیقت من الان دارم عکسای اموزش تی سرچمو اپلود میکنم ولی بعدا مطمءن باشید میزارم
بازم اين گيم هكر دمت گرم
به نام خدا
با سلام خدمت همگی من آمده ام با دست پر اگر با زبان انگلیسی مشکلی ندارید یک سایت آموزش ساخت تراینر معرفی کنم در ضمن من نیز در آن سایت همکار مدیر کل سایت هستم پس با این همه مشغله کاری توقع نداشته باشید هر روز سر بزنم در ضمن وروجکس جان خیلی ممنون اگه از گیم هکر راضی باشی انگار از من راضی هستی پس پاچه خواری ممنوع !
آدرس سایت : [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگر مشکلی داشتید از اول تابستان به بعد ما منتظر نظراتتان هستیم !
بچه من نمی دانم شماها چی خواستید و ما نگذاشتیم!!!؟
به نام خدا
در جواب دوست گرانقدر گیم هکر جان عرض کنم که اون موضوعی که من در پست های قبلی مطرح کردم به هیچ عنوان به فارسی سازی بازی ها ربطی نداشت بلکه 100% به هک کردن بازی مرتبط بود .
راستی دوست عزیز چرا تاپیک هک کردن بازی را کند پیش می بری .
مرتضی جدا راست میگی؟؟؟؟ تو دستیار رییس گروه ces هستی؟؟
اگه راست میگی بگو ببینم شیخ عادل کیه؟؟؟
دوستان شرمنده یکم هیجانی زدم....
=========================
اول اینکه باز شدن سایت ces رو به همه تبریک میگم
دوم اینکه من همین امروز امتحاناتم تموم شد خب معلومه که دیر به دیر میومدم
سوم اینکه هنوز اموزش ها رو توی سایت قرار نداده اند ولی من ارشیو همه رو دارم اگه چیز خاصی مد نظرتونه پی ام بدید
چهارم اینکه به دوستانی که به اقای مرتضی شک دارن بهتره بگم:
اگه بلد نبود که نمیومد اینجا پست بده
اگه بلد نبود با اون همه حرفی که شما زدین پشت سرش امکان نداشت اینجا پست بده
پنجم هم اینکه اقای مرتضی ایدی یاهوتو اگه داری بده کارت دارم
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
به نام خدا
کدهای زیر رو کجا باید وارد کرد؟
میشه یه کم بیشتر توضیح بدید؟
اقايه توضيح كوچكولو هم بده دمت گرم
نقل قول:
نوشته شده توسط gamehackir
به نام خدا
با تشکر قربانت از این همه آقایی ...
در ضمن امیدوارم که موفق بوده باشی در امتحانات ! :blush: :blush: :blush:
این کدهایی را که الان گذاشتی زودتر از این توقع داشتم بگذاری چون ناسلامتی حرفه ای هستی دیگه !
راستی به سایتی که گذاشتم رفتی خیلی عالیه !
در ضمن من هنوز امتحاناتم تمام نشده 2 ، 3 تایی مونده ولی مهم نیست در ضمن اگر در اداره کردن این تاپیک همراهی کنی مرا خوشحال می شوم تا موقع رهایی از امتحانات. :blink:
به نام خدا
با سلام
بابا یکی یه ذره در مورد طریقه وارد کردن کدها توضیح بده
ثوابش کمتر از خود کدها نیست ها.
با با من که بتون گفتم مبتدی باشید نمی تونید کاری بکند
به نام خدا
با سلام خدمت حاضرين در اين سايت ...
کدهاي زير مربوط به سايت تراينر در ويژوال بيسيک 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
در ضمن ببخشيد گيم هکر جان من فراموش کردم بگم که آي دي دارم ولي اصلا حوصله چت کردن ندارم .
پيشنهاد مي کنم که از طريق پيغام خصوصي با يکديگر در ارتباط باشيم .
-------------------------------------------------------------------------------------------------------------------------------------------------
در ضمن حرف گیم هکر تایید می شود
شماها اول برید یک کمی برنامه نویسی یاد بگیرید و بعد می فهمید که این همه کد چه فایده ای دارند .
نقل قول:
نوشته شده توسط mshiraz.2006
به نام خدا
با سلام خدمت شما دوست عزیز ...
امیدوارم از کدهایی که گذاشته ام چیزی دستگیرتان شده باشد در غیر این صورت من را مطلع سازید تا یک کار دیگری برای شما عزیزان بکنم
نقل قول:
نوشته شده توسط mshiraz.2006
به نام خدا
با سلام خدمت شما دوست عزیز ...
امیدوارم از کدهایی که گذاشته ام چیزی دستگیرتان شده باشد در غیر این صورت من را مطلع سازید تا یک کار دیگری برای شما عزیزان بکنم .
در ضمن من از گیم هکر رسما می خواهم که اگر می تواند که می دانم می تواند به من کمک کند تا این تاپیک را ادامه
بدهیم .
راستی گیم هکر جان که حتی اسم کوچکت را هم نمی دانم شما در پست های قبلی گفته بودید که می توانید مثلا تراینری بسازید که از دیوار رد بشی و ... اگه ممکن است یک نمونه را برای من مثال بزن . :blink:
مصطفی جان لطفا پیغام خصوصیتو چک کن
به نام خدا
با سلام مجدد ... امروز یک کار خارق العاده آوردم و آن هم ساخت تراینر برای 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 بده ...
به نام خدا
در ضمن هر بازی ای خواستید بگید اگر داشتم بازم تکرار می کنم اگر داشتم بازی را براش تراینر می سازم .
به سبک PizzaDox
فقط 2 تا امتحان دیگر مانده دعا کنید همه را خوب بدم کولاک می کنم ....
By Morteza_SOS
به نام خدا
اینم سورس برای اجرای بازی و چند کار دیگر مثلا بارگذاری و ... که دیگه نیاز به توضیح نداره که خودش یک جورایی تراینر ولی زیاد کامل نیست .
کد:
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
به نام خدا
با سلام
آقا مرتضی یه برنامه با حجم حدود 35 کیلوبایت تو چند صفحه قبل گزاشتید که ما هرچی پسوردش رو می زنیم قبول نمی کنه
میشه یه لطف کنید برام ایمیل بزنیدش.
با تشکر
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] i k
به نام خدا
با سلام
آقا مرتضی یه برنامه با حجم حدود 35 کیلوبایت تو چند صفحه قبل گزاشتید که ما هرچی پسوردش رو می زنیم قبول نمی کنه
میشه یه لطف کنید برام ایمیل بزنیدش.
با تشکر
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نقل قول:
نوشته شده توسط mshiraz.2006
به نام خدا
با سلام خدمت شما دوست عزیز !
البته که پسورد را قرار می دهم ولی شرمنده نمی توانم ایمیل بزنم چون اصلا وقت ندارم ....
پسورد :
.Morteza_SOS_Trainer_Template_***_For_Iranian
به نام خدا
با سلام
خب آقا مرتضی از همون اول بگو باید پسورد رو تایپ کنیم نه کپی
حالا مال من یکی که اینجوری بود مال لقیه رو نمی ذونم
با تشکر از شما دوستان خصوصا آقا مرتضی
به نام خدا
با سلام
آقا مرتضی وقتی که صفحه راهنمای آبیه میاد باید چه کارش کنی؟
نقل قول:
نوشته شده توسط mshiraz.2006
به نام خدا
با سلام خدمت شما دوست عزیز ...
شما به آن صفحه آبی کاری نداشته باشید بلکه ابتدا برنامه ویژوال بیسیک 6 را نصب کنید و بعد سورس را بارگذاری کنید و تغییرات لازمه را اعمال کنید در ضمن در کد نیز توضیح داده شده پس فکر نکنم دیگه نیاز به توضیح باشه ;)
به نام خدا
با سلام
ممنون
تازه فهمیدم باید چه کار کنم
به خودم خسته نباشید میگم
با تشکر
نقل قول:
نوشته شده توسط mshiraz.2006
به نام خدا
با سلام مجدد خدمت شما دوست عزیز از این حرف شما بسیار خوشحالم .
اگر احیانا با مشکلی برخوردید ما یا بهتر است بگم من در خدمتم . :blush:
خدا رو شکر اخرش یکی از تاپیک استفاده برد
==================================
اقا مرتضی میگم این تاپیکو توی انجمن بازی بزنید بهتره چون گیمر ها زیاد به انجمن برنامه نویسی سر نمیزنن
نقل قول:
نوشته شده توسط gamehackir
به نام خدا
با سلام و تشکر از تیکه ای که به ما انداختی ولی دیگه از این کارا نکن :angry: :angry: :angry: :angry: :angry:
=================================
در ضمن با ایجاد تاپیک جدید مخالفم ... چون سایر دوستان سردرگم می شوند ولی اگر شما این کار را مفید می دانید
چشم به روی چشم سمت راستم . :biggrin:
در ضمن اون تیریپ جذبه ای که در بالا آمدم را زیاد جدی نگیر چون من و تو که دیگه از این حرفا نداریم . :cool:
در ضمن مهدی جان یک سورپرایز عالــــــــــــــــــی برایت دارم .
از طریق پیغام خصوصی می فرستم . :cool: :cool: :cool:
به نام خدا
با سلام
یه سوال
شما برای کلید "f1" کد 101 رو وارد کردید.
چه جوری میشه کد بقیه کلیدهای صفحه کلید رو بدست آورد؟
با تشکر از زحمات شما
سلام.
مرتضي جان دستور زير بايد Private باشه وگرنه خطا ميده:
پردازه WriteInteger قبلا تعريف شده يا مال خود VB هستش؟نقل قول:
Public Const TH32CS_SNAPPROCESS = &H2
اگه امكان داره كدها رو به صورت مرتب ((شلوغ نباشه)) براي دسترسي به آدرس و مقدار دهي در آن بگذاريد.
كدهاي gamehackir خوب بود ولي اگه دوبله ميشد بهتر بود. :blush:
gamehackir جان كدهاي شما رو بايد با آب طلا نوشت.
تو فاصله زماني پست قبلي تا الان تونستم با كدهاي شما يه ترينر براي بازي Game House Super Pop & Drop! بسازم.
دستت درد نكنه.
نقل قول:
نوشته شده توسط Morteza_SOS
به نام خدا
با سلام
شما برای کلید F1 کد 101 رو وارد کردید.
چطوری کد بقیه کلیدهای صفحه کلید رو پیدا کنم
آیا نرم افزاری است یا در خود ویژوال بیسیک میشه پیدا کرد؟
با تشکر
كد ها بايد در فرم قرار بگيرند
با تشكر!!!!!!!!!!!
سلام
این فقط تاپیک مخصوص : ساخت ترینر توسط ویژال بیسیک بود
در كل خوب بود اما براي ما دلفي كارها هيچ بدرد نمي خوره.
پس دلفی کار ها چی ؟! چیکار کنند؟
در صورتی که ویژال بیسیک هم بلد نباشند.
و در صورتی هم که در دلفی حرفه ای باشند!
اگر اینطور باشه اون شخص باید دلفی را رها کند و به ویژال بیسیک کار کنه؟؟؟؟؟؟
پس بهتره هر کی که کد های مخصوص ساخت تیرینر با دلفی پیدا کرد بزاره توی تاپیک :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نقل قول:
نوشته شده توسط prance3
به نام خدا
با سلام
منظورم رو نگرفتی
اون کدها رو باید از کجا گیر آورد؟
یا بهتره بگم ( هر کلید تو کیبرد چه کدی داره ) مثلا اگه کد کلید F1 عدد 101 کلید F2 کدش چیه؟
امیدوارم منظورم رو بفهمی؟
با تشکر
اشنایی بیشتر به اعداد سیستمی (برای اشنایی با ادرس ها و متغیر ها )
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,
به نام خدا
عزیز این ها رو در جواب سوال من نوشتی؟