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


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 [537] 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 ... 1254
5361  Programación / Programación General / Re: .Exe evita ejecución de una dll? en: 6 Junio 2015, 20:55 pm
es posible que al ejecutarse evite el inicio de unas funciones dll?

Si, es posible siempre que hayan programado el código fuente para ese fín; se puede hookear "X" función de "X" .dll para procesar y alterar el comportamiento de sus llamadas, así cómo cancelarlas/ignorarlas.

en programación c# es posible crear algún archivo que ejecute una dll específicamente al iniciar el exe?

¿Qué estás preguntando exactamente?, ¿puedes ser más específico?, una .dll difiere de un executable en que precisamente no es un archivo ejecutable, ya que no provee un punto de entrada (entry point) que determine una función principal a la cual se le pase el control para iniciar su ejecución.

Si lo que pretendes es cargar una .dll y utilizar sus funciones, puedes hacerlo, sí;
en caso de que eso sea lo que pretendes, y si es un ensamblado .Net, entonces la solución más sencilla sería referenciar dicha .dll en tú solución de Visual Studio, la solución compleja sería cargar dinamicamente la .dll en tiempo de ejecución utilizando la técnica Reflection, con los miembros de la Class System.Reflection.Assembly, empezando por el miembro para cargar el ensamblado (System.Reflection.Aassembly.LoadFile()) y posteriórmente los miembros para localizar las funciones de dicha dll;
si por lo contrario es una .dll desarrollada en C/C++, entonces debes crear un wrapper, en esencia constaría de una Class de C# donde deberías declarar las mismas funciones que tiene la .dll y con sus mismas firmas (es decir, la misma parametización equivalente a .Net), es una tarea sencilla siempre y cuando conozcas cómo ha sido desarrollada dicha .dll, debes conocer los nombres de dichas funciones y también sus firmas, ya que debido a la naturaleza de C++, esto último es indescifrable mediante ingeniería inversa, no puedes saber a ciencia cierta si una función compilada toma un string cómo argumento, o un entero, a menos que hayas intentado pasarle ambos tipos de argumentos para salir de dudas, por suerte hay herramientas que facilitan en parte el análisis de una dll, cómo por ejemplo "Dll Export Viewer" de Nirsoft.

Saludos
5362  Comunicaciones / Redes / Re: Ayuda!Rastrear en: 6 Junio 2015, 19:39 pm
Con una IP lo que puedes rastrear es la centralita del servicio proveedor de Internet (ISP) de donde proviene esa IP, que no precisamente tiene por que ser la misma ciudad que el PC que está usando esa IP; por ejemplo, al geolocalizar mi IP, aparecerá casi en la otra frontera del país de donde realmente me encuentro yo ubicado.

Puedes utilizar cualquier servicio online de localización geográfica (Geolocation), ElHacker.net tiene uno:
Geolocalizador Ip (Localizar una ip)

Saludos
5363  Foros Generales / Foro Libre / Re: Marihuana de otro planeta: la Nasa encuentra THC en fragmento de meteorito en: 6 Junio 2015, 08:15 am
A mi me parece una "noticia" muy sensacionalista, cómo para tomarla en serio, ¿algún ciéntifico lo hará?.

Por cierto, ¿cómo es que la roca es del 2010, y lo descubren ahora?, ¿no será que alguien que pasaba por allí en el desierto de Nevada se haya fumado algún leño, o también el científico que analizó la roca, y luego unos años más tarde han vuelto a analizar esa roca y han hecho el "descubrimiento" (de colillas de marihuana)?...

Por un lado me imagino que en otros planetas habrá vegetación, plantas, polen (y POLEN), etc, pero no se... es que no le veo sentido, para mi esto no es nada serio, desde la forma en publicar esta noticia (la fuente de la noticia) hasta la noticia en si misma.

Saludos
5364  Programación / .NET (C#, VB.NET, ASP) / Re: Leer archivo ROM y obtener información en: 5 Junio 2015, 13:45 pm
Da error

Si un código te da error, al menos especifica que error, el mensaje de error, y donde se produce, se te ha dicho ya en varias ocasiones en otros posts.

Dicho esto, el error que tienes es obvio, los valores hexadecimales en .Net no se manejan cómo strings, el datatype que espera el parámetro "offset" del método "FileStream.Seek()" es un entero (Int64/Long), por ende, debes usar un valor de ese tipo.

De todas formas te comento que la manera de utilizar valores hexadecimales es escribiendo enteros literales (menos aquellos métodos que acepten un formato de String hexadecimal).

En VB.Net:
Código:
Dim value as Integer = &H101C0

En C#:
Código:
int value = 0x101c0;

FileStream.Seek Method - MSDN
Convert.ToInt64(String, Int32) Method - MSDN

Hexadecimal literals (C#) - MSDN
Hexadecimal literals (Visual Basic) - MSDN

Saludos
5365  Programación / .NET (C#, VB.NET, ASP) / Re: Leer archivo ROM y obtener información en: 5 Junio 2015, 12:01 pm
¿Cual es la pregunta en cuestión?, imagino que en Google podrás encontrar las especificaciones del formato SMC aun hoy en día, y sabiendo eso sería suficiente para localizar e identificar toda la información que necesitas.

Si la pregunta es "¿cómo obtener el nombre?":
Código
  1. Public Function GetRomName(ByVal filepath As String) As String
  2.  
  3.    Dim buffer As Byte() = Enumerable.Repeat(New Byte, capacidadDelNombre).ToArray
  4.  
  5.    Using fs As New FileStream(filepath, FileMode.Open)
  6.  
  7.        fs.Seek(offset, SeekOrigin.Begin)
  8.        fs.Read(buffer, 0, capacidadDelNombre)
  9.        fs.Close()
  10.  
  11.    End Using
  12.  
  13.    Return String.Join("", From b As Byte In buffer Select Convert.ToChar(b)).TrimEnd({" "c})
  14.  
  15. End Function

Saludos!
5366  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.
5367  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.
5368  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.
5369  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
5370  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
Páginas: 1 ... 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 [537] 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 ... 1254
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines