Título: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: razormta en 3 Febrero 2014, 23:16 pm Amm, soy nuevo ._. me vi en la necesidad de unirme a un foro de programacion porque hay algo que realmente no logro comprender, me explicare...
Llevo varias horas estudiando sobre como inyectar fracciones de codigo en un programa, desde otro programa creado por mi en c++ ( alrededor de 50 horas en los ultimos 3 dias ), y hasta ahora he logrado modificar el valor del dinero en counter strike xd y el valor de una variable de un programa "victima.exe" que yo mismo cree para iniciarme. si, tuve exito, pero si reinicio el programa la posicion de la memoria de la variable es distinta, ya se que eso es normal xd lo que no logro es encontrar la posicion de memoria estatica, me es dificil explicarme pero supongo que mas de uno paso por esto. "Address=Base+offset+offset+offset" ok .. intente con el cheat engine 6.2 pero solo logre conseguir una posicion de memoria dinamica y de ahi no logro por mas que lo intento conseguir la estatica les muestro mi codigo y les explico: main.cpp Código
util.h , tenia unos errores con el stricmp y logre crearme esta funcion xd Código
aca el link del programa victima.exe: http://www.mediafire.com/download/4iwb35swrh4o8ei/victima.exe (http://www.mediafire.com/download/4iwb35swrh4o8ei/victima.exe) victima.cpp Código
me gustaria que si alguno tiene alguna idea de como hacerlo me explicara, señores solo necesito eso xd la ***** posicion de la variable X xd pero .. una posicion que no cambie al reiniciar el programa, me gustaria una explicacion de lo que neceisto hacer y del error que estoy cometiendo xd espero no haber publicado en la sección incorrecta y espero que alguien me responda al menos un "hola" xd Gracias de antemano. Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: razormta en 5 Febrero 2014, 01:49 am nadie me respondio xd mmm hoy pase 12 horas mas programando, estoy teniendo hormigueos en la cabeza, debo ir al neurologo de nuevo xd pero bueno .... aca esta el codigo
Código
resulto ser un pointer con offset1+offset2+offset3+offset4+offset5 lo dejo por si algun novato se siente interesado, esta un poco desordenado pero es que debo ir a comer xd, mmm consegui la memoria estatica y no recordaba que debia añadir el getModuleHandle, al olvidar eso el primer codigo no tenia sentido alguno xd bueno, tema cerrado. Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: NikNitro! en 25 Abril 2014, 14:03 pm Buenas, tengo un par te preguntas...
Cómo conseguistes saber que eran 4 offsets? Y cómo consigues saber en cada ejecucion cual es el valor de cada uno? Salud;) Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: Mad Antrax en 25 Abril 2014, 14:44 pm Me encanta éste tema!!
Bueno, tienes varias formas de resolver tu problema: Con un Pointer (con CheatEngine o programa externo) Con un AoB Scan (con Cheat Engine o programa externo) Con un Auto-Assemble script (solo con Cheat Engine) Voy a bajar tu programa para ver como lo has realizado, a ver si logro encontrar un pointer estatico y te explico como... *** EDIT *** He bajado tu programa victima.exe y no logro ejecutarlo :( como lo has compilado? Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: x64core en 25 Abril 2014, 15:30 pm Me encanta éste tema!! Incorrecta compilación para liberación.Bueno, tienes varias formas de resolver tu problema: Con un Pointer (con CheatEngine o programa externo) Con un AoB Scan (con Cheat Engine o programa externo) Con un Auto-Assemble script (solo con Cheat Engine) Voy a bajar tu programa para ver como lo has realizado, a ver si logro encontrar un pointer estatico y te explico como... *** EDIT *** He bajado tu programa victima.exe y no logro ejecutarlo :( como lo has compilado? victima.exe http://www.sendspace.com/file/tv20f1 Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: NikNitro! en 25 Abril 2014, 15:39 pm Bueno, tienes varias formas de resolver tu problema: Con un Pointer (con CheatEngine o programa externo) Con un AoB Scan (con Cheat Engine o programa externo) Con un Auto-Assemble script (solo con Cheat Engine) Quisiera resolver la ambigüedad, esas son respuestas para mi o para el creador del hilo? Salud ;) EDITO: Vale si, he visto tu otro post y son para mi. Gracias Mad Antrax ;) Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: Mad Antrax en 25 Abril 2014, 16:29 pm Gracias x64Core he podido debuggear el programa.
He encontrado muchos pointers estáticos válidos: (https://i.imgur.com/dYCyeQh.png) El que más me ha gustado es: "victima.exe"+00027B1C +7d0 +4c A parte he encontrado la instrucción que modifica la dirección de memoria: victima.exe+256E - 83 E9 0A - sub ecx,0A Haciendo una pequeña inyección de código a través de un Auto-Assemble script: (https://i.imgur.com/p8SmrlB.png) Se pueden conseguir cosas como éstas: (https://i.imgur.com/Uc2Eqxu.png) Dejo adjunta la tabla de CheatEngine por si alguien quiere estudiarla. http://pastebin.com/MdNEdQ4C (guardar el contenido en un fichero con extención *.CT) Saludos!! Título: Re: modificar valor de X variable de un proceso mediante un programa creado en c++ Publicado por: Mad Antrax en 25 Abril 2014, 16:52 pm Perdón el double-post.
Además he encontrado un patrón que se corresponde a la instrucción que modifica la variable dinámica: (https://i.imgur.com/x6lPFvM.png) Simplemente habría que montar un Auto-Assemble script del tipo AoB Scan(83 E9 0A 89 4D FC) y luego mover con contenido del registro [ebp-04] a una variable local, ejemplo: alloc(mivariable,4) mov [mivariable],ebp-04 Así, el registro mivariable contendría la dirección dinámica en todo momento :) |