oncelikle editlemek istedimiz yerin memory adresini bulmamız gerek
program
Burdan
Bu programı kullanmayı bilmyosanız hic bulaşmayın
yinede biraz anlatıyım programı oyun acıkken calıştırın ve ustteki open process butonuna tıklayarak editlemek istediyiniz oyunu acın search butonundan editlemek istediyiniz vaule yi bulun ve bikac deyişiklik yapıp next searc yapin farkı bulun mesela redalerd gibi oyunlarda parayı editlemek istedinizde once olan parayı aratıp sonra biraz harcayıp farkı bulun
'---------------------------modul başlangıc------------------------------
'Once Ram'e yazmak icin gerekli api'leri deklare edelim.
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
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 ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal 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
'Şimdi de fonksiyonumuzu yazıyoruz.
Public Function Longyaz(Offset As Long, WindowName As String, Value As Long) As Boolean
Dim hwnd As Long
Dim ProcessID As Long
Dim ProcessHandle As Long
'Once oyunun pencere numarasını bulalım;
hwnd = FindWindow(vbNullString, WindowName)
If hwnd = 0 Then 'Oyun şuanda acık değilse
MsgBox "Oyun şuanda acık değil!", vbCritical, "Yazma Hatası" 'oyun acıkdeyilse bu hatayı versin isterseniz silebilirsiniz
Exit Function
End If
GetWindowThreadProcessId hwnd, ProcessID
ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID)
If ProcessHandle = 0 Then
Exit Function
End If
WriteProcessMemory ProcessHandle, Offset, Value, 4, 0& 'Değeri yazıyoruz
CloseHandle ProcessHandle 'Yazma işlemi bitti, pencere kulbunu kapatıyoruz
End Function
'------------------buraya kadar--------------------------
KULLANILIŞI:
Ben bu konuda ornek olarak half -life adlı oyunu icin bi kod yazdım mermi bitmemesi icin
''boş bi form oluşturun ve ustune 1 command butonu ekleyin
'Temsil edecek. Modulun kullanılışı tek satır. Değiştirmek istediğimiz her değer icin bu tek satırı tekrarlayacaz.
'KULLANIM: Longyaz hafıza_adresi, oyunun_pencere_yazısı, yazılacak_değer
Şoyle ki,
'------------------------Oyun icin---------------------------------------
Private Sub Command1_Click()
Longyaz &HD5E104, "Half life", 60 'mermi
End Sub
'--------------------------------------------
'unutmamanız gereken memory adresini yazarken başında &H olmasına dikkat edin ornekte gosterdiyim gibi
'pencere adresini bulmak icin oyunu simge durumuna kucultup mouse le ustune geldinizde gorunecektir
Hak ettiysem rep verebilirsiniz
not: alıntıdır
__________________
Vb-Trainer yapımı
Programlama0 Mesaj
●21 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- Vb-Trainer yapımı