EMO Style ForumPro - Hos Geldiniz
Giriş yap

Şifremi unuttum

Istatistikler
Toplam 203 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: posta59

Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Arama
 
 

Sonuç :
 


Rechercher çıkıntı araştırma

RSS akısı


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Anahtar-kelime

Kimler hatta?
Toplam 4 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 4 Misafir

Yok

[ Bütün listeye bak ]


Sitede bugüne kadar en çok 217 kişi C.tesi Tem. 29, 2017 1:46 am tarihinde online oldu.
En son konular
» İnternetten Para Kazandıran Oyun ! Ödeme Alt Limiti Yok ! DEV KONU
Cuma Ağus. 29, 2014 8:33 am tarafından Hello EMO

» goldenchase.net maden yaparak para kazanma
Cuma Ağus. 29, 2014 8:18 am tarafından Hello EMO

» etichal hacker görsel egitim seti
Çarş. Ağus. 06, 2014 4:57 am tarafından Hello EMO

» KO TBL Source C#
Ptsi Ara. 09, 2013 6:36 am tarafından Hello EMO

» x86 Registers
C.tesi Ağus. 24, 2013 5:02 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de WYD
Çarş. Tem. 10, 2013 7:25 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de CS Metodo²
Çarş. Tem. 10, 2013 7:23 am tarafından Hello EMO

» [Tutorial] Aprendendo basico deASM OLLYDBG
Çarş. Tem. 10, 2013 7:22 am tarafından Hello EMO

» Basic C# DLL injector
Ptsi Tem. 08, 2013 7:48 am tarafından Hello EMO

Reklam

[Tutorial] GameHacking mit VB.Net [German]

Önceki başlık Sonraki başlık Aşağa gitmek

[Tutorial] GameHacking mit VB.Net [German]

Mesaj tarafından Hello EMO Bir Ptsi Ara. 13, 2010 5:14 am

[QUOTE=*GuideMan*;3883468]

[SIZE="7"]GameHacking mit VB.Net[/SIZE] by *GuideMan*

In diesem Tutorial werde ich euch zeigen wie man mit Cheat Engine und anschließend mit Visual Basic die Punkteanzahl in Solitär verändern kann.



Benötigte Software:
- Cheat Engine 5.5
- Visual Basic 2008 Express Edition

Fangen wir an

Zunächst öffnen wir Solitär (XP: Start > Alle Programme > Spiele > Solitär):


Gut. Als nächstes öffnen wir Cheat Engine und wählen den Prozess "sol.exe" aus. (Dieser steht für "Solitär.exe"):


In Cheat Engine haben wir nun ein umfangreiches Interface.
Ich habe auch das in diesem Bild beschrieben:


So. Da wir jetzt in Solitär 0 Punkte haben, suchen wir jetzt einfach mal nach 0.
Aber wie geht das?
Ihr gebt im Suchfeld "0" ein und klickt auf "First Scan".
Jetzt sucht Cheat Engine im Prozess "sol.exe" (Solitär) nach dem Wert 0.
Oh, jetzt haben wir aber ganz schön viele Adressen im Adress Fenster:


Das sind jetzt alles Adressen die den Wert "0" enthalten.
Jetzt wollen wir aber nur die Punkte Adresse haben.
Das heist wir spielen jetzt in Solitär solange bis wir einige Punkte haben.
Sagen wir, wir spielen solange bis wir 5 Punkte haben.
Das müsste ziemlich schnell gehen.

Jetzt wechseln wir schnell wieder zu Cheat Engine und geben im Suchfeld "5" ein und klicken auf "Next Scan"! Jetzt sucht Cheat Engine nach einem Wert der zuerst 0 war, jetzt aber 5 ist:


Jetzt kann es aber durchaus vorkommen das trotzdem noch sehr viele Adressen da sind.
Jetzt warten wir einfach bis in Solitär die Punkte wieder auf 0 gefallen sind und suchen in Cheat Engine nach 0. Wir klicken natürlich wieder auf "Next Scan".
Cheat Engine sucht jetzt nach einem Wert der zuerst "0" war, dann "5" wurde und jetzt wieder "0" ist.
Jetzt müsste nur noch eine Adresse übrig bleiben:


Das ist jetzt unsere Punkte Adresse.
Wenn wir jetzt doppelt auf die Adresse klicken, wird die Adresse unten hinzugefügt:


Jetzt können wir den Wert bliebig verändern.
Dazu klicken wir mit der Rechten Maustaste auf die Adresse im Unteren Fenster und klicken auf "Change Record" und dann auf "Value".
Jetzt öffnet sich ein kleines Fenster in dem wir einen neuen Wert eingeben können:


Dann klicken wir auf "OK" und wechseln zu Solitär.
Dort ist jetzt der neue Wert übernommen worden:


So, das war jetzt nicht sehr schwer, da die meiste Arbeit von Cheat Engine erledigt wurde.
Doch jetzt wollen wir diese mit Visual Basic.Net erledigen.


Zuerst öffnen wir die Microsoft Visual Basic 2008 Express Edition.
Jetzt haben wir ein noch größeres Interface als in Cheat Engine am Bildschrim.
Dieses werde ich euch auch jetzt wieder erklären:


Jetzt klicken wir oben auf "Datei" und dann auf "Neues Projekt".
Jetzt kommt ein Fenster auf dem wir verschiedene Vorlagen auswählen können.
Unter anderem gibt es dort auch Vorlagen für Hacks (*.dll) Files und ein Normales Programm.
Da wir nur Solitär "hacken" wollen, brauchen wir keine *.dll sondern nur ein Normales Programm.
Dazu wählen wir die "Windows Form-Anwendung" aus.
Jetzt können wir unserem Hack noch einen Namen geben. Nennen wir das Projekt doch "Solitär Hack".
Dann klicken wir auf "OK".
Die Visual Basic Express Edition wird nun unser Projekt vorbereiten.
Das kann einige Sekunden dauern.
Sobald dies geschehen ist, sehen wir wieder ein sehr umfangreiches Interface das ich wieder hier beschrieben habe:


Zunächst ziehen wir einen Button auf die Form.
Dazu klicken wir auf den Toolbox Button der Links neben der Form ist.
Dann öffnet sich ein Fenster in dem wir viele Steuerelemente auswählen können.
Die wichtigsten sind:
- Button
- Label
- Textbox
- Checkbox
- Radiobox
- Listbox
Wir klicken auf den Button und ziehen ihn auf die Form.
Dann klicken wir doppelt auf den Button.
Jetzt öffnet sich ein Codefenster:
Kod:

Public Class Form1

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


    End Sub

End Class

Kod:

Public Class Form1
Das ist die Einleitung der Form1.
Diese wird bei jeder Form benötigt.
Subs und Funktionen können nur ein einer gültigen Klasse (Class) ausgeführt werden.

Kod:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dies ist die Einleitung eines Buttons.
Auch diese kann nur in einer gültigen Klasse (Class) getätigt werden.

Kod:

End Sub
Schliest den Button wieder ab.

Kod:

End Class
Schliest die Klasse (Class) wieder ab.

Jetzt schreiben wir zwischen
Kod:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
und
Kod:
End Sub
das hinein:
Kod:

Dim p As Process() = Process.GetProcessesByName("sol.exe")
If Not p.Length = 0 Then
        Memory.Writememory(p, "&HAA0D8", "505", "4")
        Else
        MsgBox("Der Prozess sol.exe wurde nicht gefunden!")
End If
Aber was bedeutet das?

Kod:

Dim p As Process() = Process.GetProcessesByName("sol.exe")
Hier wird die Varialbe "p" deklariert, und wir sagen ihr, dass sie der Prozess "sol.exe" sein soll.

Kod:

If Not p.Length = 0 Then
Wenn der Prozess nicht leer ist, also wenn er existiert dann...

Kod:

Memory.Write(p, "&HAA0D8", "505", "4")
Das ist jetzt die wichtige Stelle im Code.
Mit dieser Zeile ändern wir die Punkte bei Solitär in "500".
"p" ist der Prozess "sol.exe". Dies müssen wir angeben damit das Programm weiß in welchen Prozess die Adresse geändert werden muss.
"&HAA0D8" ist die Adresse des Wertes der Punkte.
"500" ist der Wert in die die Punkte geändert werden.
"4" sind die Bytes. Das ist für uns unwichtig.

So aber nun wird die stelle
"Memory.Write(p, "&HAA0D8", "505", "4")" blau unterringelt.
Warum?
Ganz einfach. Weil Visual Basic nicht weis was "Memory.Write" ist.
Um das Problem zu beheben klicken wir in der Toolleiste auf das 3. Symbol von links.
Dann öffnet sich ein Fenster.
Dort wählen wir das "Modul" aus und nennen es Memory.
Jetzt löschen wir den gesammten Code der in der Memory.vb ist und schreiben folgenden Code hinein:
Kod:

Module Memory
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function WriteFloatMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function ReadFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef buffer As Single, ByVal size As Int32, ByRef lpNumberOfBytesRead As Int32) As Boolean
    Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public RBuff As Long
    Public RBuff2 As Single
    Public RBuff3 As Integer

    Public Function Writememory(ByVal ProcessName As Process, ByVal Address As Integer, ByVal Value As Long, ByVal Bytes As Integer)
        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)

        CloseHandle(processHandle)

    End Function

    Public Function ReadFloat(ByVal ProcessName As Process, ByVal Address As Single)

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Address, RBuff, 4, Nothing)

        CloseHandle(processHandle)

        Return RBuff

    End Function

    Public Function WriteFloat(ByVal ProcessName As Process, ByVal Address As Integer, ByVal Value As Single)

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        WriteFloatMemory(processHandle, Address, Value, 4, Nothing)

        CloseHandle(processHandle)

    End Function

    Public Function ReadLong(ByVal ProcessName As Process, ByVal Address As Integer)

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Address, RBuff, 4, Nothing)

        CloseHandle(processHandle)

        Return RBuff

    End Function

    Public Function ReadFloatPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short)

        Dim fullAddress As Long

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)

        fullAddress = RBuff + Offset

        ReadFloat(processHandle, fullAddress, RBuff2, 4, Nothing)

        Return RBuff2

        CloseHandle(processHandle)

    End Function

    Public Function ReadLongPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short, ByVal Bytes As Integer)

        Dim fullAddress As Long

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)

        fullAddress = RBuff + Offset

        ReadProcessMemory(processHandle, fullAddress, RBuff3, Bytes, Nothing)

        Return RBuff3

        CloseHandle(processHandle)

    End Function

    Public Function WriteFloatPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Single)

        Dim fullAddress As Long

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)

        fullAddress = RBuff + Offset

        WriteFloatMemory(processHandle, fullAddress, Value, 4, Nothing)

        CloseHandle(processHandle)

    End Function

    Public Function WriteLongPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Long, ByVal Bytes As Integer)

        Dim fullAddress As Long

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)

        fullAddress = RBuff + Offset

        WriteProcessMemory(processHandle, fullAddress, Value, Bytes, Nothing)

        CloseHandle(processHandle)

    End Function

    Public Function NOP(ByVal ProcessName As Process, ByVal Address As Integer, ByVal value As Integer)

        Dim GameLookUp As Process() = Process.GetProcessesByName(ProcessName.ProcessName)

        If GameLookUp.Length = 0 Then

            End

        End If

        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, GameLookUp(0).Id)

        WriteProcessMemory(processHandle, Address, value, 1, Nothing)

        CloseHandle(processHandle)

    End Function

End Module

Diese Code braucht nicht kommentiert werden da er nur eine vereinfachung der Windows API ist.
Er ermöglicht euch das schreiben von Memory Hacking in VB.Net.

Wenn ihr nun F5 drückt, startet das Programm.
Dann startet ihr Solitär und klickt auf den Button im Solitär Hack.
Jetzt müsstet ihr 500 Punkte haben. Oder halt die Punktanzahl die ihr im Code eingegeben habt.

Das war die überarbeitete Version von *GuideMan*
Ich hoffe das ihr das Tutorial verstanden habt. Wenn ja könnt ihr dieses Beispiel jetzt auf alles andere wie Online Games, Flash Games usw. übertragen.
COPYRIGHT BY *Guideman*.
Kopieren nicht erlaubt! Verlinken ist erlaubt.


Liebe Grüße, Michael.[/QUOTE]


Hello Kitty
vs
eMoStyLe



avatar
Hello EMO
EMO Team
EMO Team

Cinsiyet : Erkek
Burçlar : Yay
Yılan
Mesaj Sayısı : 935
Puan : 254793
Rep Puanı : 18
Doğum tarihi : 28/11/89
Kayıt tarihi : 21/07/09
Yaş : 27
Nerden : EMO WorlD
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO

Kullanıcı profilini gör http://emostyle.myforumpro.com

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz