Jump to content

Trainer Yapımı


dj_eray

Recommended Posts

Meraba Arkadşlar

Public Class Form1

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, ByVal lpdwProcessId As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddressAsAny As Integer, ByRef lpBufferAsAny As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer

Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddressAsAny As Integer, ByRef lpBufferAsAny As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

On Error Resume Next 'Hata oluşursa görmezden gel devam et

Dim hWnd As Long, pID As Long, hProcess As Long, adres As Long, buffer As Long 'Değişken tanımlamaları Long olarak tanımlıyoruz çünkü integerin sınırı olan 32767 den büyük değerler var

adres = &H1005194 'Buraya Cheat Enginede bulduğunuz adresi başına '&H" koyarak yazın,&H hexi(16 lık sayı sistemini) ifade ediyor

buffer = CLng(TextBox1.Text) 'Text1 de yazanı sayıya çeviriyoruz

hWnd = FindWindow(vbNullString, "Mayın Tarlası") 'Pencere handlesi alınıyor

GetWindowThreadProcessId(hWnd, pID) 'Process Id aliyoruz

hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pID) 'Processi tam yetkiyle açıyoruz

If (WriteProcessMemory(hProcess,
Byval
adres, buffer, 4, 0&)) = 1 Then 'Eğer hafızaya yazılmışsa 1 değeri döner

MsgBox("İşlem başarıyla tamamlandı", vbInformation)

Else

MsgBox("Bir hata oluştu", vbCritical)

End If

CloseHandle(hProcess) 'OpenProcess ile açtığımız handleyi kapatıyoruz..

End Sub

End Class

Yukarıdaki Byval Altı Çziliyor Neden Acaba Bir Yerde Hatamı Yaptım Bir Kontrol edermisiniz ?

Link to comment
Share on other sites

arkadas basit bir sekilde trainer yapimi icin gerekli kodlari vermis eve gidince deniyecegim .kendine gore editlimelisin bu kodlari tabi

Edit : Telefonda okumaya kalkınca boyle oluyor kusura bakmayın yanlıs anlamısım.

Link to comment
Share on other sites

  • 6 ay sonra...

    Public Class Form1

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, ByVal lpdwProcessId As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddressAsAny As Integer, ByRef lpBufferAsAny As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddressAsAny As Integer, ByRef lpBufferAsAny As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    On Error Resume Next 'Hata oluşursa görmezden gel devam et
    Dim hWnd As Long, pID As Long, hProcess As Long, adres As Long, buffer As Long 'Değişken tanımlamaları Long olarak tanımlıyoruz çünkü integerin sınırı olan 32767 den büyük değerler var
    adres = &H1005194 'Buraya Cheat Enginede bulduğunuz adresi başına '&H" koyarak yazın,&H hexi(16 lık sayı sistemini) ifade ediyor
    buffer = CLng(TextBox1.Text) 'Text1 de yazanı sayıya çeviriyoruz
    hWnd = FindWindow(vbNullString, "Mayın Tarlası") 'Pencere handlesi alınıyor
    GetWindowThreadProcessId(hWnd, pID) 'Process Id aliyoruz
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pID) 'Processi tam yetkiyle açıyoruz

    If (WriteProcessMemory(hProcess, Byval adres, buffer, 4, 0&)) = 1 Then 'Eğer hafızaya yazılmışsa 1 değeri döner
    MsgBox("İşlem başarıyla tamamlandı", vbInformation)
    Else
    MsgBox("Bir hata oluştu", vbCritical)
    End If
    CloseHandle(hProcess) 'OpenProcess ile açtığımız handleyi kapatıyoruz..
    End Sub
    End Class

Böyle daha iyi anlaşılıyor ancak biraz karışık.

If (WriteProcessMemory(hProcess, Byval adres, buffer, 4, 0&)) = 1 Then

Yukarıdaki bölüme değeri değişecek adres ve yeni değer yazılacak.

NOT : Kodlar sadece VB6'da çalışır.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...