Hola estoy haciendo un programa con el que quiero cambiar una dirección no estática. Vi aquí MOV DWORD PTR SS:[EBP-8],ECX que la dirección que quiero encontrar es EBP-8 pero ahora me toca encontrar EBP.
Como se hace con c++?
Saludos
Puedes usar ensamblador:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s3 (http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s3)
Eso va sobre el inline Assembly de GCC.
Para vs seria esto no ?
http://msdn.microsoft.com/es-es/library/4ks26t93.aspx
Se puede asignar la dirección de EBP a una variable de c++ con ensamblador ?
Precisamente EBP es un registro.
Claro que puedes hacer eso, quieres pasar el offset a la variable? lea estaria bien, recuerda usar Inline ASM.
Un saludo.
Cita de: patilanz en 2 Noviembre 2014, 20:25 PM
Para vs seria esto no ?
http://msdn.microsoft.com/es-es/library/4ks26t93.aspx
Se puede asignar la dirección de EBP a una variable de c++ con ensamblador ?
Inline assembly como te dijeron che..
Lo unico aparte de lo que te dijeron que te puedo decir es que el valor que este en EBP para leerlo estilo el retorno de una funcion tenes que moverlo a EAX antes del ret
Notese que el valor del registro EBP solo tiene sentido en el contexto de la ejecucion de una funcion en particular ...
Hola gracias por sus respuestas. Lei y consegui encontrar el EPB con assambly
__int32 direction;
_asm{
MOV direction, EBP
}
Pero esto es el EBP de mi programa que se esta ejecutando no del programa que quiero cambiar de valor. Como ejecuto codigo assambly en un proceso por separado.
Pense cambiar una parte de la memoria vista previamente con ollydbg y encontre una parte que me puede servir:
de MOV DWORD PTR SS:[EBP-8],ECX
a MOV DWORD PTR SS:[EBP-8],mi_numero
Pero como el tamano no es el mismo con olly quito la opcion de keep size y me lo hace solo. Me agrega 3 NOP y creo que modifica todas las demás instrucciones.
Lo intente directamente pero no hay espacio y se produce un overflow. Tengo que buscar otra instrucción o hay otras maneras mejores ?
Saludos
@Esto ya iría en la parte de Ingeniería Inversa no ?