Bueno hoy descubri un programa bastante interesante que me llamo mucho la atención llamado Cheat Engine que te permite editar y ver los valores de la memoria de los procesos de los juegos y cosas asi.. asi que me puse a mirarme unos tutos y en realidad es muy fácil de utilizar.. Y ya que estaba jugando al need for speed , para probar lo que habia aprendido me puse a hacer un cheat y me salio este tan bonito... seguramente ya este por la red pero aqui les dejo el mio con código de fuente

Saludos y espero que se lo miren y si quieren algun juego en especial les puedo explicar como hacerlo .... Bytes()
Option Explicit
'################################################################################################
'# Función que se utiliza para aumentar el dinero que tenemos en el Need For Speed Most Wanted #
'# Compatibilidad WinXP/Vista/7 #
'# Skyweb09 - skyweb09@hotmail.es #
'# 28/04/2010 #
'# Créditos : Cheat Engine y un tuto que vi en taringa de como usar el Cheat Engine. #
'################################################################################################
' Cheat Engine
' http://www.taringa.net/posts/ebooks-tutoriales/2658515/Minitutorial-sobre-como-hacer-cheats-para-juegos-%28en-c%29.html
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hWnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Long
Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Private Const SYNCHRONIZE As Long = &H100000
Private Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Public Function MasDinero(ByVal hNuevaCantidad As Long)
Dim hWnd As Long
Dim hPID As Long
Dim hProcess As Long
Dim hBuffer As Long
Const hBase As Long = &H2DEA6AC ' // Dirección de la memoria donde el NFSMW almacena los datos del $
hWnd = FindWindow("GameFrame", vbNullString) ' // Lo primero que hacemos es obtener el handle de la ventana del NFSMW.
If hWnd <> 0 Then
GetWindowThreadProcessId hWnd, hPID ' // Luego obtenemos el PID de la ventana.
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, hPID) ' // Abrimos el proceso para luego poder modificar algunos valores.
If hProcess <> 0 Then
ReadProcessMemory hProcess, ByVal hBase, hBuffer, 4, 0 ' // Leemos la dirección del proceso donde se almacena el dinero.
MsgBox "Usted tiene " & hBase & "$ en el NFSMW", vbExclamation
WriteProcessMemory hProcess, ByVal hBase, hNuevaCantidad, 4, 0 ' // Y Ahora simplemente modificamos la cantidad de dinero... Creo que la cantidad máxima es 48146092$
Else
MsgBox "No se ha podido abrir el proceso del NFSMW :S", vbExclamation
End If
Else
MsgBox "No se ha encontrado la ventana del Need For Speed abierta :(", vbExclamation
End If
End Function
' // Edit : Ahora tambien puedes modificar el valor de la bolsa con este otro pedazo...
Public Function AumentarBolsa(ByVal hNuevaCantidad As Long)
Dim hWnd As Long
Dim hPID As Long
Dim hProcess As Long
Dim hBuffer As Long
Const hBase As Long = &H2C63144 ' // Dirección de la memoria donde el NFSMW almacena los datos de la bolsa
hWnd = FindWindow("GameFrame", vbNullString) ' // Lo primero que hacemos es obtener el handle de la ventana del NFSMW.
If hWnd <> 0 Then
GetWindowThreadProcessId hWnd, hPID ' // Luego obtenemos el PID de la ventana.
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, hPID) ' // Abrimos el proceso para luego poder modificar algunos valores.
If hProcess <> 0 Then
ReadProcessMemory hProcess, ByVal hBase, hBuffer, 4, 0 ' // Leemos la dirección del proceso donde se almacena el dinero.
MsgBox "Usted tiene " & hBase & " de bolsa en el NFSMW", vbExclamation
WriteProcessMemory hProcess, ByVal hBase, hNuevaCantidad, 4, 0 ' // Y Ahora simplemente modificamos la bolsa.
Else
MsgBox "No se ha podido abrir el proceso del NFSMW :S", vbExclamation
End If
Else
MsgBox "No se ha encontrado la ventana del Need For Speed abierta :(", vbExclamation
End If
End Function
PD: Por cierto hasta hace unas horas no tenia ni idea de como hacerlo, lo que me llevo a investigar fue la duda de este post
http://www.leandroascierto.com.ar/foro/index.php?topic=301.0 Saludos
