Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2017
carlosprotos carlosprotos is offline
Miembro
 
Registrado: abr 2014
Posts: 28
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
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
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: abr 2014
Posts: 28
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
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
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



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 22:22:39.


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