elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:02  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Removeable Drive autorun.inf Remover
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Removeable Drive autorun.inf Remover  (Leído 2,038 veces)
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Removeable Drive autorun.inf Remover
« en: 2 Septiembre 2008, 01:34 »

Este pequeño programa, detecta las unidades removibles, y si encuentra en ellas un archivo autorun.inf lo elimina.

Código
#include <Windows.h>
#include <string.h>
#include <stdio.h>
/*
  Removeable Drive autorun.inf Remover.
  Escrito por Carlos.
*/

 
void go(void)
{
  char letras[513];
  GetLogicalDriveStringsA(512,letras);
  letras[512] = 0;
  char autorun_inf[15] = "...autorun.inf";
  autorun_inf[14] = 0;
  unsigned short int i=0;
 
  for (i=0; *(letras + i) != '\0'; i += 4)   {
      if (*(letras + i) > 'A') {
 
         if ((unsigned short int)GetDriveTypeA(letras + i) == 2) {
             strncpy(autorun_inf, letras + i, 3);
             FILE* file = NULL;
             file = fopen(autorun_inf,"rb");
             if (file != NULL)
             {
                fclose(file);
                SetFileAttributes(autorun_inf,FILE_ATTRIBUTE_NORMAL);
                remove(autorun_inf);
             }
         }
      }
  }
}
 
int main()
{
     go();
}
 
 



« Última modificación: 14 Diciembre 2009, 06:41 por sirdarckcat » En línea
The_Judgement

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #1 en: 5 Septiembre 2008, 00:21 »

Hola buenas, me gusta el programa este, lo encuentro muy útil la verdad. Yo suelo quitar los autorun.inf a mano pero la verdad que siempre viene bien hacerlo de una forma más automática.

Tengo unas dudas acerca de algunas funciones que usas. He estado mirando en internet pero no entiendo bien qué hace exactamente GetLogicalDriveStringsA, según lo que entiendo concatena el nombre de todas las unidades lógicas en la cadena que se le pasa como argumento.

Si en eso tengo razón, no entiendo cómo distingues después todas las unidades con el for, supongo que la variable i la incrementas 4 porque la función GetLogicalDriveStringsA lo almacenará con algún formato.

Tampoco entiendo por qué cierras el archivo si el puntero file es distinto de NULL, por lo que yo se hay que cerrarlo después de usar el archivo y tu lo que haces es abrirlo y acto seguido cerrarlo.

Si me pudieras explicar todo lo anterior te lo agradecería, me gustaría hacer el programa por mi mismo.

Saludos y gracias.


En línea

Sacred Powers, cast your purifying light upon this corrupt souls, rest in peace sinners!, JUDGEMENT!!!
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #2 en: 5 Septiembre 2008, 02:42 »

la lista de letras se almacena así:
"A:\ C:\ D:\ E:\ F:\"

por eso voy avanzando de 4 en cuatro, y distingo las unidades removibles con:
Código:
GetDriveTypeA(letras + i) == 2)
http://msdn.microsoft.com/en-us/library/aa364939.aspx

Y abro el archivo, para saber si existe, si existe, el flujo es distinto de null, por lo cual lo cierro, le asigno atributos normales, (por si tiene atributos de sistema, oculto o sólo lectura) y lo elimino.
« Última modificación: 5 Septiembre 2008, 02:48 por c.a.r.l.o.s. » En línea
The_Judgement

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #3 en: 5 Septiembre 2008, 14:16 »

Bien, según he visto en msnd, GetDriveTypeA coge la unidad hasta el espacio que las separa o encuentra el carácter de fin de cadena.

Y ahora he entendido lo que haces con el archivo autorun.inf, es que no sabía que las funciones que usas para ponerle los atributos normales para poder borrarlo después no necesitaban tener un stream abierto, por eso mi duda, pero se me acaba de ocurrir.

Muchas gracias por el código y las explicaciones.

PD: Por cierto, cuando declaras la variable autorun_inf, como la inicializas en la declaración no es necesario poner el número de caracteres a reservar ni después poner el carácter de fin de cadena.
Esto:
char autorun_inf[] = "...autorun.inf";

es equivalente a:
char autorun_inf[15] = "...autorun.inf";
autorun_inf[14] = 0;

Saludos.
« Última modificación: 5 Septiembre 2008, 14:25 por The_Judgement » En línea

Sacred Powers, cast your purifying light upon this corrupt souls, rest in peace sinners!, JUDGEMENT!!!
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.334

he vuelto :)


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #4 en: 5 Septiembre 2008, 20:55 »

interesante... y yo quería hacer un autorun.inf tweaker :xD
En línea

Ojo por ojo, y el mundo acabará ciego.
FRAVIER6940

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #5 en: 5 Noviembre 2008, 19:33 »

pero este programa queda en memoria funcionando hasta que se introduce un pendrive???

En línea
the.adx

Desconectado Desconectado

Mensajes: 29


Brain kept a rollin' all night long.


Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #6 en: 6 Noviembre 2008, 01:20 »

pero este programa queda en memoria funcionando hasta que se introduce un pendrive???



Creo que sí. De hecho se trata de estar siempre a la espera de que se introduzca el dispositivo.

Es un buen método para evitar cualquier intento de malware vía USB.
Carlitos.dll, aunque el código está bien, creo que puede mejorarse. Sigue asi  ;).

Saludos.
En línea



"I was trying to do too many things at the same time, which is my nature. But I was enjoying it, and I still do enjoy it. "
Jimi Hendrix
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #7 en: 6 Noviembre 2008, 01:55 »



Teniendo un pmp en H:

Estoy interpretando mal o deberia quedarse en memoria? porque no lo hace...
El archivo lo borra pero luego de mostrar ese mensaje.
« Última modificación: 6 Noviembre 2008, 02:00 por Littlehorse » En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
jdc


Desconectado Desconectado

Mensajes: 3.253


janito dos cuatro...


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #8 en: 6 Noviembre 2008, 04:34 »

Esta bueno... claro que no distingue solo borra!

Lo acabo de compilar y probar pero solo se borra el autorrun al ejecutar el programa no queda en memoria...

Osea abres el .exe y borra los autorun.inf pero si se copia de nuevo el autorun no se elimina ;) sigue ahi
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #9 en: 6 Noviembre 2008, 05:17 »

Pero es que si no queda en memoria no evitas las opciones del autoplay ya que tenes que ejecutar el removeable antes de elegir cualquier opcion, si no, cargo una aplicacion que resida en memoria para chequear la existencia del archivo y volver a crearlo en caso de eliminado.
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
jdc


Desconectado Desconectado

Mensajes: 3.253


janito dos cuatro...


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #10 en: 6 Noviembre 2008, 05:48 »

Igual esta bueno pero solo revisa las memorias extraibles no? osea que igual si el autorun esta en C o D siendo unidades fijas pues seria malo no? havria que tratar de automatizar el programa para que fuera mas util :)
En línea

jdc


Desconectado Desconectado

Mensajes: 3.253


janito dos cuatro...


Ver Perfil WWW
Re: Removeable Drive autorun.inf Remover
« Respuesta #11 en: 6 Noviembre 2008, 06:28 »

Carlitos.dll te ocupe tu idea pero en visual basic http://foro.elhacker.net/programacion_vb/borrador_de_autoruninf_xd_copia_del_programa_de_carlitosdll-t234152.0.html ahi te dejo el post con los creditos por la idea ;)

Saludos ye espero que no te moleste
En línea

Sierpe_777

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Removeable Drive autorun.inf Remover
« Respuesta #12 en: 7 Noviembre 2008, 15:50 »

mm bataria con ponerle un while (1) y un Sleep (), para dejarlo en memoria forever jejejeje
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines