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


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  Vuelve el perro arrepentido con el mismo error en un programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Vuelve el perro arrepentido con el mismo error en un programa  (Leído 744 veces)
zalazar16

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Vuelve el perro arrepentido con el mismo error en un programa
« en: 12 Noviembre 2017, 15:13 »

Buenas, tengo un problema, verán tengo una aplicación hermana de la otra que les había mencionado antes, esta presenta la misma falla, el supuesto "CÓDIGO FUENTE" sería traducido forzudamente con un programa de C# a VB, o no sé.

El programa lo abro con Visual Studio y me lanza errores, pero veo que el más grave, que no he podido solucionar, es que me dice declaración duplicada del miembro size y form.

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."

No se si me puedan ayudar o Elektro por favor me pueda echar una manito, estaría eternamente agradecido toda la vida y la otra. :-[ :-[ :-[

 :o este es el supuesto código fuente:

https://www.mediafire.com/file/uaziq2tfgwzrfud/SISTEMA%20SUPUESTO%20CODIGO.zip


En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.293


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #1 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.


« Última modificación: 12 Noviembre 2017, 19:46 por Eleкtro » En línea


[/cent
zalazar16

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #2 en: 13 Noviembre 2017, 01:50 »

 :¬¬ Creo que la parranda fue que me ofuscaron el anterior código, y por eso es completamente diferente :-( :-( :-( :-(

Esta es el CF sin OFUSCAR

https://www.mediafire.com/file/4krh72s22i7ebt4/SISTEMA%20NO%20OBFUSCADO.zip

CREO QUE PUDE SACAR ALGUNOS ERRORES, AHORA TENGO ERRORES DE DATETIME, y Size y Point, ahora si, era que estaba Ofuscado el bendito programa, Dios, le voy a dar un premio al que lo hizo  :rolleyes: ojala me puedan ayudar con este bendito dolor de cabeza

GRACIAS AMIGO ELEKTRO POR TU AYUDA, ERES LO MÁXIMO QUE UNO PUEDE ENCONTRAR POR LA INTERNET, PERSONAS COMO TU HACEN FALTA EN EL MUNDO!!!!!

ahora no tengo los Me000x y la infinidad de parecidos, solo DateTime y Size, el codigo creo que esta bien, el problema es al tratar de abrir el diseñador de Windows Forms

MOD: No hacer doble post. Usa el botón modificar.
« Última modificación: 15 Noviembre 2017, 18:03 por MCKSys Argentina » En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.293


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #3 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
En línea


[/cent
zalazar16

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #4 en: 13 Noviembre 2017, 23:00 »

Si ese mismo, el que dice NO OFUSCADO, Si lo revisas seria lo mejor de este mundo, te monto un altar
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.009


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #5 en: 14 Noviembre 2017, 00:59 »

si ese supuesto codigo fuente lo conseguiste desensamblando un exe con alguna herramienta tipo dnspy,reflector, etc pone el exe y lo veo para sacar el ofuscador antes de ver el código fuente, sino es así, perdón por meterme.
En línea

zalazar16

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #6 en: 14 Noviembre 2017, 11:33 »


 Sabes, haciendo pruebas pase el programa por varios decompiladores, telerik, skater, etc

Pero al pasarlo por NetReflector si me arroja parte exacta del código el problema es que el diseñador de Windows Forms lo da en código, y lanza errores, porque creo que ese programa no fue ofuscado de alguna manera, bueno es que el programa aveces es un asco, pero este tiene unos pequeños avances ajajajaja
« Última modificación: 15 Noviembre 2017, 17:42 por zalazar16 » En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.293


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #7 en: 15 Noviembre 2017, 16:40 »

Bueno, ya he analizado el "SISTEMA NO OFUSCADO". Si sigues al pie de la letra las siguientes indicaciones, arreglarás todos los errores de compilación y del diseñador de Forms.



Para arreglar los errores de compilación, estos son los reemplazamientos globales de texto en la clase Form1.vb que se debe hacer:

(primero el string original, abajo el reemplazamiento)

Citar
Citar
Código:
Dim date As DateTime
Código:
Dim [date] As DateTime

Citar
Código:
DateAndTime.get_Now
Código:
DateAndTime.Now

Citar
Código:
DateAndTime.get_Today
Código:
DateAndTime.Today

Citar
Código:
DateAndTime.get_TimeString
Código:
DateAndTime.TimeString

Citar
Código:
DateAndTime.DateAdd(4
Código:
DateAndTime.DateAdd(DateInterval.Day

Citar
Código:
As Timer
Código:
As System.Windows.Forms.Timer

Citar
Código:
New Timer
Código:
New System.Windows.Forms.Timer

Citar
Código:
Private Overridable Property
Código:
Private Property

Y en la clase Cliente.vb
Citar
Citar
Código:
Public Custom Event
Código:
Public Event

Citar
Código:
New Thread(New ThreadStart(AddressOf Me.LeerSocket)).Start
Código:
Dim t As New Thread(New ThreadStart(AddressOf Me.LeerSocket))
t.Start



Para arreglar el error del diseñador de forms: "Duplicate declaration of member 'size'"

Dentro del método 'Initialize' de la clase 'Form1.vb', eliminas esta linea:
Código:
Dim size As New Size(&H100, &H124)

Y esto lo dejas así:
Código:
Me.CheckedListBox1.Size = New Size(&H100, &H124)

Y luego nos quedarán 555 errores de compilación en lineas como esta:
Citar
Código:
size = New Size(280, &H98)
Me.CheckedListBox2.Size = size

Basicamente tienes que ponerle el valor de la variable "size" correspondiente a cada linea:
Código:
Me.CheckedListBox2.Size = New Size(280, &H98)

Se puede automatizar la tarea de reemplazamiento con el siguiente código de una aplicación de consola:

Código
  1. Public Module Module1
  2.  
  3.    Public Sub Main()
  4.  
  5.        Dim filepath As String = "...\SISTEMA NO OBFUSCADO\LOTERIA\Form1.vb"
  6.        Dim sb As New StringBuilder()
  7.        Dim size As String = String.Empty
  8.        Dim control As String = String.Empty
  9.        Dim lines As IEnumerable(Of String) = File.ReadLines(filepath, Encoding.Default)
  10.  
  11.        For Each line As String In lines
  12.            If line.TrimStart().ToLower().StartsWith("size = new size") Then
  13.                size = line.Substring(line.IndexOf("=") + 1).TrimStart() ' "New Size(width, height)"
  14.                Continue For
  15.            End If
  16.  
  17.            If line.TrimStart().ToLower().Contains(".size =") Then
  18.                If Not String.IsNullOrEmpty(size) Then
  19.                    control = line.Substring(0, line.LastIndexOf("=") + 1).TrimStart() ' "Me.ControlName.Size ="
  20.                    Debug.WriteLine(control & size)
  21.                    sb.AppendLine(control & size) ' "Me.ControlName.Size = New Size(width, height)"
  22.                    size = String.Empty
  23.                    control = String.Empty
  24.                    Continue For
  25.                End If
  26.            End If
  27.  
  28.            sb.AppendLine(line)
  29.        Next line
  30.  
  31.        File.WriteAllText(".\Form1_SizeFixed.vb", sb.ToString())
  32.  
  33.    End Sub
  34.  
  35. End Module



Para arreglar el error del diseñador de forms: "Duplicate declaration of member 'point'", el procedimiento es el mismo que con 'size'.

Dentro del método 'Initialize' de la clase 'Form1.vb', eliminas esta linea:
Código:
Dim point As New Point(&H10, &H80)

Y esto lo dejas así:
Código:
Me.CheckedListBox1.Location = New Point(&H10, &H80)

Y luego nos quedarán 555 errores de compilación en lineas como esta:
Citar
Código:
point = New Point(280, &H98)
Me.CheckedListBox2.Location = point

Basicamente tienes que ponerle el valor de la variable "point" correspondiente a cada linea:
Código:
Me.CheckedListBox2.Location = New Point(280, &H98)

Se puede automatizar la tarea de reemplazamiento con el siguiente código de una aplicación de consola:

Código
  1. Public Module Module1
  2.  
  3.    Public Sub Main()
  4.  
  5.        Dim filepath As String = "..\SISTEMA NO OBFUSCADO\LOTERIA\Form1.vb"
  6.        Dim sb As New StringBuilder()
  7.        Dim point As String = String.Empty
  8.        Dim control As String = String.Empty
  9.        Dim lines As IEnumerable(Of String) = File.ReadLines(filepath, Encoding.Default)
  10.  
  11.        For Each line As String In lines
  12.            If line.TrimStart().ToLower().StartsWith("point = new point") Then
  13.                point = line.Substring(line.IndexOf("=") + 1).TrimStart() ' "New Point(x, y)"
  14.                Continue For
  15.            End If
  16.  
  17.            If line.TrimStart().ToLower().Contains(".location =") Then
  18.                If Not String.IsNullOrEmpty(point) Then
  19.                    control = line.Substring(0, line.LastIndexOf("=") + 1).TrimStart() ' "Me.ControlName.Location ="
  20.                    Debug.WriteLine(control & point)
  21.                    sb.AppendLine(control & point) ' "Me.ControlName.Location = New Point(x, y)"
  22.                    point = String.Empty
  23.                    control = String.Empty
  24.                    Continue For
  25.                End If
  26.            End If
  27.  
  28.            sb.AppendLine(line)
  29.        Next line
  30.  
  31.        File.WriteAllText(".\Form1_PointFixed.vb", sb.ToString())
  32.  
  33.    End Sub
  34.  
  35. End Module



Para arreglar los errores del diseñador de forms: "The type 'System.Windows.Forms.Form' has no property named 'xxxxx'"

Tienes que hacer estos reemplazamientos de string SOLAMENTE en el bloque del método 'Initialize' de la clase 'Form1.vb':

Me.Button         -> Me._Button
Me.CheckBox       -> Me._CheckBox
Me.CheckedListBox -> Me._CheckedListBox
Me.ComboBox       -> Me._ComboBox
Me.DateTimePicker -> Me._DateTimePicker
Me.GroupBox       -> Me._GroupBox
Me.Label          -> Me._Label
Me.ListBox        -> Me._ListBox
Me.PrintDocument  -> Me._PrintDocument
Me.TextBox        -> Me._TextBox
Me.Timer          -> Me._Timer


...o dicho de otro modo: tienes que añadirle un guión bajo al principio del nombre de cada control.



Para arreglar el último error del diseñador de forms: "The variable 'manager' has no property is either undeclared or was never existed"

Simplemente elimina estas lineas dentro del método 'Initialize':

Código:
Dim manager As New ResourceManager(GetType(Form1))
Código:
Me.Icon = DirectCast(manager.GetObject("$this.Icon"), Icon)

...Por que el icono de la aplicación supongo que te dará completamente igual arreglarlo o no...

Saludos.
« Última modificación: 15 Noviembre 2017, 17:20 por Eleкtro » En línea


[/cent
zalazar16

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #8 en: 15 Noviembre 2017, 17:36 »



tengo ese solo problemilla, esos 12 errores

MOD: Imagen adaptada a lo permitido.
« Última modificación: 15 Noviembre 2017, 18:04 por MCKSys Argentina » En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.293


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Vuelve el perro arrepentido con el mismo error en un programa
« Respuesta #9 en: 15 Noviembre 2017, 18:26 »

Te lo dije aquí:
Citar
Código:
DateAndTime.DateAdd(4
por:
Código:
DateAndTime.DateAdd(DateInterval.Day

...ese "4" lo tienes que eliminar. El valor 4 = DateInterval.Day.

saludos
En línea


[/cent
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines