Bueno , despues de romperme la cabesa un ratin con la API GetLogicalDriveStrings , y manejando
punteros cual cirquero , les dejo este code , se lo dedico a P0is0n-123 , ya que anque llevamos
tiempo sin hablar , con una pregunta que me hiso , inpiro este code......

Trate de comentar el Source lo mejor que pude
Ya saben si tiene dudas , recomenaciones o critics bienvenido sean.....

captura:
Imagen

Código: Seleccionar todo

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

/***************************************************
Coder : ØnLy ***************************************
Lenguage : C ***************************************
Webs: -http://www.indetectables.net*****************
      -http://www.corp-51.net***********************
      -http://www.onlydevelopments.blogspot.com/****
Fecha : 06/01/2010**********************************
****************************************************/

int main()
{
   char drive[MAX_PATH];
   char *puntero;
   char unidad[256]={'\0'}; //Limpiamos la memoria de nuestro buffercito
   int i;

   GetLogicalDriveStrings(MAX_PATH , drive);

   printf("Unidades Conectadas: \n");
   puntero = drive; //Apuntmos "Puntero" al Buffer....

   while (*puntero) //Mientras el Puntero no termine.......
   {
      for ( i=0 ; *puntero != '\0' ; i++)
      {
         unidad[i] = *puntero++; //unidad[i] , sera igaul al caracter al que apunta el puntero ,mientras este no termine.....
         //Aumentamos el Puntero para guardar el siguiente caracter , hasta llegar al punto muerto....
      }

        switch( GetDriveType(unidad) ) ////Comparamos la unidad que guardamos con los diferentes Tipos de Unidades Disponibles.....
        {
            case DRIVE_FIXED:
             printf("%s : Disco Duro/Disco Rigido" , unidad);
            break;

            case DRIVE_CDROM:
              printf("%s : CD-ROM", unidad);
            break;

            case DRIVE_REMOVABLE:
              printf("%s : Dispositivo Extraible" , unidad);
            break ;

            case DRIVE_UNKNOWN:
              printf("%s : Dispositivo Desconocido" , unidad);
            break;

            case DRIVE_RAMDISK:
              printf("%s : Memoria RAM" , unidad);
            break;
        }

      putchar('\n'); //Hacemos un ENTER
      puntero++; //Aumentamos el puntero de nuevo , para acceder a la proxima cadena con la Unidad Conectada!
   }

getchar();
return 0;
}
Como veran detecta los diferentes tipos de Unidades , si loq uieren usar para el RAT , sientance libres....
bye!
Última edición por ØnLy el 06 Ene 2011, 22:49, editado 3 veces en total.
obey escribió:Pues si tuviese mas edad todavia pero esqe perder la virginidad con tu profesora de informatica y que ademas tenga 50....
Muchas gracias por la dedicación,anda que no tenía tiempo esa duda hermano....
Te dejo mi code,mucho mas humilde porsupuesto...

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(int argc, char *argv[])
{
  char buffer[260];
  char Max[MAX_PATH];
  GetLogicalDriveStrings(260,buffer);
  char * bucle = buffer;
  while(*bucle){
               bucle = &bucle[strlen(bucle)+1];
               strcat(Max,bucle);
               }
               printf("%s \n",bucle);
  getchar();	
  return 0;
}
Gracias,la verdad esque el suyo está perfecto....
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Buen trabajo, muy bueno el manejo de los punteros, no hay mucho que esté en mis manos corregir, mejoras muy rápido en C para lo que yo tarde meses tu en días haha buen trabajo :D
//mHmm..
Responder

Volver a “Fuentes”