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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 [520] 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 ... 1236
5191  Programación / .NET (C#, VB.NET, ASP) / Re: Partir archivo en: 5 Junio 2015, 00:02 am
¿Puedes pasarme el proyecto completo?

Solo tienes que crear un nuevo proyecto y reemplazar la Class principal (Form1), por esta class, que ya genera los controles del form:

Demo Form
VB.Net: http://pastebin.com/BjzEhPdd

Saludos.
5192  Programación / .NET (C#, VB.NET, ASP) / Re: Tengo una duda en c# en: 4 Junio 2015, 23:08 pm
Es uno de los overloads del método Console.Write, específicamente este:
Console.Write Method (String, Object) - MSDN

El primer parámetro indica el formato específico de texto, y el segundo parámetro los valores que usa el formato.

Lo que hace es convertir el valor de los objetos a cadenas basadas en los formatos especificados, y los inserta en otra cadena.

Para entenderlo mejor debes leer esta referencia:
String.Format Method - MSDN

Los objetos que deben ser insertados en la cadena de texto con formato, se identifican por la siguiente sintaxis, escribiendo el índice del objeto entre dos brackets: "{0}", donde el cero cómo he dicho es el índice del objeto.

Ejemplos:

Esto generaría el string "Message: Hello World!"
Código
  1. Console.WriteLine(format: "Message: {0}", arg0: "Hello World!");

Esto generaría el string "Uno+Uno=Dos":
Código
  1. string str = string.Format("{0}+{0}={1}", "Uno", "Dos");

En resumen, es una manera elegante y eficiente para construir una cadena de texto con un formato específico.

Saludos.
5193  Programación / .NET (C#, VB.NET, ASP) / Re: Codigo que elimine la ultima palabra de un oración C# en: 4 Junio 2015, 20:55 pm
Cómo ya te han epxlicado, no se hacen tareas, pero ya que te han dado una solución...

Puedes utilizar las extensiones de String para la manipulación de una cadena de texto, concretamente la función substring para substraer parte de una cadena de texto, y las funciones IndexOf y LastIndexOf para determinar los índices o límites del primer y último caracter que substraer:
Código
  1. string str = "Hola, ¿cómo estás?.";
  2.  
  3. str = str.Substring(0, str.TrimEnd(' ').LastIndexOf(' ')); // "Hola, ¿cómo"

Saludos.
5194  Programación / Scripting / MOVIDO: Este año, la YAPC::EU 2015, en Granada (la de España) en: 4 Junio 2015, 20:46 pm
El tema ha sido movido a Programación General.

http://foro.elhacker.net/index.php?topic=436448.0
5195  Programación / .NET (C#, VB.NET, ASP) / Re: Modificar ejecutable VisualBasic en la instalación en: 3 Junio 2015, 21:27 pm
Hasta ahí bien, pero viene el problema. Los ordenadores comparten el mismo programa pero no las mismas restricciones, de forma que copiando los valores de registro de un ordenador con el programa desactivado y pegándolos en el ordenador bloqueado consiguen desactivar la aplicación...

Si el problema es ese entonces la primera solución que te ofrecí de usar Settings no te serviría, ya que el archivo de configuración sigue esta estructura, donde el hash sería el mismo en cada PC:
Código:
c:\Users\<username>\AppData\Local o Roaming\<companyname>\<appdomainname>_<eid>_<hash>\<verison>

Ejemplo real:
Código:
C:\Users\Administrador\AppData\Local\ElektroStudios\MasterMusik_Reports.exe_Url_q2a441mf5bc330sftjmvcdv30vohiv0o\2.0.0.0\user.config

De todas formas para otras cosas te puede interesar, aquí puedes conocer más detalles de su arquitectura, aunque es un artículo bastante antiguo:
Using My.Settings in Visual Basic 2005



A ver si lo he entendido bien, sino corrígeme.

Tu tienes algo PARECIDO a este ejemplo, en el código fuente:

Código
  1. Dim value As Integer = 0
  2.  
  3. Select Case value
  4.  
  5.    Case Is = 0
  6.        ' Activar aplicaciones.
  7.  
  8.    Case Is = 1
  9.        ' Denegar aplicaciones.
  10.  
  11.    Case Else
  12.        ' ...
  13.  
  14. End Select
(muy resumido)

¿Pero cómo decides si Value debe ser 0 o 1 al distribuirr y ejecutar el programa?, es decir, si el programa lo ejecutase yo en mi PC, ¿cómo se decide si se deben activar esas cosas que mencionas?, ¿se decide por un número?, ¿pero entonces cómo se decide el número que yo debo tener, no era aleatorio?, que lio, estoy algo espeso y no lo llego a pillar del todo.

De todas formas, ¿podrías mantener una conexión con los PCs de esas aulas? (mediante sockets), en ese caso lo que podrías hacer es administrar las activaciones de forma remota basándote en el HWID (Hardware ID) de cada equipo conectado,
de lo contrario, y si tienes acceso físico a esas aulas, entonces también puedes obtener manualmente el HWID de cada PC ejecutando un programa específico en ese PC que devuelva el HWID, es decir, obtienes los HWID de cada PC, luego creas una lista/array con los HWID predefinidos en tu código fuente y así administras las activaciones al distribuir la app, simplemente comprobando si el HWID dle equipo actual corresponde con algún HWID de la lista que compilaste.

Te dejo unas funciones que tal vez te podrían servir para pensar en algún enfoque, estas funciones sirven para obtener el identificador del procesador y de la placa base de un PC, y para cifrar un string mediante el algoritmo AES:

Código
  1.    ''' <remarks>
  2.    ''' *****************************************************************
  3.    ''' Title : Get CPU Identifier
  4.    ''' Author: Elektro
  5.    ''' Date  : 03-June-2015
  6.    '''
  7.    ''' Required Namespaces:
  8.    ''' <see cref="System.Management"/>
  9.    '''
  10.    ''' Usage Example:
  11.    ''' Dim Value as String = GetCpuId()
  12.    ''' *****************************************************************
  13.    ''' </remarks>
  14.    ''' <summary>
  15.    ''' Gets the motherboard ID of the current computer machine.
  16.    ''' </summary>
  17.    ''' <returns>The motherboard ID.</returns>
  18.    Public Shared Function GetCpuId() As String
  19.  
  20.        Using wmi As New ManagementObjectSearcher("select ProcessorID from Win32_Processor")
  21.  
  22.            Using query As ManagementObjectCollection = wmi.Get
  23.  
  24.                Return DirectCast(query(0), ManagementObject).Properties("ProcessorID").Value.ToString
  25.  
  26.            End Using
  27.  
  28.        End Using
  29.  
  30.    End Function

Código
  1.    ''' <remarks>
  2.    ''' *****************************************************************
  3.    ''' Title : Get Motherboard Identifier
  4.    ''' Author: Elektro
  5.    ''' Date  : 03-June-2015
  6.    '''
  7.    ''' Required Namespaces:
  8.    ''' <see cref="System.Management"/>
  9.    '''
  10.    ''' Usage Example:
  11.    ''' MsgBox(GetMotherboardId)
  12.    ''' *****************************************************************
  13.    ''' </remarks>
  14.    ''' <summary>
  15.    ''' Gets the motherboard ID of the current computer machine.
  16.    ''' </summary>
  17.    ''' <returns>The motherboard ID.</returns>
  18.    Public Shared Function GetMotherboardId() As String
  19.  
  20.        Using wmi As New ManagementObjectSearcher("select SerialNumber from Win32_BaseBoard")
  21.  
  22.            Using query As ManagementObjectCollection = wmi.Get
  23.  
  24.                Return DirectCast(query(0), ManagementObject).Properties("SerialNumber").Value.ToString
  25.  
  26.            End Using
  27.  
  28.        End Using
  29.  
  30.    End Function

Código
  1.    ''' <remarks>
  2.    ''' *****************************************************************
  3.    ''' Title : AES Encryptor
  4.    ''' Author: Elektro
  5.    ''' Date  : 03-June-2015
  6.    '''
  7.    ''' Required Namespaces:
  8.    ''' <see cref="System.IO"/>
  9.    ''' <see cref="System.Security.Cryptography"/>
  10.    ''' <see cref="System.Text"/>
  11.    '''
  12.    ''' Usage Example:
  13.    ''' Dim encrypted As String = AESEncryptor("Hello World!", key:="My Encryption Key", size:=128)
  14.    ''' *****************************************************************
  15.    ''' </remarks>
  16.    ''' <summary>
  17.    ''' Encrypts an string using AES algorithm.
  18.    ''' </summary>
  19.    ''' <param name="str">The string to encrypt.</param>
  20.    ''' <param name="key">The encryption key.</param>
  21.    ''' <param name="size">The key size. 128, 192 or 256 bits.</param>
  22.    ''' <param name="salt">The key salt.</param>
  23.    ''' <param name="mode">The encryption mode.</param>
  24.    ''' <returns>The encrypted string.</returns>
  25.    Public Function AESEncryptor(ByVal str As String,
  26.                                 ByVal key As String,
  27.                                 ByVal size As Integer,
  28.                                 Optional ByVal salt As Byte() = Nothing,
  29.                                 Optional ByVal mode As CipherMode = CipherMode.ECB) As String
  30.  
  31.        If (size <> 128) AndAlso (size <> 192) AndAlso (size <> 256) Then
  32.            Throw New ArgumentException(message:="Key size for this algorithm should be 128, 192 or 256.", paramName:="keySize")
  33.  
  34.        ElseIf (salt IsNot Nothing) AndAlso (salt.Length < 8) Then
  35.            Throw New ArgumentException(message:="Salt should contain at least 8 bytes.", paramName:="salt")
  36.  
  37.        ElseIf salt Is Nothing Then
  38.            salt = {&H49, &H76, &H61, &H6E, &H20, &H4D, &H65, &H64}
  39.  
  40.        End If
  41.  
  42.        Using crypto As Aes = Aes.Create()
  43.  
  44.            Dim pdb As Rfc2898DeriveBytes = New Rfc2898DeriveBytes(key, salt:=salt)
  45.  
  46.            crypto.KeySize = size ' 128, 192 or 256 Bits.
  47.            crypto.Key = pdb.GetBytes(cb:=(size \ 8)) ' 16, 24, or 32 or Bytes (128, 192 or 256 Bits).
  48.            crypto.IV = pdb.GetBytes(cb:=16) ' 16 Bytes (128 Bits).
  49.            crypto.Mode = mode
  50.  
  51.            Using ms As New MemoryStream()
  52.  
  53.                Using cs As New CryptoStream(ms, crypto.CreateEncryptor(), CryptoStreamMode.Write)
  54.  
  55.                    Dim strBytes As Byte() = Encoding.Unicode.GetBytes(str)
  56.                    cs.Write(strBytes, 0, strBytes.Length)
  57.                    cs.Close()
  58.  
  59.                End Using
  60.  
  61.                Return Convert.ToBase64String(ms.ToArray)
  62.  
  63.            End Using
  64.  
  65.        End Using
  66.  
  67.    End Function
  68.  
  69.    ''' <remarks>
  70.    ''' *****************************************************************
  71.    ''' Title : AES Decryptor
  72.    ''' Author: Elektro
  73.    ''' Date  : 03-June-2015
  74.    '''
  75.    ''' Required Namespaces:
  76.    ''' <see cref="System.IO"/>
  77.    ''' <see cref="System.Security.Cryptography"/>
  78.    ''' <see cref="System.Text"/>
  79.    '''
  80.    ''' Usage Example:
  81.    ''' Dim decrypted As String = AESDecryptor("JRVQnb2q7f3BtIDaq5Tdcqu2+2GYGEMLyQrBT9mMjgw=", key:="My Encryption Key", size:=128)
  82.    ''' *****************************************************************
  83.    ''' </remarks>
  84.    ''' <summary>
  85.    ''' Decrypts a previously encrypted string using AES algorithm.
  86.    ''' </summary>
  87.    ''' <param name="str">The encrypted string to decrypt.</param>
  88.    ''' <param name="key">The key used for encryption.</param>
  89.    ''' <param name="size">The key size used for encryption. 128, 192 or 256 bits.</param>
  90.    ''' <param name="salt">The key salt used for encryption.</param>
  91.    ''' <param name="mode">The encryption mode.</param>
  92.    ''' <returns>The decrypted string.</returns>
  93.    Public Function AESDecryptor(ByVal str As String,
  94.                                 ByVal key As String,
  95.                                 ByVal size As Integer,
  96.                                 Optional ByVal salt As Byte() = Nothing,
  97.                                 Optional ByVal mode As CipherMode = CipherMode.ECB) As String
  98.  
  99.        If (size <> 128) AndAlso (size <> 192) AndAlso (size <> 256) Then
  100.            Throw New ArgumentException(message:="Key size for this algorithm should be 128, 192 or 256.", paramName:="keySize")
  101.  
  102.        ElseIf (salt IsNot Nothing) AndAlso (salt.Length < 8) Then
  103.            Throw New ArgumentException(message:="Salt should contain at least 8 bytes.", paramName:="salt")
  104.  
  105.        ElseIf salt Is Nothing Then
  106.            salt = {&H49, &H76, &H61, &H6E, &H20, &H4D, &H65, &H64}
  107.  
  108.        End If
  109.  
  110.        Using crypto As Aes = Aes.Create()
  111.  
  112.            Dim pdb As New Rfc2898DeriveBytes(key, salt)
  113.  
  114.            crypto.KeySize = size ' 128, 192 or 256 Bits.
  115.            crypto.Key = pdb.GetBytes(cb:=(size \ 8)) ' 16, 24, or 32 or Bytes (128, 192 or 256 Bits).
  116.            crypto.IV = pdb.GetBytes(cb:=16) ' 16 Bytes (128 Bits).
  117.            crypto.Mode = mode
  118.  
  119.            Using ms As New MemoryStream()
  120.  
  121.                Using cs As New CryptoStream(ms, crypto.CreateDecryptor(), CryptoStreamMode.Write)
  122.  
  123.                    Dim cipherBytes As Byte() = Convert.FromBase64String(str)
  124.                    cs.Write(cipherBytes, 0, cipherBytes.Length)
  125.                    cs.Close()
  126.  
  127.                End Using
  128.  
  129.                Return Encoding.Unicode.GetString(ms.ToArray)
  130.  
  131.            End Using
  132.  
  133.        End Using
  134.  
  135.    End Function

Saludos
5196  Foros Generales / Foro Libre / Re: Explica tu avatar en: 3 Junio 2015, 17:41 pm
Yo he llevado muchos avatares en todos estos años, algunos absurdos cómo memes o gifs, pero ahora me he acostumbrado a llevar este, que identifica una de mis aficiones o pasiones, es el logo de Microsoft Visual Studio:



Aunque no lo parezca, no es un antifáz, es la etapa moderna/actual del logo que han tenido siempre, aunque publicamente tampoco se sabe mucho cual es el significado de ese logo, se dice que está relacionado con el símbolo de infinito, aquí pueden ver las anteriores fases del logo:






Saludos
5197  Foros Generales / Foro Libre / Re: Kebab en: 3 Junio 2015, 17:32 pm
En el video llevan todos el gorrito ese, pero ninguno tiene guantes y por ahí pasan 200 manos... me ha dado bastante asco.

Aunque no se si lo de llevar guantes es obligatorio auqí en España en este tipo de "fabricas", pero desde el procesado de la carne hasta que llega a tu boca todo es anti-higiénico, por no decir que muchos restaurantes de kebabs están llenos de moscas volando por las tapas (sin tapadera además, los muy cutres y cerdos), en más de una ocasión he salido nada más entrar en este tipo de establecimientos, y creo que despues de ver esto no volveré a comer un Kebab de esos.

Saludos
5198  Programación / Scripting / Re: Batch, ¿Software libre? en: 3 Junio 2015, 17:15 pm
hay tantos expertos que lo califican com. virus(perteneciendo a los malwares) como expertos expertos que lo niegan.

Yo personalmente si lo califico de virus, dependiendo de si lo sabes programar bien.

He leido y releido tantos autores que lo defienden como virus, y he aprendido hacer ahi desde cosas sencillas como bucles que no dejen de abrirte pestañas programas paginas web o la misma disketera del pc automaticamente, borrar todo sin perdir permiso al usuario y tantas cosas asi basicas, como cosas mas avanzadas como crear gusanos en batch. En resumen, con batch puedes alterar el normal funcionamiento del ordenador, cualidad que tiene todo virus segun wikipedia.

No te ofendas, pero todo eso que has leido proviene de Lammers, o gente a la que Microsoft les paga, no se jaja.

Te lo comento por experiencia en Batch:
[Batch] Virulator 1.0c - By Elektro

A duras penas Batch se puede considerar cómo un lenguaje de programación, ya que es una herramienta muy limitada, según Microsoft es una herramienta diseñada y destinada a cumplir tareas básicas del sistema, y el desarrollo de un virus no es una tarea básico. Batch es un "lenguaje" de procesamiento por lotes, ¿entiendes lo que es eso?, ni siquiera es un lenguaje orientado a objetos y con el que poder manipular la API del SO, ya me dirás tú que cosas vas a hacer con Batch, cosas básicas, muy básicas y además mal hechas, por sus limitaciones siempre resulta mucho más tedioso un código desarrollado en Batch que en cualquier otro lenguaje de hoy en día, por ende, debido a su naturaleza limitada, Batch ni siquira tiene capacidad para definir un Array, ni manejar Sockets, ni nada que realmente sea útil.

Saber programar bien no excluye la realidad que acabo de comentar, Batch es inutil, puedes alterar el comportamiento del PC ...claro, los brazos y las piernas de Batch precisamente son las aplicaciones externas de Microsoft que están instaladas en el sistema (ping.exe, attrib.exe, xcopy.exe, y cientos de aplicaciones más), los mal llamados "comandos de Batch" cómo si formasen parte del lenguaje, pero no, son comandos EXTERNOS (exceptuando los comandos internos, como del, echo, etc), y esa es la especie de "framework" de Batch la cual sin ello sería una herramienta más inutil todavía, un lenguaje de verdad no necesita apoyarse en aplicaciones externas para elaborar la mayoria de las tareas que necesites llevar a cabo.

Por no decir que carece de cualquier tipo de sistema de depuración, y es imposible implementar algunas características de los Virus cómo la persistencia o la propagación (a menos que utilices herramientas EXTERNAS para ello), de verdad, cualquier persona que realmente desarrolle Virus se ofendería por decir que con Batch se puede desarrollar un virus.

Si te interesa la idea de desarrollar una bomba lógica en Batch me parece estupendo, aun debes practicar y manejar otros lenguajes para entender conceptos y sus diferencias, te vendría bien,
pero deja de pensar que en Batch puedes hacer virus y deja de leer a esos "expertos", por qué te llevará por el camibo equivocado, el del lammerismo.

Aquí en el foro, en la sección de diseño y análisis de Malware tienes expertos de verdad, personas que desarrollan RATS, Crypters, y quizás Virus tipo el virus de la policia (xD), te sugiero que busques la opinión de ellos respecto a este tema para despejarte todas tus dudas.

Saludos!
5199  Foros Generales / Dudas Generales / Re: como descargar juegos gratis de playstore en: 2 Junio 2015, 10:09 am
LLevas un dia en el Foro y yá vienes diciendo que tenemos demasiadas Reglas,

XDDDD

Creo que ya se te dijo todo y no tiene sentido que este tema siga abierto, amigo... compórtate sin llamar demasiado la atención, aquí se viene a aprender, divertirse, ayudar... pero siempre respetando las reglas.

Saludos!
5200  Programación / .NET (C#, VB.NET, ASP) / Re: Modificar ejecutable VisualBasic en la instalación en: 2 Junio 2015, 10:05 am
¿Por qué tienes pegas con almacenar la configuración en un archivo?, una solución sería hacer lo que te comentó @nolasco281, pero usando la infraestructura Settings para que la aletoriedad se produzca una única vez por instalación.

Ej:
Código
  1. If Not My.Settings.IsRandomized Then
  2.  My.Settings.RandomValue = ' Generar valor aleatorio
  3.  My.Settings.IsRandomized = True
  4. End If
  5.  
  6. lbl.text = My.Settings.RandomValue.ToString

Teniendo en cuenta que esos datos se guardan en un archivo de configuración pero es la solución menos compleja, de lo contrario las opciones que te quedan son llamar a la app mediante argumentos para pasarle un número específico (para esto debes controlar los argumentos desde la app, e iniciar la app desde la consola o un acceso directo para pasarle dicho número), automatizar la compilación de la app en tiempo de ejecución desde el instalador (editando previamente "X" valor estático del código fuente antes de compilar, para aplicar dicha aletoriedad por instalación, claro está), o automatizar el parcheo de "X" bytes de la app compilada para modificar el valor, para esto primero debes localizar los bytes que hacen referencia a ese valor "aleatorio" en un editor hexadecimal o como veas.

En realidad ninguna de esas alternativas es dificil mientras sepas cómo hacerlo.

Saludos
Páginas: 1 ... 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 [520] 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines