Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 15:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Simples Gamehacking via Memoryediting

Discussion on Simples Gamehacking via Memoryediting within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old 02/08/2012, 16:32   #46
 
elite*gold: 0
Join Date: Jan 2011
Posts: 387
Received Thanks: 139
SUper Tut gleich mal ausprobieren
Яonix is offline  
Old 02/12/2012, 13:55   #47
 
KennyJumpen's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 45
Received Thanks: 1
Super Tutorial
Ich finds ehrlich gesagt gut, dass dort Fehler drin sind.
Ich mein.. GRUNDLAGEN SOLLTE MAN SCHON BEHERRSCHEN BEVOR MAN SICH MIT MEMORY EDITING BEFASST!

Win7 64 Bit klappt hervorragend!
KennyJumpen is offline  
Old 02/12/2012, 15:37   #48


 
Ajax1337's Avatar
 
elite*gold: 52
Join Date: Apr 2010
Posts: 482
Received Thanks: 100
nice tut
Ajax1337 is offline  
Old 06/01/2012, 18:45   #49
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
hey @ all,

gerade für den Anfang, sry für das aufwühlen von dem Alten post!!

echt ein supi tut, nur aus irgent einem grund geht es bei mir nicht. ich bekomme keinen Fehler aber z.b. ich mache es zum testen mit Solitaire und da werden die punkte nicht angenommen.


mein fehler, ich habe nur die adresse ausgelesen, nicht den Base Pointer.

was mich aber interesieren würde, gibt es ein gutes tut dafür? den den basepointer zu finden ist nicht so leicht, da ich bei Solitär 3 pointer habe die zur gleichen addrese gehen und auch gleich oft, immer wen sich der punktestand ändert.

mfg
.Scare™ is offline  
Old 01/23/2013, 20:32   #50
 
mördan1337's Avatar
 
elite*gold: 100
The Black Market: 125/0/0
Join Date: Jan 2013
Posts: 481
Received Thanks: 51
Quote:
Originally Posted by LemoniscooL View Post
Hi!

@Shishidump mach es so:
Code:
Dim BaseAdress As Integer = &H105F1A58
Dim Offset As Integer = &HFC46C
Label2.Text = ReadLongPointer(Prozess1, BaseAdress, Offset, 255)
so funktionierts bei mir..

greetz
Hallo,

ich versuche gerade den Geldstand eines Spiels mit Mi4uric3s Tutorial zu ändern (Windows 7, 32bit).
Nachdem ich das Spiel gestartet hatte, las ich die Adresse mit Cheat Engine aus und alles funktionierte einwandfrei.

Da sich die Adresse beim Spielneustart ändert, wollte ich im nächsten Schritt Pointer verwenden.
Ich erhielt:

"RPG_RT.exe"+0009DBE8 -> 066EC900
066EC900 + 1C = 066EC91C

Dabei ist "066EC91C" meine endgültige, temporäre aber dynamische Adresse und "1C" der Offset.
Wenn ich es richtig verstanden habe, ist die Baseadress "066EC900", die jedoch auch dynamisch ist. Das liegt daran, dass die Adresse von "RPG_RT.exe" bei jedem Spielstart anders ist.

Meine Frage lautet nun im Bezug zum Tutorial:
Statt "ReadLong" benutze ich "ReadLongPointer" und statt "Writememory" "WriteLongPointer". Meine Schwierigkeit besteht nun darin, ein Argument für "BaseAdress" zu übergeben, da dieses, wie beschrieben, dynamisch ist.
Wie kann ich bei Benutzung dieses Programmes die Adresse des "RPG_RT.exe"-Prozesses auslesen, damit ich diese in Form der Baseadress korrekt übergeben kann?
mördan1337 is offline  
Old 01/24/2013, 09:36   #51
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
Das Tutorial ist total behindert ich muss das dringend überarbeiten.
2009 hatte ich halt noch nicht wirklich viel Verständnis davon..

€dit: So habs mal überarbeitet, bitte gebt mir mal Rückmeldung dazu.
Mi4uric3 is offline  
Thanks
1 User
Old 08/14/2013, 21:18   #52
 
-Soni©-'s Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 933
Received Thanks: 93
TuT ist echt Super! Komme nach einigen malen durchlesen recht gut mit klar, doch habe ich i.wie ein Problem mit der Anwendung, bzw. werd ich nicht ganz draus schlau, was ich in die Anwendung schreiben soll.. Die NativeMethods hab ich fertig, alles so wie auf dem Screenshot, aber nett wäre vlt gewesen wenn du noch n Screen zu der Anwendung machst :/

Könnte das mal jemand übernehmen, also nen Screenshot von der(/dem) Anwendung(s-Code) machen ? Fänd ich sehr hilfreich :P

Sry fürs Pushen aber des würde mich sehr Interessieren
-Soni©- is offline  
Old 09/02/2013, 19:17   #53
 
elite*gold: 60
Join Date: Aug 2012
Posts: 227
Received Thanks: 79
Nice
but can anyone make a English tutorial Q,Q"
ramijafary1 is offline  
Old 09/08/2013, 16:30   #54
 
L!ghtning's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 3
Received Thanks: 1
gutes tutorial aber warum nicht einfach in C++ in ner .dll
wäre:

1. leichter
2. du kannst directx benutzen (etc.)
3. Du kannst wenn das game einen hackschutz besitzt einen hook coden der deinen hack undetected macht
4. du kannst einen bypass schreiben
5. alle funktionen sind schon vorhanden wie writeprocessmemory, openprocess (etc.)

L!ghtning is offline  
Thanks
1 User
Old 09/08/2013, 16:44   #55
 
davydavekk's Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 101
Received Thanks: 42
Good tutorial

But how do we do if we have to deal with multi-level pointers ?
davydavekk is offline  
Old 09/08/2013, 16:57   #56
 
-Soni©-'s Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 933
Received Thanks: 93
Quote:
Originally Posted by L!ghtning View Post
gutes tutorial aber warum nicht einfach in C++ in ner .dll
wäre:

1. leichter
2. du kannst directx benutzen (etc.)
3. Du kannst wenn das game einen hackschutz besitzt einen hook coden der deinen hack undetected macht
4. du kannst einen bypass schreiben
5. alle funktionen sind schon vorhanden wie writeprocessmemory, openprocess (etc.)

Du könntest ja mal ein TuT machen, wo diese Punkte ausführlich erklärt werden
-Soni©- is offline  
Old 09/13/2013, 13:43   #57
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
Quote:
Originally Posted by L!ghtning View Post
gutes tutorial aber warum nicht einfach in C++ in ner .dll
wäre:

1. leichter
2. du kannst directx benutzen (etc.)
3. Du kannst wenn das game einen hackschutz besitzt einen hook coden der deinen hack undetected macht
4. du kannst einen bypass schreiben
5. alle funktionen sind schon vorhanden wie writeprocessmemory, openprocess (etc.)

Wo ist der Sinn? Das hier ist ein VB.Net Tutorial, kein C++ Tutorial.

Quote:
Originally Posted by davydavekk View Post
Good tutorial

But how do we do if we have to deal with multi-level pointers ?
I made an example for that in the 1st post:
PHP Code:
Dim MyFloat As Single 0
Dim PointerValue 
As Integer 0
NativeMethods
.ReadInteger(&H401234PointerValue)
If 
PointerValue 0 Then NativeMethods.ReadInteger(PointerValue + &H1234PointerValue)
If 
PointerValue 0 Then NativeMethods.ReadSingle(PointerValueMyFloat
Mi4uric3 is offline  
Old 03/03/2014, 13:49   #58

 
Sergeant Wasabi's Avatar
 
elite*gold: 2
Join Date: Nov 2012
Posts: 148
Received Thanks: 17
Huhu,

Ich weiß das Tutorial ist ein wenig älter, ich habe aber ein Problem mit dem Code.
Ich kriege bei dieser Zeile immer einen StackOverflow

PHP Code:
NativeMethods.ProcessHandle NativeMethods.OpenProcess(NativeMethods.OpenProcess(&H1F0FFFFalsepid)) 
Mein gesamter Code
PHP Code:
Imports System.Runtime.InteropServices

Public Class Form1

    
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
        
If NativeMethods.OpenProcess(Process.GetProcessesByName("csgo")(0).Id) = True Then ' .exe weglassen, falls der (Spiele-)Prozess auf .exe endet. ' 
            
Label2.ForeColor Color.Green
            Label2
.Text "Injected"

            
Dim MyFloat As Single 0
            Dim PointerValue 
As Integer 0
            NativeMethods
.ReadInteger(&H401234PointerValue)
            If 
PointerValue 0 Then NativeMethods.ReadInteger(PointerValue + &H1234PointerValue)
            If 
PointerValue 0 Then NativeMethods.ReadSingle(PointerValueMyFloat)

            
Label4.Text MyFloat
        
Else
            
Label2.ForeColor Color.Red
            Label2
.Text "Fail!"
        
End If
    
End Sub
End 
Class

Public Class 
NativeMethods

    
<DllImport("kernel32.dll"SetLastError:=True)> _
    
Public Shared Function OpenProcess(ByVal DesiredAccess As IntegerByVal InheritHandle As BooleanByVal ProcessID As Integer) As IntPtr
    End 
Function
    <
DllImport("kernel32.dll"SetLastError:=True)> _
    
Private Shared Function CloseHandle(ByVal Handle As IntPtr) As Boolean
    End 
Function
    <
DllImport("kernel32.dll"SetLastError:=True)> _
    
Private Shared Function ReadProcessMemory(ByVal ProcessHandle As IntPtrByVal Address As IntPtrByRef Buffer As Byte(), ByVal Size As IntegerByRef NumberOfBytesRead As Integer) As Boolean
    End 
Function
    <
DllImport("kernel32.dll"SetLastError:=True)> _
    
Private Shared Function WriteProcessMemory(ByVal ProcessHandle As IntPtrByVal Address As IntPtrByVal Buffer As Byte(), ByVal Size As IntegerByRef NumberOfBytesWritten As Integer) As Boolean
    End 
Function

    Private 
Shared ProcessHandle As IntPtr IntPtr.Zero

    Friend Shared 
Function OpenProcess(ByVal pid As Integer) As Boolean
        NativeMethods
.ProcessHandle NativeMethods.OpenProcess(NativeMethods.OpenProcess(&H1F0FFFFalsepid))
        Return 
IIf(NativeMethods.ProcessHandle IntPtr.ZeroFalseTrue)
    
End Function

    
Friend Shared Function CloseHandle()
        If 
NativeMethods.ProcessHandle IntPtr.Zero Then Return False
        
Return NativeMethods.CloseHandle(NativeMethods.ProcessHandle)
    
End Function

    
Friend Shared Function ReadArray(ByVal Address As IntPtrByRef Buffer As Byte(), ByVal Size As Integer) As Boolean ' CE: Array of Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        
Return NativeMethods.ReadProcessMemory(ProcessHandleAddressBufferSize0)
    
End Function

    
Friend Shared Function ReadByte(ByVal Address As IntPtrByRef Buffer As Byte) As Boolean ' CE: 1 Byte ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {0}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer10)
        If 
ret True Then Buffer tBuffer(0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadShort(ByVal Address As IntPtrByRef Buffer As Short) As Boolean ' CE: 2 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {00}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer20)
        If 
ret True Then Buffer BitConverter.ToInt16(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadInteger(ByVal Address As IntPtrByRef Buffer As Integer) As Boolean ' CE: 4 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {0000}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer40)
        If 
ret True Then Buffer BitConverter.ToInt32(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadLong(ByVal Address As IntPtrByRef Buffer As Long) As Boolean ' CE: 8 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {00000000}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer80)
        If 
ret True Then Buffer BitConverter.ToInt64(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadSingle(ByVal Address As IntPtrByRef Buffer As Single) As Boolean ' CE: Float ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {0000}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer80)
        If 
ret True Then Buffer BitConverter.ToSingle(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadDouble(ByVal Address As IntPtrByRef Buffer As Double) As Boolean ' CE: Double ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {00000000}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer80)
        If 
ret True Then Buffer BitConverter.ToDouble(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadString(ByVal Address As IntPtrByRef Buffer As StringByVal Length As Integer) As Boolean ' String mit bekannter Länge, schnell ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {}
        
Dim ret As Boolean NativeMethods.ReadProcessMemory(ProcessHandleAddresstBufferLength0)
        If 
ret True Then Buffer BitConverter.ToString(tBuffer0)
        Return 
ret
    End 
Function

    
Friend Shared Function ReadString(ByVal Address As IntPtrByRef Buffer As String) As Boolean ' String mit unbekannter Länge, braucht länger ' 
        
If ProcessHandle IntPtr.Zero Then Return False
        Dim tBuffer 
As Byte() = {}
        
Dim ret As Boolean False
        
Do
            
ret NativeMethods.ReadProcessMemory(ProcessHandleAddresstBuffer10)
            If 
ret True Then If tBuffer(0) <> 0 Then Buffer &= BitConverter.ToString(tBuffer0)
        
Loop While tBuffer(0) <> 0
        
Return ret
    End 
Function

    
Friend Shared Sub WriteArray(ByVal Address As IntPtrByVal Buffer As Byte()) ' CE: Array of Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        WriteProcessMemory
(ProcessHandleAddressBufferBuffer.Length0)
    
End Sub

    Friend Shared Sub WriteByte
(ByVal Address As IntPtrByVal Buffer As Byte' CE: 1 Byte ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer10)
    
End Sub

    Friend Shared Sub WriteShort
(ByVal Address As IntPtrByVal Buffer As Short' CE: 2 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer20)
    
End Sub

    Friend Shared Sub WriteInteger
(ByVal Address As IntPtrByVal Buffer As Integer' CE: 4 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer40)
    
End Sub

    Friend Shared Sub WriteLong
(ByVal Address As IntPtrByVal Buffer As Long' CE: 8 Bytes ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer80)
    
End Sub

    Friend Shared Sub WriteSingle
(ByVal Address As IntPtrByVal Buffer As Single' CE: Float ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer40)
    
End Sub

    Friend Shared Sub WriteDouble
(ByVal Address As IntPtrByVal Buffer As Double' CE: Double ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = BitConverter.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBuffer80)
    
End Sub

    Friend Shared Sub WriteString
(ByVal Address As IntPtrByVal Buffer As String' CE: String ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = System.Text.Encoding.ASCII.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBufferBuffer.Length0)
    
End Sub

    Friend Shared Sub WriteUnicodeString
(ByVal Address As IntPtrByVal Buffer As String' CE: Unicode String ' 
        
If ProcessHandle IntPtr.Zero Then Exit Sub
        Dim tBuffer 
As Byte() = System.Text.Encoding.Unicode.GetBytes(Buffer)
        
WriteProcessMemory(ProcessHandleAddresstBufferBuffer.Length 20)
    
End Sub

End 
Class 
Sergeant Wasabi is offline  
Old 03/03/2014, 14:14   #59
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
Quote:
Originally Posted by Sergeant Wasabi View Post
Huhu,

Ich weiß das Tutorial ist ein wenig älter, ich habe aber ein Problem mit dem Code.
Ich kriege bei dieser Zeile immer einen StackOverflow

PHP Code:
NativeMethods.ProcessHandle NativeMethods.OpenProcess(NativeMethods.OpenProcess(&H1F0FFFFalsepid)) 
Das ist ja auch völliger Unfug was du da tust.
Zuerst rufst du die Funktion
PHP Code:
Friend Shared Function OpenProcess(ByVal pid As Integer) As Boolean 
mit deinem Code:
Code:
If NativeMethods.OpenProcess(Process.GetProcessesByName("csgo")(0).Id) = True Then
auf.
Diese ruft intern sich selbst auf
PHP Code:
NativeMethods.OpenProcess(RichtigeOpenProcessFunktion(DesiredAccessInheritHandleProcessId
Da sie sich immer und immer wieder selbst aufruft kommt es dann natürlich zu einem Stack Overflow.
Mi4uric3 is offline  
Old 03/03/2014, 14:15   #60

 
Sergeant Wasabi's Avatar
 
elite*gold: 2
Join Date: Nov 2012
Posts: 148
Received Thanks: 17
Na ja, so stands halt im Tutorial. Da ging ich von aus das das so stimmt. Wie mach ichs richtig?
Sergeant Wasabi is offline  
Thanks
1 User
Reply

Tags
game, hack, memory, vb.net, visual basic


Similar Threads Similar Threads
[VB 2010] Memoryediting Lib
04/06/2013 - .NET Languages - 5 Replies
Hey, Kennt ihr ne DLL mit der man leichte in den Arbeitsspeicher schreiben kann, wie bei AutoIt? MfG
[FRAGE]VB Memoryediting mit Pointern
12/05/2011 - .NET Languages - 1 Replies
Hallo Elitepvpers-Community, ich habe mich heute mal mit Memoryediting in VB beschäftigt und bin auf dieses interessante Modul gestoßen: Module ReadWritingMemory Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer Private Declare Function WriteProcessMemory1 Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef...
[VB10] gamehacking via MemoryEditing (cheat Engine)
05/08/2011 - .NET Languages - 13 Replies
hey com :) ich habe ein tut hier im forum befolgt, wie man einfache vorteile im spiel erreichen kann wenn man adressen im Spiel mit Cheat Engine ändert (z.B. unl. ammo) Das konnte ich auch von meinem VB10 gecodeten Tool aus ändern, die Memory/Adressen Werte. das sich jedoch die adressen bei jedem neustart des spiels ändern, wollte ich fragen: ob man nicht gezielte adressen nehmen kann, die auch nach einem neustart des spiels gleich bleiben ( ohne Pointer ?, ich check das nicht mit...
[METIN2] Problem beim Memoryediting (Movespeed)
06/24/2010 - AutoIt - 27 Replies
Tag! Ich bin gerade dabei einfach einen Movespeedhack für Metin2 zu scripten, bis jetzt sieht das ganze so aus: #RequireAdmin #include <NomadMemory.au3> SetPrivilege("SeDebugPrivilege", 1) $ProcessID = ProcessExists("METIN2") $Open = _memoryopen($ProcessID)



All times are GMT +1. The time now is 15:37.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.