Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2017
carlosprotos carlosprotos is offline
Miembro
 
Registrado: Apr 2014
Posts: 26
Poder: 0
carlosprotos Va por buen camino
Post cómo cambiar valor Opcode en memoria

Necesito algo de ayudin , me he preguntado si existe alguna función o procedimiento para hacer una
modificación interna de una memoria de un juego.

Imagen


Me gustaría modificar la dirección

0040B32B = JMP 0040B2FD
(Address) (Valor Opcode)

pero con alguna funcion o procedimiento en delphi

Alguna función o idea ... ?
Responder Con Cita
  #2  
Antiguo 30-12-2017
Reasen Reasen is offline
Miembro
 
Registrado: Dec 2015
Ubicación: Barcelona
Posts: 136
Poder: 3
Reasen Va por buen camino
Puedes guiarte mediante esta función, saludos.

Código Delphi [-]
function WriteBytes(pAddress: Pointer; Bytes: array of Byte): Boolean;
var
  OldProtect, NewProtect: DWORD;
begin
  if VirtualProtect(pAddress, SizeOf(Bytes), PAGE_EXECUTE_READWRITE, @OldProtect) then
  begin
    Move(Bytes, pAddress^, Length(Bytes));
    VirtualProtect(pAddress, SizeOf(Bytes), OldProtect, @NewProtect);
    Result := True;
  end
  else
    Result := False;
end;

Suponiendo que el proceso es externo y la edición la quieres efectuar internamente entonces tendrás que usar técnicas de inyección de DLL
o modificar la función y usar la API WriteProcessMemory pero entonces ya estaríamos hablando de algo externo

Última edición por Reasen fecha: 30-12-2017 a las 22:32:59.
Responder Con Cita
  #3  
Antiguo 03-01-2018
carlosprotos carlosprotos is offline
Miembro
 
Registrado: Apr 2014
Posts: 26
Poder: 0
carlosprotos Va por buen camino
Post :v

Eso hize , igual no funciona ,me saca del juego, por que los bytes cambian cada vez que ingreso

el JMP "0040B2FD" -> 0040B2FD el addreess es la misma , solo que en array of bytes cambia un par de bytes
y no funciona y te da errores., por eso quiero averiguar si se puede poner JMP "Modulo+B2FD" ya que eso no cambia
, solo los valores en array of bytes y 4 bytes por cada ingresada. Alguna forma?
Responder Con Cita
  #4  
Antiguo 03-01-2018
Reasen Reasen is offline
Miembro
 
Registrado: Dec 2015
Ubicación: Barcelona
Posts: 136
Poder: 3
Reasen Va por buen camino
Teniendo un valor estático te quedaría escanear la memoria hasta encontrar la localización/patrón de dicho salto.

Te recomiendo que uses Cheat Engine, te resultará más fácil que programar la función.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿ Como cambiar el valor de AUTO_INCREMENT en MySQL ? jose.ignacio.ve MySQL 3 07-10-2014 21:37:43
como cambiar un valor true por un caracter janexa Impresión 7 16-01-2008 23:29:26
sobre punteros... y memoria ¿Como perder su valor, sin hacerlo? Delphius Varios 8 19-04-2006 10:55:06
Como cambiar la direccion de memoria a un Puerto omar_e_rc Windows 1 23-06-2005 05:38:13
¿Como cambiar el color de letra dependiendo del valor de una BD? Raisen Impresión 2 26-07-2004 14:03:04


La franja horaria es GMT +2. Ahora son las 21:28:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi