Hola a todos, cree un proxy para un juego online (Argentum) y para poder interceptar los datos que envían y reciben los winsocks (cliente y servidor) debo cambiar la ip del juego que está en el cliente (190.224.163.62) por 127.0.0.1 y lo hago con el editor hex del Cheat Engine 6.0
Lo que yo busco es no tener que abrir el cheat engnie y cambiar estos valores cada vez que inicio el juego y que lo haga directamente... sería mucho mas fácil hacerlo en c, una librería y listo pero bueno, lo quiero hacer desde visual basci
Tengo una módulo que "CREO" que realiza esta acción, lo dejo por si ayuda a alguno
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 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
Public Function WriteLocalhost(Offset As Long, WindowName As String, Value As Currency) As Currency
Dim hWnd As Long
Dim ProcessID As Long
Dim ProcessHandle As Long
hWnd = FindWindow(vbNullString, WindowName)
If hWnd = 0 Then
MsgBox "No encontré el Argentum", vbCritical, ""
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, 8, 0&
CloseHandle ProcessHandle
End Function
Esto es el original:
Así debería quedar:
Si me podrían ayudar a entender el código o explicarme algún metodo para finalizar mi proxy bienvenido sea :$ .. Un saludo !!