Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   hola ayuda delphi 7 <<Clip>> (https://www.clubdelphi.com/foros/showthread.php?t=71757)

darkcuevas 05-01-2011 22:07:39

hola porfavor ayuda con delphi 7 codigo de inyeccion
 
hola bueno veran yo use el cheat engine para generar un codigo de inyeccion pero noc como agregar al trainer el codigo


asi ingreso a la memoria

GameWindow := FindWindow(nil, 'xxxxxxxxx');
if GameWindow <> 0 then




el code es parecido a este




alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

00721029:
jmp newmem
nop
returnhere:

newmem:



originalcode:
mov [ebp+00000422],ebx

exit:
jmp returnhere


si no entienden la pregunta digan y yo la re planteo

Aleca 06-01-2011 22:51:38

:confused::confused: disculpa la ignorancia, pero no se de que estas hablando :confused::confused:

darkcuevas 08-01-2011 17:20:55

hola ayuda delphi 7 <<Clip>>
 
hola gente bueno esta pregunta que les are acontinuacion ya se las abia echo asi que no pretendo hacer spam

Comienso la pregunta::::: bueno yo tengo un codigo de inyeccion (auto assamble) "cheat engine" pero en este momento nesesito saber un code para para que ese codigo auto assamble se inyecte

por ejenplo yo tengo este codigo (auto assamble)

alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

00721015:
jmp newmem
returnhere:

newmem:
add ebx,ffffffed


originalcode:


exit:
jmp returnhere

como veran este codigo lo saque del cheat engine

el cheat engine tiene una funcion para crear los trainer pero quiero profundizar mi conosimiento y no usar mas esa herramienta.



esto es otra parte no se confundan es solo para que quede claro yo uso este code para editar un valor normal es dword asi que es 4bytes (con este code se editan valores de 4bytes)

procedure TForm1.Button1Click(Sender: TObject);
var
BasePointer, BasePointer1: Dword;
Value : Dword;
begin
Value := 1000;
TID := GetWindowThreadProcessId(GameWindow, @PID);
PHandle := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);

ReadProcessMemory(PHandle,Pointer($XXXXXXXX),@BasePointer,04,Read);
BasePointer1 := BasePointer+$XX;

WriteProcessMemory(PHandle,Pointer(BasePointer1),Addr(Value),04,Write);
end;


enfin espero haber sido lo suficiente mente claro y espero que me puedan ayudar, cualquier duda que tengan acerca de la pregunta conmenten yo voy a estar pendiente



Salu2 Y gracias de antemano :)

Casimiro Notevi 09-01-2011 00:58:19

¿Ya leiste nuestra guía de estilo?, gracias por tu colaboración.

darkcuevas 09-01-2011 02:11:13

Nadie me contesta

Si te encuentras en esta situación, te aconsejaría que en vez de abrir otro tema, con lo que podría perderse información previa sobre el tema que expusiste en un principio, siguieses el tema que tu mismo iniciaste en su día, escribiendo una nueva contestación. De esta manera el tema se actualizará y pasará a la cabecera del foro, y se marcará como no leido para el resto de usuarios. Así evitamos duplicar información innecesariamente.
Otro motivo por el que es posible que no te hayan contestado es porque puedes haberte explicado mal. Sería conveniente en este caso que trataras de ampliar la información que has escrito en el primer mensaje de tu tema. Así podrías ayudar al resto de usuarios a que respondan más claramente.


ya entiendo Grax :P


Todavia sigo esperando una respuesta...

Casimiro Notevi 09-01-2011 02:15:01

Cita:

Empezado por darkcuevas (Mensaje 387027)
[..] ya entiendo Grax :P

Todavia sigo esperando una respuesta...


Sería conveniente en este caso que trataras de ampliar la información que has escrito en el primer mensaje de tu tema. Así podrías ayudar al resto de usuarios a que respondan más claramente.

;) ;) ;) Y gracias por leer nuestra guía de estilo :)

darkcuevas 09-01-2011 05:33:18

bueno voy a tratar de expricarme mejor


aja yo quiero crear un trainer para un juego por ejenplo gta san andreas(el trainer ni es para este juego es para otro)

creo q todos sabemos que es un trainer el trainer va a tener como funcion mmmm por ejenplo suvir la vida al maximo entre otras funciones (el code para editar la vida lo tengo )

aki el code....

procedure TForm1.Button1Click(Sender: TObject);
var
BasePointer, BasePointer1: Dword;
Value : Dword;
begin
Value := 1000; //este el el valor de la vida
TID := GetWindowThreadProcessId(GameWindow, @PID);
PHandle := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);

ReadProcessMemory(PHandle,Pointer($XXXXXX),@BasePointer,04,Read);
BasePointer1 := BasePointer+$XX;

WriteProcessMemory(PHandle,Pointer(BasePointer1),Addr(Value),04,Write);
end;

este el codigo que va a editar la vida<>este es el que se usa para editar un numero



pero otra funcion va hacer para que el carro ande mas rapido (no digo que este hack exista pero es un ejenplo) normalmente este valor no se podria solo ser editado sies que es controlado por una allocation (no estoy seguro si asi se le dice) lo q yo voy a hacer es editar la allocation pero esto no se edita solo canviando un valor se nesesita el auto assemble el autoassanble lo que hace es reenplasar un fragmento del juego eso es todo bueno pero ese codigo yo lo quiero plamar en el trainer pero no tengo el code para inyectarlo

creo q mas claro no lo puedo explicar

duilioisola 10-01-2011 17:50:29

Creo entender que lo que quieres es utilizar assembler dentro de una función tuya para modificar una posición de memoria, donde un juego guarda información relativa a vidas, tiempo restante, puntos, etc.

En Delphi se pueden utilizar instrucciones en assembler. Este ejemplo es del Help de Delphi 6 y lo que hace es multiplicar dos valores:
Código Delphi [-]
function LongMul(X, Y: Integer): Longint;    
asm
  MOV     EAX,X
  IMUL    Y
end;

Yo no conozco assembler, por lo que no te puedo ayudar en esa parte, pero la ayuda de Delphi trae alguna información.

P.D. Escribe tu código Delphi entre los tags correspondientes, para que queden bien formateados. Por ejemplo:

Código:

[ DELPHI]
function LongMul(X, Y: Integer): Longint;   
asm
  MOV    EAX,X
  IMUL    Y
end;
[ /DELPHI]



La franja horaria es GMT +2. Ahora son las 04:00:59.

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