Ver Mensaje Individual
  #11  
Antiguo 22-03-2018
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Dark_Code Ver Mensaje
Ahora lo que quiero hacer es editar con el valor guardado del Edit en una DLL, lo estoy haciendo de esta forma, pero esta mal en la forma de editar
Código Delphi [-]
PDWORD($A04569)^:= ValorINI;
, espero de su ayuda.
Tendrás que explicar bien que quiere decir esa frase:
¿Editar qué?
¿Cual es la razón de ser de una dll?
¿Que es esta dirección $A04569? ¿De qué proceso? ¿Es constante?

En el caso de que lo que pretendas en cambiar el valor de cierta dirección de cierto proceso ajeno, debes saber algo de inyecciones, conocer si la dirección apuntada es constante cada vez que se cargue ese proceso y en ese caso, y sólo en ese caso, puedes pretender el cambio seguro del valor de dicho puntero. Si esas son la premisas, ahora debes diseñar bien el cómo y cuando se hace. Esto te obliga a comunicarte certeramente con tu dll y el uso de archivos en disco no es una buena opción cuando se requiere precisión cronológica.

Tu dll no se carga en ningún sitio, no hay inyección, la ultima linea no tiene sentido:
Código Delphi [-]
CreateRemoteThread(AtProcessobymr,nil,0,@TrainerFarius,@TrainerFarius,0,hID);

Dices que no te funciona, la pregunta es ¿Que no funciona? ¿Por qué dices que no funciona?

El código que te pasé funciona tal cual, otra cosa es que la idea inicial sea o no correcta PDWORD($A04569)^:= Valor pero debes tener claro algunas cosas de las dll. Cada proceso carga una copia de la dll. La dirección en cuestión, $A04569, solo afecta al proceso que carga la copia de la dll que lee el valor que quieres usar. En un proceso en ejecución, las direcciones no tienen porqué ser constantes y dependen de cómo y donde ha cargado windows ese proceso.

Saludos.
Responder Con Cita