Sobre escribirse propio exe en runtime

Iniciado por x64core, 6 Septiembre 2012, 03:26 AM

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

x64core

Buenas, pues eso, estoy intentado reescribir el archivo en el disco , el mismo que se esta ejecutando, obtengo el handle ( CreateFile ) pero cuando escribo en el ( WriteFile ) me devuelve un error... intente jugar con los flags de Createfile o alguien sabe
si esto es imposible ... ? por ejemplo simplemente quiero escribir unos bytes al final del exe. alguien sabe?

avesudra

Cita de: RHL en  6 Septiembre 2012, 03:26 AM
Buenas, pues eso, estoy intentado reescribir el archivo en el disco , el mismo que se esta ejecutando, obtengo el handle ( CreateFile ) pero cuando escribo en el ( WriteFile ) me devuelve un error... intente jugar con los flags de Createfile o alguien sabe
si esto es imposible ... ? por ejemplo simplemente quiero escribir unos bytes al final del exe. alguien sabe?
¿Qué finalidad tiene?¿Que se automodifique y ejecute lo modificado? Voy a mirar por google.
Regístrate en

x64core

Cita de: avesudra en  6 Septiembre 2012, 03:34 AM
¿Qué finalidad tiene?¿Que se automodifique y ejecute lo modificado? Voy a mirar por google.

Hola, respondiste tambien mi hilo en ing. inversa, así que esa finalidad tiene , quiero escribir esos bytes para saber que mi programa ya
se ejecuto por primera vez nada más, busque en google y por el momento no me dice nada :P

if(comprobarBytes)
{
// hay bytes escritos en el archivo
}
else
{
escribirbytes();
}

avesudra

Ah pero es que te has complicado mucho , eso no es normalmente lo que se hace, a lo mejor se deja un archivo perdido en alguna carpeta , o lo del serial que te he comentado en el subforo de ing.inversa, eso es lo mejor. Tambien podrias hacer una especie de codificador pero eso sería mas complicado.
Regístrate en

x64core

eso es lo que no quiero hacer otro archivo en donde sea porque es demasiado facil detectar eso, en cambio sobreescribirse tendrian que tracear todo el codigo viendo en que momento se sobreescribe, bueno pero independientemente tengo la duda que si seria
imposible hacerlo :P

avesudra

Pues supongo que es imposible porque si te has dado cuenta alguna vez cuando estas ejecutando un programa no puedes cambiar ni su nombre , asi que a mi si es para una sola persona la idea que mas me convence es un tema que se ha abierto hace poco , son los punteros a funciones , si miras el tema te sonara lo que voy a decirte ahora , en el tema ese lo que hacen es un dump de las funciones para modificarlas en tiempo de ejecucion pero y si en vez de modificarlas lo que haces es encriptarlas con una clave? Hasta que no sepan la clave no pueden descifrar la función , y si ponen mal la clave la funcion cifrada se descifra mal y al llamarla  el programa se vuelve loco, te gusta la idea? Muajajaja que malo soy eh  >:D
Regístrate en

BlackZeroX

Revísate algunos códigos en vb6 alguien ya hizo algo similar a esto (en vb6) no recuerdo el nombre del hilo...

Dulces Lunas!¡.
The Dark Shadow is my passion.

x64core

Cita de: BlackZeroX (Astaroth) en  6 Septiembre 2012, 05:01 AM
Revísate algunos códigos en vb6 alguien ya hizo algo similar a esto (en vb6) no recuerdo el nombre del hilo...

Dulces Lunas!¡.
de verdad? :P pero quíen lo hizo al menos? XD buscar entre todos los temas de VB no termino ahora XD
y si, ya use el buscador :P