elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Obtener información de un PC
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener información de un PC  (Leído 3,057 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Obtener información de un PC
« en: 7 Enero 2017, 19:12 pm »


Imagen corregida respecto a las reglas del foro
Hola:

Como curiosidad, quiero saber si con C# se puede programar un pequeño programón que recoja información de un PC, quiero hacer una prueba con otro PC que tengo.

Por ejemplo, saber la MAC de la tarjeta de red de una placa de un PC, como es único, me parece una información importante. Luego se guarda la información en un archivo txt bien legible, ya se hará técnicas de cifrado.

Si quieres información de alguien, ese alguien ejecuta tu aplicación y recopila información.

Para que tengan una idea, a parte de recoger la MAC, quiero saber que unidades de disco duro tiene instalado en su PC, como se llama su etiqueta, capacidad de disco duro, y el árbol de todos los archivos que tiene, en el txt se guarda nombre de las carpetas, subcarpetas y archivos con extensión completas. También que marca y cantidad de RAM que tiene instalada.

Tengo la idea de hacer una apliación que se guarda en inicio o servivio, que analiza todo del PC. Ya en la casa  cuando le visite, recuperaré ese archivo en un Pendrive cifrado por si acaso.

Si veo que se baja películas X y fotos peor que X.  ;D ;D ;D ;D ;D ;D ;D, el programa dentro de tres meses borra dichas fotos y vídeos. ;) Muchas veces inserta por USB un disco duro extraible, quiero hacer un programa que tamién te analice algo y que al conectar una unidad, borre todo, nada más al detectarlo al tercer mes de usar el programa.

Si quieren información de un PC con sus contenidos. ¿Qué buscaría ustedes?

Saludos.

PD: Lo del lenguaje puede ser el más que te guste.


« Última modificación: 8 Enero 2017, 05:52 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Obtener información de un PC
« Respuesta #1 en: 8 Enero 2017, 05:55 am »

esto no es hacking... esto es programación, lo que propones es normal y lo hacen muchos programas para armar un identificador unico del pc...

con las apis de windows obtienes todo eso, busca en google

Citar
Si veo que se baja películas X y fotos peor que X.  ;D ;D ;D ;D ;D ;D ;D, el programa dentro de tres meses borra dichas fotos y vídeos. ;) Muchas veces inserta por USB un disco duro extraible, quiero hacer un programa que tamién te analice algo y que al conectar una unidad, borre todo, nada más al detectarlo al tercer mes de usar el programa.


eso te tocaría analizar el disco constantemente en busca de nombres en una lista... y prepara tus regex para que no falle en la busqueda...

Tema movido a programación general


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Obtener información de un PC
« Respuesta #2 en: 15 Enero 2017, 09:58 am »

Como curiosidad, quiero saber si con C# se puede programar un pequeño programón que recoja información de un PC, quiero hacer una prueba con otro PC que tengo.

Has mencionado una mezcla de recopilación programática de información del sistema, seguido de tareas de supervisión o monitorización. pero si, te puedo confirmar que todo lo que has mencionado lo puedes llevar a cabo en los lenguajes C#/VB.NET/VC++, tanto recurriendo como sin recurrir directamente al uso de código no administrado mediante las APIS de Windows.

Si quieren información de un PC con sus contenidos. ¿Qué buscaría ustedes?

Si la idea que te has propuesto es buscar pero no sabes el que buscar, ¡entonces mal empezamos!. Creo que te sería de gran utilidad analizar y comparar herramientas profesionales como la suite de programas gratuitos de análisis de sistemas de la compañia NirSoft, y sobre todo una aplicación de pago llamada System Information Viewer (también conocida como SIW).

PD: Lo del lenguaje puede ser el más que te guste.

No entiendo ese comentario, se supone que es tu idea, tu proyecto, y el lenguaje que tu hayas decidido usar.

Bueno, ¡un saludo!.
« Última modificación: 15 Enero 2017, 10:01 am por Eleкtro » En línea



Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Obtener información de un PC
« Respuesta #3 en: 20 Enero 2017, 17:02 pm »

Buenos días:

Tengo claro lo que quiero. Saber la MAC de su tarjeta de red,saber que idioma usa el Windows, unidad de disco duro y particiones. Quiero hacerle como si estuviera haciendo un tree en cmd y guardar esos datos en un archivo de texto, eso si, lo pasaréa binario para que no lo lean.

Saber MAC y guardarlo en un archivo. (Lo de encriptarlo o no es otro cantar).
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using System.Net.NetworkInformation; // No olvidar.
  8.  
  9. namespace Leer_MAC
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.            Console.Title = "En busca del MAC";
  16.  
  17.            string Nombre_HostName = null;
  18.            string Nombre_Dominio = null;
  19.            string MAC = null;
  20.  
  21.            IPGlobalProperties Propiedades_PC = IPGlobalProperties.GetIPGlobalProperties();
  22.            NetworkInterface[] Interfaz_red = NetworkInterface.GetAllNetworkInterfaces();
  23.            Console.WriteLine("Información de interfaz para {0}.{1}     ",
  24.                    Propiedades_PC.HostName, Propiedades_PC.DomainName);
  25.            if ((Interfaz_red == null) || (Interfaz_red.Length < 1))
  26.            {
  27.                Console.WriteLine("  No hay interfaces de red encontrados.");
  28.                return;
  29.            }
  30.  
  31.            Console.WriteLine("  Número de interfaces .................... : {0}", Interfaz_red.Length);
  32.            foreach (NetworkInterface Adaptador in Interfaz_red)
  33.            {
  34.                IPInterfaceProperties Propiedades = Adaptador.GetIPProperties(); //  .GetIPInterfaceProperties();
  35.                Console.WriteLine();
  36.                Console.WriteLine(Adaptador.Description);
  37.                Console.WriteLine(String.Empty.PadLeft(Adaptador.Description.Length, '='));
  38.                Console.WriteLine("  Tipo interfaz ........................... : {0}", Adaptador.NetworkInterfaceType);
  39.                Console.Write("  Dirección física ........................ : ");
  40.                PhysicalAddress Direccion = Adaptador.GetPhysicalAddress();
  41.                byte[] bytes = Direccion.GetAddressBytes();
  42.                // Variable que tendra la dirección visible.
  43.                string direccion_MAC = string.Empty;
  44.                // Recorrer todos los bytes de la dirección.
  45.                for (int i = 0; i < bytes.Length; i++)
  46.                {
  47.                    // Muestra la dirección física en hexadecimal.
  48.                    direccion_MAC += bytes[i].ToString("X2");
  49.                    Console.Write("{0}", bytes[i].ToString("X2"));
  50.                    // Inserte un guión después de cada bocado, a menos que estemos al final de la dirección.
  51.                    if (i != bytes.Length - 1)
  52.                    {
  53.                        // Agregar un separador, por formato.
  54.                        direccion_MAC += "-";
  55.                        Console.Write("-");
  56.                    }
  57.                    MAC = direccion_MAC;
  58.                }
  59.                Console.WriteLine();
  60.            }
  61.  
  62.            // Guarda el nombre del hostname en la variable Nombre_HostName.
  63.            Nombre_HostName = Propiedades_PC.HostName;
  64.  
  65.            // Guarda el nombre del dominio si lo tiene.
  66.            Nombre_Dominio = Propiedades_PC.DomainName;
  67.  
  68.  
  69.            // Guarda la MAC recibida con sus - en la varible MAC.
  70.            //MAC = direccion_MAC;
  71.  
  72.            Console.WriteLine();
  73.            Console.WriteLine(@"Nombre del HostName: {0}", Nombre_HostName);
  74.            Console.WriteLine(@"Nombre del domninio: {0}", Nombre_Dominio);
  75.            Console.WriteLine(@"MAC es: {0}", MAC);
  76.            Console.ReadKey(); // Pulsa cualquier tecla y sale.
  77.        }
  78.    }
  79. }
  80.  

Más simplificado y guardar en un .txt y en un .bin en C#:
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using System.Net.NetworkInformation; // No olvidar.
  8. using System.IO;
  9.  
  10. namespace Leer_MAC_2
  11. {
  12.    class Program
  13.    {
  14.        static void Main(string[] args)
  15.        {
  16.            Console.Title = "Leer MAC 2";
  17.            var macAddr =
  18.    (
  19.        from nic in NetworkInterface.GetAllNetworkInterfaces()
  20.        select nic.GetPhysicalAddress().ToString()
  21.    ).ToArray();
  22.  
  23.            // Para escribir datos en un archivo.
  24.            StreamWriter Texto = new StreamWriter("Archivo.txt");
  25.  
  26.            FileStream Archivo = new FileStream("Archivo_bin.txt", FileMode.Append);
  27.            BinaryWriter Binario = new BinaryWriter(Archivo); // Escribe en bibario.
  28.  
  29.            Console.WriteLine("numero de direcciones " + macAddr.Count());
  30.  
  31.            foreach (var address in macAddr)
  32.            {
  33.                Texto.WriteLine(address);
  34.                Binario.Write(address);
  35.                Console.WriteLine(address);
  36.            }
  37.  
  38.            Texto.Close(); // Cerrar archivo.
  39.            Archivo.Close(); // Cierra archivo binario.
  40.            Console.ReadKey(); // Pulse cualquier tecla para salir.
  41.        }
  42.    }
  43. }
  44.  

También saber que dispositivos tiene conectado en red, otros ordenadores, impresoras, todos los datos posibles de las impresotas que tenga en red o por USB marca y modelo.

Seguiré ampliando cosas. ;)
« Última modificación: 20 Enero 2017, 17:15 pm por Meta » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[source]obtener informacion
Programación Visual Basic
krackwar 3 1,751 Último mensaje 11 Abril 2008, 02:50 am
por seba123neo
obtener informacion del sistema [C#]
.NET (C#, VB.NET, ASP)
SRVAM 9 13,818 Último mensaje 22 Octubre 2009, 22:34 pm
por SRVAM
Obtener informacion?
Programación Visual Basic
CAR3S? 7 4,423 Último mensaje 13 Febrero 2011, 23:54 pm
por CAR3S?
Obtener informacion de los paquetes « 1 2 »
Hacking
bengy 13 8,487 Último mensaje 15 Abril 2020, 02:14 am
por bengy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines