puntero a funcion

Iniciado por xiruko, 3 Septiembre 2012, 21:55 PM

0 Miembros y 1 Visitante están viendo este tema.

fary

Cita de: avesudra en  4 Septiembre 2012, 14:50 PM
Pero si es un array de char , ¿que menos que pueda ser modificado no?No lo entiendo :xD además si a mi me funciona , me deberia echar para atras por no poder escribir ¿no? Es curioso...

Tambien depende de como compile y en que sección se pongan las variables... estamos entrando ya en el formato PE.

saludos.
Un byte a la izquierda.

avesudra

Cita de: mDrinky en  4 Septiembre 2012, 17:53 PM
Tambien depende de como compile y en que sección se pongan las variables... estamos entrando ya en el formato PE.

saludos.
Entiendo entiendo , ya no tengo ni idea del formato PE , así que no sé.

¡Un saludo!
Regístrate en

roilivethelife

Parece un tema interesante, se podria utilizar en un crypter para ocultar funciones, pero lo veo chungo de aplicar...

Fire544

Son punteros de funciones que apuntan a codigo en ejecucion no a datos, como los punteros de tipos, claro se pueden hacer cosas interesantes, porque creen que los grandes del lenguaje como Dennis R. Dice "La  potencia del lenguaje esta en el uso de punteros".
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

avesudra

Cita de: Fire544 en 11 Septiembre 2012, 04:02 AM
Son punteros de funciones que apuntan a codigo no a datos, como los punteros de tipos, claro se pueden hacer cosas interesantes, porque creen que los grandes del lenguaje como Dennis R. Dice "La  potencia del lenguaje esta en el uso de punteros".
Lamentablemente , no dice , decía.
Regístrate en

Fire544

xDDD, si claro, mira a ver o sea se puede alterar el flujo de datos en cualquier software de cualquier magnitud en ejecucion, y tener control total de este, sin tener que trabajar con la Programacion tediosa en ASM !!
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

X3R4CK3R

Corroboro que es bastante interesante y útil, una pena que por lo visto no sea tan fácil en C++. Alguien podría dejar alguna info para hacer lo equivalente en C++?

Saludos

fary

Cita de: XeRaCKeR en 13 Septiembre 2012, 06:41 AM
Corroboro que es bastante interesante y útil, una pena que por lo visto no sea tan fácil en C++. Alguien podría dejar alguna info para hacer lo equivalente en C++?

Saludos

En C++ es exactamente igual. Solo que funciones estandart usas las de C++ envez de las de C.

saludos.
Un byte a la izquierda.

systemfirst97

¡Buenas xiruko!

La verdad es que a ese codigo no le veo mucho sentido....no termino de entender que es lo que se pretende

estoy de  acuerdo con el e checado el codigo deteniada mente y al termino no e encontrado un sentido a este codigo ya que el autor solo juega con las localidades de memoria y para mostrar el valor modificado solo cambia el valor de la posicion inicia,

o al menos no e comprendido la finalidad de ese codigo si algunos  la comprendido favor de comentar para que los demas  podamos veririficar el codigo

xiruko

La gracia de esta idea de código mutante es poder modificar el código en tiempo de ejecución. El código que pone el autor es solo un ejemplo básico para mostrar esta idea. En él, se usar un array de char para almacenar el código máquina de esa función simple que solo retorna un número. Y la gracia es cambiar ese número de retorno cuando corres el programa.

Uno de los casos prácticos para aplicar esto sería por ejemplo un virus que cuando se ejecutase o autoreplicase, lo hiciera siempre con una nueva versión del código sin que estos cambios afectaran a las funciones principales del virus. O sino un sistema de cifrado que trabajara en tiempo de ejecución conforme se necesiten las funciones cifradas para después de usarlas volverlas a cifrar, en lugar de descifrar todo el código al inicio de la ejecución y dejarlo visible mientras corra el programa.

Las aplicaciones de esto son muy atractivas, aunque como puedes imaginarte nada triviales.

Un saludo.