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


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 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 536 537 538 539 540 541 ... 1258
5251  Programación / .NET (C#, VB.NET, ASP) / Re: Obtener porcentaje de descarga desde un módulo en: 2 Julio 2015, 08:53 am
Cómo ya te digo, habría que ver el resto del código, por que las modificaciones que comentas en mi caso me funcionan correctamente, el label se actualiza correctamente.

De todas formas que estés utilizando un módulo para operaciones asíncronas, objetos disposables, y eventos, no me convence en absoluto, no debería causarte problemas, pero tampoco hay necesidad de que los miembros definidos en ese modulo sean compartidos con el resto de classes, por ese motivo yo usaría una Class instanciable y liberaría los objetos cuando sea necesario.

Aparte de eso, en otras circunstancias te diría que utilizases un BackgroundWorker, pero en este caso considero que sería practicamente el mismo resultado.

Prueba esto, si no te funciona entonces no sé que decirte a menos que muestres tu código completo para buscar un posible problema que en el código que has mostrado hasta ahora no aparece o no lo puedo detectar.

Así es más o menos cómo yo encapsularía esos datos:

Código
  1. #Region " Imports "
  2.  
  3. Imports System
  4. Imports System.ComponentModel
  5. Imports System.IO
  6. Imports System.Linq
  7. Imports System.Net
  8. Imports System.Windows.Forms
  9. Imports System.Threading.Tasks
  10.  
  11. #End Region
  12.  
  13. Public NotInheritable Class FileDownloader : Implements IDisposable
  14.  
  15. #Region " Disposable Members "
  16.  
  17.    Private WithEvents wc As WebClient
  18.  
  19. #End Region
  20.  
  21. #Region " Properties "
  22.  
  23.    Public ReadOnly Property IsBusy As Boolean
  24.        Get
  25.            If Me.wc IsNot Nothing Then
  26.                Return Me.wc.IsBusy
  27.            Else
  28.                Return False
  29.            End If
  30.        End Get
  31.    End Property
  32.  
  33. #End Region
  34.  
  35. #Region " Events "
  36.  
  37.    Public Event DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
  38.    Public Event DownloadCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs)
  39.  
  40. #End Region
  41.  
  42. #Region " Event-Handlers "
  43.  
  44.    Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) _
  45.    Handles wc.DownloadProgressChanged
  46.  
  47.        If (Me.DownloadProgressChangedEvent IsNot Nothing) AndAlso (e.ProgressPercentage <> 100) Then
  48.            RaiseEvent DownloadProgressChanged(sender, e)
  49.        End If
  50.  
  51.    End Sub
  52.  
  53.    Private Sub WC_DownloadFileCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs) _
  54.    Handles wc.DownloadFileCompleted
  55.  
  56.        If (Me.DownloadCompletedEvent IsNot Nothing) Then
  57.            RaiseEvent DownloadCompleted(sender, e)
  58.        End If
  59.  
  60.    End Sub
  61.  
  62. #End Region
  63.  
  64. #Region " Public Methods "
  65.  
  66.    Public Sub DownloadAsync(ByVal url As String,
  67.                             Optional ByVal targetFilepath As String = "")
  68.  
  69.        If String.IsNullOrWhiteSpace(url) Then
  70.            Throw New ArgumentNullException(paramName:="url")
  71.  
  72.        Else
  73.  
  74.            If (Me.wc IsNot Nothing) AndAlso (Me.wc.IsBusy) Then
  75.                Throw New Exception(message:="Another download is in progress.")
  76.  
  77.            Else
  78.                Me.wc = New WebClient With
  79.                 {
  80.                     .UseDefaultCredentials = True
  81.                 }
  82.  
  83.                If String.IsNullOrWhiteSpace(targetFilepath) Then
  84.                    targetFilepath = Path.GetFileName(url)
  85.                End If
  86.  
  87.                Task.Factory.StartNew(Sub() wc.DownloadFileAsync(New Uri(url), targetFilepath))
  88.  
  89.            End If
  90.  
  91.        End If
  92.  
  93.    End Sub
  94.  
  95.    ''' <summary>
  96.    ''' Cancels the current asynchronous download.
  97.    ''' </summary>
  98.    Public Sub Cancel()
  99.  
  100.        If Me.wc Is Nothing Then
  101.            Throw New NullReferenceException(message:="", innerException:=New ObjectDisposedException(objectName:="wc"))
  102.  
  103.        ElseIf Me.wc.IsBusy Then
  104.            Me.wc.CancelAsync()
  105.  
  106.        End If
  107.  
  108.    End Sub
  109.  
  110. #End Region
  111.  
  112. #Region "IDisposable Support"
  113.  
  114.    ''' ----------------------------------------------------------------------------------------------------
  115.    ''' <summary>
  116.    ''' To detect redundant calls when disposing.
  117.    ''' </summary>
  118.    ''' ----------------------------------------------------------------------------------------------------
  119.    Private isDisposed As Boolean = False
  120.  
  121.    ''' ----------------------------------------------------------------------------------------------------
  122.    ''' <summary>
  123.    ''' Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
  124.    ''' </summary>
  125.    ''' ----------------------------------------------------------------------------------------------------
  126.    Public Sub Dispose() Implements IDisposable.Dispose
  127.        Me.Dispose(isDisposing:=True)
  128.        GC.SuppressFinalize(obj:=Me)
  129.    End Sub
  130.  
  131.    ''' ----------------------------------------------------------------------------------------------------
  132.    ''' <summary>
  133.    ''' Releases unmanaged and - optionally - managed resources.
  134.    ''' </summary>
  135.    ''' ----------------------------------------------------------------------------------------------------
  136.    ''' <param name="isDisposing">
  137.    ''' <c>True</c> to release both managed and unmanaged resources;
  138.    ''' <c>False</c> to release only unmanaged resources.
  139.    ''' </param>
  140.    ''' ----------------------------------------------------------------------------------------------------
  141.    Protected Sub Dispose(ByVal isDisposing As Boolean)
  142.  
  143.        If Not Me.isDisposed Then
  144.  
  145.            If isDisposing Then
  146.  
  147.                If Me.wc IsNot Nothing Then
  148.                    Me.wc.Dispose()
  149.                End If
  150.  
  151.            End If
  152.  
  153.        End If
  154.  
  155.        Me.isDisposed = True
  156.  
  157.    End Sub
  158.  
  159. #End Region
  160.  
  161. End Class

Y el uso que le daría ...más o menos también:

Código
  1. Imports System.ComponentModel
  2. Imports System.Threading.Tasks
  3.  
  4. Public NotInheritable Class Form1 : Inherits Form
  5.  
  6.    Dim WithEvents downloader As New FileDownloader
  7.  
  8.    Private Sub Test() Handles MyBase.Shown
  9.  
  10.        Me.downloader.DownloadAsync("http://download.thinkbroadband.com/10MB.zip")
  11.  
  12.    End Sub
  13.  
  14.    Private Sub Button1_Click(sender As Object, e As EventArgs) _
  15.    Handles Button1.Click
  16.  
  17.        If Me.downloader.IsBusy Then
  18.            Me.downloader.Cancel()
  19.        End If
  20.  
  21.    End Sub
  22.  
  23.    Private Sub Downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) _
  24.    Handles downloader.DownloadProgressChanged
  25.  
  26.        Dim progress As Double = (e.BytesReceived / e.TotalBytesToReceive) * 100.0R
  27.  
  28.        If Me.Label1.InvokeRequired Then
  29.            Me.Label1.Invoke(Sub() Me.Label1.Text = progress.ToString(format:="00.00 \%"))
  30.  
  31.        Else
  32.            Me.Label1.Text = progress.ToString(format:="00.00 \%")
  33.  
  34.        End If
  35.  
  36.    End Sub
  37.  
  38.    Private Sub Downloader_DownloadCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs) _
  39.    Handles downloader.DownloadCompleted
  40.  
  41.        If e.Cancelled Then
  42.            Exit Sub
  43.        End If
  44.  
  45.        If Me.Label1.InvokeRequired Then
  46.            Me.Label1.Invoke(Sub() Me.Label1.Text = 100.0R.ToString(format:="00.00 \%"))
  47.  
  48.        Else
  49.            Me.Label1.Text = 100.0R.ToString(format:="00.00 \%")
  50.  
  51.        End If
  52.  
  53.    End Sub
  54.  
  55. End Class

Saludos.
5252  Programación / .NET (C#, VB.NET, ASP) / Re: Obtener tipo de red con vb.net en: 2 Julio 2015, 07:06 am
Tal vez puedas utilizar los miembros del namespace System.Net.NetworkInformation para ese propósito.

Con el método NetworkInterface.GetAllNetworkInterfaces enumeras los adaptadores de red, y con la propiedad NetworkInterface.NetworkInterfaceType determinas el tipo de red, cuyo valor será uno de la siguiente enumeración:
NetworkInterfaceType Enumeration - MSDN

Con otros miembros puedes determinar si la red está operativa, y muchas cosas más.

Saludos
5253  Programación / .NET (C#, VB.NET, ASP) / Re: Obtener porcentaje de descarga desde un módulo en: 1 Julio 2015, 19:56 pm
Habría que analizar lo que haces con el Control de tipo Label, por que el código que has mostrado funciona.

De todas formas lo he simplificado (un poco) y he corregido varios conflictos de convención o estándares de VB.Net en los nombres que le diste a los miembros del código.

Esto te debería funcionar. Adapta el código a tus necesidades.

Código
  1. DownLoadAsynchronously("http://download.thinkbroadband.com/5MB.zip")

Código
  1. Module ModDownloadUrl
  2.  
  3.    Private WithEvents wc As WebClient
  4.  
  5.    Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) _
  6.    Handles wc.DownloadProgressChanged
  7.  
  8.        If Not e.ProgressPercentage = 100 Then
  9.            Trace.WriteLine(String.Format("Progress: {0}", ((e.BytesReceived / e.TotalBytesToReceive) * 100.0R).ToString(format:="00.00 \%")))
  10.        End If
  11.  
  12.    End Sub
  13.  
  14.    Private Sub WC_DownloadFileCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs) _
  15.    Handles wc.DownloadFileCompleted
  16.  
  17.        wc.Dispose()
  18.        Trace.WriteLine(String.Format("Progress: {0}", 100.0R.ToString(format:="00.00 \%")))
  19.        MessageBox.Show("Download Complete.", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  20.  
  21.    End Sub
  22.  
  23.    Public Sub DownLoadAsynchronously(ByVal url As String,
  24.                                      Optional ByVal targetFilepath As String = "",
  25.                                      Optional ByVal ctrl As Control = Nothing)
  26.  
  27.        If String.IsNullOrWhiteSpace(targetFilepath) Then
  28.            targetFilepath = Path.GetFileName(url)
  29.        End If
  30.  
  31.        wc = New WebClient
  32.        wc.DownloadFileAsync(New Uri(url), targetFilepath)
  33.  
  34.    End Sub
  35.  
  36. End Module

Saludos
5254  Programación / .NET (C#, VB.NET, ASP) / Re: Necesito ayuda con este error!!! en C# en: 1 Julio 2015, 19:24 pm
" CommandType " no existe en el contexto actual.... Necesito saber a que se debe esto!

Ese tipo de error se debe a que no se puede localizar ningún miembro con el nombre 'CommandType', en algunos casos suele ser por un error de escritura, y en otros casos cómo este por que falta el namespace donde se encuentra dicho miembro.

Escribe el namespace completo:
Código
  1. cmd.CommandType = System.Data.CommandType.StoredProcedure;
                   
O importa el namespace con la directiva using.
Código
  1. using System.Data;

Así te debería funcionar.

Saludos
5255  Programación / .NET (C#, VB.NET, ASP) / Re: Como hacer esto en c#¿ en: 1 Julio 2015, 14:39 pm
Trata de publicar tu código la próxima vez para poder corregirte los errores que hayas tenido, piensa que aprender de tus errores te serviría de más ayuda.



Una manera de hacerlo sería suscribirte al evento RichTextBox.TextChanged para actualizar el TextBox especificado cuando este evento se dispare, reflejando así las modificaciones realizadas en la linea 0 del RichTextBox, recurriendo a la propiedad RichTextBox.Lines, la cual es una colección de strings que contiene las lineas de texto del RichTextBox.

Ejemplo en Vb.Net:
Código
  1. Private Sub RichTextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) _
  2. Handles RichTextBox1.TextChanged
  3.  
  4.    Me.TextBox1.Text = DirectCast(sender, RichTextBox).Lines.FirstOrDefault
  5.  
  6. End Sub

C#:
Código
  1. private void RichTextBox1_TextChanged(object sender, EventArgs e)
  2. {
  3.    this.TextBox1.Text = ((RichTextBox)sender).Lines.FirstOrDefault;
  4. }

Si prefieres utilizar un botón para actualizar arbitrariamente el texto del TextBox, entonces solo tienes que hacer pequeñisimos cambios en el código que te acabo de mostrar para adaptarlo a ese tipo de comportamiento que mencionas, vamos, con esto quiero decir que creo que serás capaz de hacerlo tu solo sin ayuda xD :P.

Saludos
5256  Foros Generales / Dudas Generales / MOVIDO: ¿podría internet funcionar así? en: 1 Julio 2015, 14:31 pm
El tema ha sido movido a Foro Libre.

http://foro.elhacker.net/index.php?topic=437886.0
5257  Foros Generales / Foro Libre / Re: ¿podría internet funcionar así? en: 1 Julio 2015, 14:31 pm
...

Por favor, no empieces con los típicos posts chorra y trolls.

El contenido de un post debe tener un mínimo de sentido, un propósito general, un argumento justificable, esto ya te lo comentó un compañero moderador en otra de tus "preguntas" de otra de las cuentas de usuario que tienes registradas en el foro, pero todo lo que publicas parece carecer de sentido.

Muevo el tema a un lugar más acorde, a falta de un subforo dedicado a divagaciones y cosas sin sentido en general...

Saludos!
5258  Foros Generales / Sugerencias y dudas sobre el Foro / Re: [Reclamo] Posible virus y el autor sólo responde en forma negativa. en: 30 Junio 2015, 15:14 pm
2) En este caso ya que es una aplicación con interface botones y demás controles, no es posible saber con exactitud con simpemente ejecutar y esperar, se debe ejecutar todas las funcionabilidades que tenga la aplicación al usar los controles. En el caso del Loader que mencione en el punto 1, tambien es posible enviar mensajes a los controles de la aplicación desde el Loader para ejecutar las funcionabilidades, enviar todos los mensajes posibles incluso algunos como WM_MOUSEMOVE que podría ser usado para detectar si realmente está siendo usada por un usuario o manipulada por algun otro programa, hay muchisimos mensajes.

4) Las aplicaciones puede tener funciones que se ejecutarán en un futuro, algunos les llaman bombas logicas: por ahora no muestran ningun comportamiento extraño pero luego quien sabe.

5) La única manera de saber con exactitud todas las acciones de una aplicación es teniendo el código fuente o haciendo un analisis muy extenso usando tecnologia avanzada para analisis como un Hipervisor, estoy actualmente terminando uno espero tenerlo en unos meses.

Totalmente de acuerdo, bueno, creo que es algo que resulta obvio para cualquiera, aunque de todas formas en la V.M probé casi todas las características de la app (todos los botones, haciendo escaneos y modificando opciones), pero tal vez no debí decir "Está totalmente limpio" ya que cómo tu has comentado, solamente observando ese código fuente que nunca se llegó a compartir podriamos salir de dudas sobre si realmente está infectado o no... ya que el autor del programa podría ejecutar un código malicioso al cumplirse "X" condición en la aplicación, quien sabe lo que realmente hará...

A mi sinceramente me da igual la reputación que una persona tenga si esa persona hace las cosas de esta manera tan... (prefiero no decir nada más), pero es que me mosqueo, estás cosas me mosquean mucho de verdad, por que, para mi, publicar programas gratuitos sin compartir el código fuente no es nada respetable, en absoluto, solo genera negatividad y más cuando se trata de un programa de esta temática.



3) Servicios de Sandbox como Anubis son extremadamente faciles de detectar, solo en el caso de Anubis es posible detectarlo por medio de información del hardware, procesos, modulos o una combinación de ellos, este punto incluye programas como Process monitor ( Por medio de nombre de clases de ventana, controles, etc ) de esta manera es posible que al detectar este tipo de herramientas un programa puede ocultar sus acciones maliciosas y no mostrar algún comportamiento extraño.

Cabe mencionar que además es facilísimo encontrar snippets de diversos anti-sandboxes para muchos lenguajes de programación, esto quiere decir que si el autor del programa quisiera entonces no tendría más que googlear un poco y hacer un copy/paste (o desarrollarlo por si mismo) para añadirle ese tipo de protección o evasión de detección, pero que le vamos a hacer...

De todas formas, también cabe mencionar que generalmente un código anti-sandbox (o packers con características anti-sandbox) se utilizan directamente para denegar la ejecución de la aplicación (para que no corra la app en una V.M), no se suele utilizar arbitrariamente "en mitad de la aplicación", pero bien podría ser, ya que dependería de las intenciones del autor.



Me parece genial la información que has aportado para dar a conocer varios detalles importantes a los usuarios, y así hacer saber también que mi análisis no es del todo fiel, probablemente ningún análisis de nadie sería concluyente al 100%, estas cosas nunca parecen serlo.

PD: Y que no hayas sido ofensivo, se agradece todavía más si cabe. Sin sarcasmo.

Saludos!
5259  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Reglas de la sección Analisis y Diseño de Malware en: 30 Junio 2015, 10:23 am
Yo directamente propongo de nuevo que se añada la regla de "Al publicar un programa que sea de tu propiedad, debes compartir también el código fuente.", en el CAREN, o en su defecto al foro de Análisis y diseño de Malware.

Por el sentido común, y el bien estar global de los usuarios más inexpertos o más inocentes.

Saludos!
5260  Foros Generales / Sugerencias y dudas sobre el Foro / Re: [Reclamo] Posible virus y el autor sólo responde en forma negativa. en: 30 Junio 2015, 03:49 am
El programa de RDG Malware Detector parece estar limpio.

El siguiente análisis fue llevado a cabo en una máquina virtual con Windows 7 x64, con las siguientes herramientas:

  • RegShot 2 (Unicode Mod)
  • Moo0 File Monitor
  • Process Monitor (Sys Internals)
    +
  • Anubis



· Registry Monitor (claves modificadas):
Código
  1. Windows Registry Editor Version 5.00
  2.  
  3. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\CryptSvc]
  4. "Start"=dword:00000003
  5.  
  6. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CryptSvc]
  7. "Start"=dword:00000003
  8.  
  9. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VSS\Diag\System Writer]

Simplemente se modifica el tipo de inicio del servicio criptográfico de Windows.



· File Monitor (archivos expandidos):
Código:
C:\Users\Administrador\AppData\Local\Temp\~DF71D986AEB8DF30B4.tmp

Es un archivo temporal binario con nombre único (es decir, variante cada vez que se inicie la aplicación) ccon un tamaño de 64 kilobytes.



· API Monitor:
Todo me parece normal.
http://pastebin.com/6JpNM8ea
(prio32.dll, prio.ini, tienen que ver con una aplicación que tengo instalada para priorizar ciertos parámetros de las aplicaciones)

Faltaría un análisis más avanzado y elaborado sobre esto, un API Spy con otras herramientas que tengo pero me llevaría más tiempo y dedicación.



· Análisis exhaustivo de Anubis:

Empaqueté el programa en un SFX por que de lo contrario el análisis iba a ser en vano al requerir muchos archivos adicionales que no podía subir al mismo tiempo.

Reporte: https://anubis.iseclab.org/?action=result&task_id=1ec19b2f51ea76e948124f41380f4c625

El análisis de procesos activos y conexiones establecidas, es decir, cero y cero, están ahí.

Saludos!
Páginas: 1 ... 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 536 537 538 539 540 541 ... 1258
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines