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


 


Tema destacado: Píldoras formativas en seguridad de la información


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 1037
51  Foros Generales / Foro Libre / Re: Y esto damas y caballeros, es lo que se suele llamar "un tonto del culo" en: 14 Noviembre 2017, 16:56
52  Programación / .NET / Re: Vuelve el perro arrepentido con el mismo error en un programa en: 13 Noviembre 2017, 22:33
ahora no tengo los Me000x y la infinidad de parecidos, solo DateTime y Size

Si arreglaste todo eso supongo que te lo puedo mirar en un rato... ¿es este enlace?: https://www.mediafire.com/file/4krh72s22i7ebt4/SISTEMA%20NO%20OBFUSCADO.zip
53  Programación / .NET / Re: ayuda en VB.NET en: 13 Noviembre 2017, 21:58
Aparte de todo lo que te ha dicho el compañero @NEBIRE, cosa en la que concuerdo completamente...

Código
  1. CreateObject("SAPI.SpFileStream")

...No existe una necesidad real de recurrir a código no administrado, y aparte lo estás haciendo al estilo obsoleto, inseguro y limitado de VB6/VBS, para eso sinceramente no conviene usar .NET, por que no le estás sacando ningún beneficio real. Deberías evitar copiar el primer código que te encuentres en Internet para VB6 o VBS, e intentar buscar soluciones más actualizadas que hagan uso de los miembros equivalentes para .NET Framework ( System.Type.GetTypeFromProgID() + System.Activator.CreateInstance() + Implementación de interfaces nativas ), no es tan dificil investigar bien... en general debes evitar usar en lo máximo posible los miembros del espacio de nombres Microsoft.VisualBasic, por que el 80% aprox del contenido son miembros que están ahí simplemente por compatibilidad en temas de migración de VB6 a VB.NET, pero cuyo código fuente de todos esos miembros, aunque sea una implementación en código .NET apesta, es un código muy poco óptimo y miembros muy limitados en comparación (puedes observar las diferencias analizando la referencia online del código fuente de .NET Framework).

Si quieres hacer de forma correcta, segura y sofisticada lo que pretendes hacer, entonces usa la implementación administrada de Microsoft Speech API (SAPI) para .NET. Aquí tienes un ejemplo para sintetizar texto y guardarlo en un archivo WAV:


PD: La documentación de MSDN es tu mejor amiga... cuando no sepas algo, busca ahí.

Saludos.
54  Foros Generales / Foro Libre / Re: Homenaje a "Chiquito" en: 13 Noviembre 2017, 14:20
Me da mucha pereza leer todo ese artículo, pero lamento la muerte de un artista y humorista que tanto nos hizo reir en nuestra infancia...

Grande Chiquito.



...Vean su película donde Chiquito protagoniza a "El Conde Brácula" para rendirle homenaje y echarse unas risas:



PD: Sí, no cabe duda, es malísima xD.
55  Foros Generales / Foro Libre / Re: Los bomberos liberan a un hombre al que se le quedó atrapado el pene en una pesa en: 13 Noviembre 2017, 14:13
Eso suele pasar mucho cuando uno está a solas con un calentón de la muerte y no tiene ningún calcetín a mano por la casa, o cuando uno está harto de hacerle agujeros a sandías y melones para darle merengue del bueno por "detrás", a todos nos ha pasado, ¿no? :xD. El hombre solo buscaba nuevas experiencias...

Eso sí, para la próxima vez, que alguien le comente a este tio que existen las vaginas en lata:

56  Programación / .NET / Re: Vuelve el perro arrepentido con el mismo error en un programa en: 12 Noviembre 2017, 19:36
Cito algo del Amigo Elektro  :D que fue la persona que me ayudó:

"En el código fuente que has compartido, el tamaño y posición de los controles se estaba especificando mediante una variable llamada "point", y otra "size", esta última entraba en conflicto con la propiedad Form.Size. Las referencias de los controles, así como la asociación de eventos de los controles, estaban definidos mediante propiedades, lo cual es muy típico de ver en conversores de código C# a VB.NET."

Pero ese código fuente ya te lo reestructuré de forma completa, y este código fuente que ahora muestras no tiene nada que ver con el otro o al menos no lo parece, no tiene los mismos "errores" con Point y Size.

Aquí tienes, de mil nosecuantos errores de compilación te lo he dejado en unos 200, algo es algo:
http://www.mediafire.com/file/refb7gf660aqzsc/SISTEMA+SUPUESTO+CODIGO.zip

...el resto de referencias que quedan no se resolverlas, las que empiezan por "Me000.x" y tienen una cantidad variable de ceros ( en el código "reestructurado" les cambié el nombre por "Me._x" sin los ceros ), para eso habría que saber como trabaja el ofuscador con el que protejieron el code, o tomarse mucho tiempo en horas para ir revisando variable uno por uno de los casi 200... y eso ya no estoy dispuesto a hacerlo por tiempo, todo esto que ves "reestructurado" lo hice en 10 minutos.

En realidad la reestructuración del 90% del código es muy sencilla, son obviedades ("DateAndtime._get_Today()", "DateAndtime._get_TimeString()", etc, o métodos y variables cuyo nombre empiezan con un número, le añades un caracter válido al principio del nombre y lo arreglas), basta con hacerse una idea de como debería ser la sintaxis correcta y hacer unos cuantos reemplazamientos de string globales desde el propio Visual Studio, no hace falta nada más, pero esas referencias que empiezan por "Me0000000" no lo consigo descifrar.

Saludos.
57  Sistemas Operativos / Windows / Re: USB inoperable despues de usar Rufus en: 12 Noviembre 2017, 16:57
Lo conseguí reparar con el comando diskpart como propuso @Slava_TZD. Muchas gracias a todos.
58  Programación / .NET / Re: Detectar cuando la bandeja del lector está abierta o cerrada en: 12 Noviembre 2017, 13:25
Aquí hay un código que pulsando A o C abre o cierras la bandeja del lector, a parte de esto, dice Abierto, Abriendo... Cerrado y Cerrando... Todo esto pulsado las teclas A o C.

Me he dado cuenta que si cierro la bandeja directamente con la mano, en la ventana o en el CMD de C#, no lo sabe, se queda en Abierto. La idea es que si cierro la bandeja con la mano, en la pantalla muestre el mensaje.

¿Esto es posible de hacer?

Tu mismo estás diciendo que lo de "Abriendo..." y "Cerrando..." lo estás imprimiendo por ti mismo cuando pulsas la tecla A o C en la CMD... en ningún momento estás controlando eventos de inserción o eyección de la bandeja del lector, ¿cómo esperas que sea posible hacerlo controlando el input de la CMD?, no tiene sentido xD.

De todas formas MCI solamente sirve para operar con comandos, no es posible detectar/suscribirse a eventos de inserción y eyección de la bandeja del lector de CD-ROM mediante MCI. Pero si con WMI...

Te muestro un ejemplo que escribí hace tiempo en VB.NET y que hace exactamente lo que pides:
Código
  1. Imports System.ComponentModel
  2. Imports System.Management
  3.  
  4. Public NotInheritable Class Form1 : Inherits Form
  5.  
  6.    Private WithEvents EventWatcher As ManagementEventWatcher
  7.  
  8.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
  9.  
  10.        ' https://msdn.microsoft.com/en-us/library/aa394173%28v=vs.85%29.aspx
  11.        Dim eventQuery As New WqlEventQuery(
  12.            eventClassName:="__InstanceModificationEvent",
  13.            condition:="TargetInstance ISA 'Win32_LogicalDisk' AND TargetInstance.DriveType = 5",
  14.            withinInterval:=TimeSpan.FromSeconds(1))
  15.  
  16.        Dim eventOptions As New EventWatcherOptions With {
  17.            .BlockSize = 1,
  18.            .Timeout = TimeSpan.MaxValue
  19.        }
  20.  
  21.        Dim scopePath As New ManagementPath With {
  22.            .ClassName = "",
  23.            .NamespacePath = "root\CIMV2",
  24.            .Path = "\\.\root\CIMV2",
  25.            .Server = "."
  26.        }
  27.  
  28.        Dim scopeOptions As New ConnectionOptions With {
  29.            .Authentication = AuthenticationLevel.Default,
  30.            .EnablePrivileges = True,
  31.            .Impersonation = ImpersonationLevel.Impersonate,
  32.            .Timeout = TimeSpan.MaxValue
  33.        }
  34.  
  35.        Dim scope As New ManagementScope(scopePath, scopeOptions)
  36.  
  37.        Me.EventWatcher = New ManagementEventWatcher With {
  38.            .Options = eventOptions,
  39.            .Query = eventQuery,
  40.            .Scope = scope
  41.        }
  42.  
  43.        Me.EventWatcher.Scope.Connect()
  44.        Me.EventWatcher.Start()
  45.  
  46.    End Sub
  47.  
  48.    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  49.        Me.EventWatcher.Dispose()
  50.    End Sub
  51.  
  52.    Private Sub EventWatcher_EventArrived(sender As Object, e As EventArrivedEventArgs) Handles EventWatcher.EventArrived
  53.  
  54.        Using mo As ManagementBaseObject = e.NewEvent
  55.  
  56.            Dim letter As String = Convert.ToString(mo.Properties("Name").Value).TrimEnd({":"c, "\"c})
  57.            ' Dim volName As String = Convert.ToString(mo.Properties("VolumeName").Value)
  58.  
  59.            Dim di As DriveInfo = (From item In DriveInfo.GetDrives()
  60.                                   Where item.Name.TrimEnd({":"c, "\"c}) = letter
  61.                                  ).Single()
  62.  
  63.            If Not String.IsNullOrEmpty(di.VolumeLabel) Then
  64.                Console.WriteLine(String.Format("CD-ROM tray inserted in drive '{0}'.", di.Name))
  65.  
  66.            Else
  67.                Console.WriteLine(String.Format("CD-ROM tray ejected in drive '{0}'.", di.Name))
  68.  
  69.            End If
  70.  
  71.        End Using
  72.  
  73.    End Sub
  74.  
  75. End Class

Traducción a C#:

Código
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Management;
  5. using System.Windows.Forms;
  6.  
  7. namespace WindowsFormsApp1 {
  8.  
  9.    public partial class Form1 : Form {
  10.  
  11.        private ManagementEventWatcher EventWatcher;
  12.  
  13.        public Form1() {
  14.            this.InitializeComponent();
  15.        }
  16.  
  17.        private void Form1_Load(object sender, EventArgs e) {
  18.  
  19.            // https://msdn.microsoft.com/en-us/library/aa394173%28v=vs.85%29.aspx
  20.            WqlEventQuery eventQuery =
  21.                new WqlEventQuery(eventClassName: "__InstanceModificationEvent",
  22.                                  condition: "TargetInstance ISA 'Win32_LogicalDisk' AND TargetInstance.DriveType = 5",
  23.                                  withinInterval: TimeSpan.FromSeconds(1));
  24.  
  25.            EventWatcherOptions eventOptions = new EventWatcherOptions {
  26.                BlockSize = 1,
  27.                Timeout = TimeSpan.MaxValue
  28.            };
  29.  
  30.            ManagementPath scopePath = new ManagementPath {
  31.                ClassName = "",
  32.                NamespacePath = @"root\CIMV2",
  33.                Path = @"\\.\root\CIMV2",
  34.                Server = "."
  35.            };
  36.  
  37.            ConnectionOptions scopeOptions = new ConnectionOptions {
  38.                Authentication = AuthenticationLevel.Default,
  39.                EnablePrivileges = true,
  40.                Impersonation = ImpersonationLevel.Impersonate,
  41.                Timeout = TimeSpan.MaxValue
  42.            };
  43.  
  44.            ManagementScope scope = new ManagementScope(scopePath, scopeOptions);
  45.  
  46.            this.EventWatcher = new ManagementEventWatcher {
  47.                Options = eventOptions,
  48.                Query = eventQuery,
  49.                Scope = scope
  50.            };
  51.  
  52.            this.EventWatcher.Scope.Connect();
  53.            this.EventWatcher.EventArrived += this.EventWatcher_EventArrived;
  54.            this.EventWatcher.Start();
  55.        }
  56.  
  57.        private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
  58.            this.EventWatcher.Dispose();
  59.        }
  60.  
  61.        private void EventWatcher_EventArrived(object sender, EventArrivedEventArgs e) {
  62.  
  63.            using (ManagementBaseObject mo = e.NewEvent) {
  64.  
  65.                string letter = Convert.ToString(mo.Properties["Name"].Value).TrimEnd(new char[] {':', '\\'});
  66.                // string volName = Convert.ToString(mo.Properties("VolumeName").Value);
  67.  
  68.                DriveInfo di = (from item in DriveInfo.GetDrives()
  69.                                where item.Name.TrimEnd(new char[] { ':', '\\' }) == letter
  70.                                select item
  71.                               ).Single();
  72.  
  73.                if (!string.IsNullOrEmpty(di.VolumeLabel)) {
  74.                    Console.WriteLine(string.Format("CD-ROM tray inserted in drive '{0}'.", di.Name));
  75.  
  76.                } else {
  77.                    Console.WriteLine(string.Format("CD-ROM tray ejected in drive '{0}'.", di.Name));
  78.  
  79.                }
  80.  
  81.            }
  82.  
  83.        }
  84.  
  85.    }
  86.  
  87. }

PD: No lo he testeado, ahora mismo no tengo lector de CD instalado, pero debe funcionar... por que en el pasado me funcionó xD.

PD2: Si en lugar de un Form quieres hacerlo a través de una aplicación de consola, entonces tal vez quieras usar el método bloqueante ManagementEventWatcher.WaitForNextEvent() para que no se cierre la instancia de tu programa antes de recibir el próximo evento...

Código
  1. ...
  2. this.EventWatcher.Start();
  3.  
  4. while (true) {
  5.    this.EventWatcher.WaitForNextEvent();
  6. }
  7. ...

Saludos.
59  Programación / .NET / Re: [SOURCE-CODE] Telerik Code Converter for Visual Studio - by Elektro Studios en: 12 Noviembre 2017, 13:05
Pequeña actualización: he modificado las teclas de acceso directo, ya que entraban en conflicto con CTRL+V (paste).

El enlace de descarga sigue siendo el mismo, el que está en el post principal.

Un saludo.
60  Programación / .NET / Re: [SOURCE-CODE] Telerik Code Converter Client for Windows - by Elektro Studios en: 12 Noviembre 2017, 13:04
Por si había algún usuario suscrito a este thread, les hago saber que ya compartí la extensión para Visual Studio y el código fuente aquí:


Un saludo.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 1037
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines