Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: sphinx856 en 18 Febrero 2022, 15:29 pm



Título: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: sphinx856 en 18 Febrero 2022, 15:29 pm
¡Hola!
Estoy intentando recrear un método que usa una aplicación programada en visual basic 6. He podido recrearlo todo excepto una pequeña parte que no consigo entender. He estado usando ollydbg, también he intentado decompilar la aplicación con VB Decompiler y he obtenido esto (publico solo el trozo que no entiendo):

Código:
  loc_004EC3E6: var_eax = Combo3.AddItem "All", var_6C
  loc_004EC407: var_eax = %fobj
  loc_004EC44F: var_eax = Combo3.AddItem "HighLighted", var_6C
  loc_004EC470: var_eax = %fobj
  loc_004EC492: var_8C = Combo2.ListCount
  loc_004EC4BC: setg bl
  loc_004EC4C1: var_eax = %fobj
  loc_004EC4CA: If ebx Then
  loc_004EC4D0:
  loc_004EC4F3:   var_8C = Combo2.ListCount
  loc_004EC525:   var_D4 = var_8C - 0001h
  loc_004EC533:   var_eax = %fobj
  loc_004EC53F:   If ebx <= 0 Then
  loc_004EC566:     var_ret_7 = ebx
  loc_004EC576:     var_ret_7 = Combo2.ItemData
  loc_004EC5A1:     setg al
  loc_004EC5AC:     var_eax = %fobj
  loc_004EC5B5:     If %fobj Then
  loc_004EC5C5:       Set var_50 = %fobj
  loc_004EC5D8:       var_10C = var_50
  loc_004EC5DE:       var_ret_8 = ebx
  loc_004EC5EC:       var_ret_8 = Combo2.ItemData
  loc_004EC613:       var_2C = var_94
  loc_004EC616:       var_eax = %fobj
  loc_004EC627:       var_3C = var_34
  loc_004EC62A:     End If
  loc_004EC635:     00000001h = 00000001h + var_34
  loc_004EC642:     GoTo loc_004EC539
  loc_004EC647:   End If
  loc_004EC655:   Set var_54 = CInt(1)
  loc_004EC657:   var_A0 = var_54
  loc_004EC688:   var_4C = Combo2.List(var_3C)
  loc_004EC6CF:   var_eax = Combo2.AddItem var_4C, var_6C
  loc_004EC722:   var_eax = Combo2.RemoveItem var_3C
  loc_004EC743:   var_eax = %fobj
  loc_004EC765:   var_8C = Combo2.ListCount
  loc_004EC78F:   setg bl
  loc_004EC799:   setg dl
  loc_004EC7A3:   var_eax = %fobj
  loc_004EC7AC:   If edx <> 0 Then GoTo loc_004EC4D0
  loc_004EC7B2: End If

Más o menos lo que he podido ver es que borra los ítems de un combobox siguiendo un patrón específico, pero no consigo entenderlo.
Lo que busco aquí es que alguien me pueda dar una pista o explicar cómo funciona esto para poderlo recrear y obtener el mismo resultado. Aparte de esto, también he estado utilizando OllyDbg, aunque tengo que decir que no tengo mucha idea de como funciona, ya que es la primera vez que lo empleo.

Para poder poner un poco en contexto, este es un caso de prueba que he utilizado, en el combobox (Combo2 en el código decompilado) hay estos ítems:
Código:
Abrera
Cervelló
Moyanés
Papiol
San
Test

Una vez se ejecuta esta parte del código, pasamos a tener estos:
Código:
Cervelló
Moyanés
Papiol
San

Por algún motivo, el algoritmo elige eliminar estos dos, pero no siempre son el primero o el último, en este caso que he probado sí, pero no es siempre igual.
Código:
Test
Abrera

Para que podáis ver el código este en ejecución, he grabado un video inspeccionando el código este:
vHxL7t08PJg
Por lo que he visto parece que hay dos bucles, que eligen los índices y cuando se cumple una condición, sale, pero no consigo entenderlo.
¿Alguna idea de más o menos cómo funciona?, si os falta más información o algo decídmelo y lo pongo.
He preguntado en otras comunidades, pero nadie me ha podido/querido ayudar, os agradecería mucho que le echarais un vistazo, llevo bastantes días, pero no consigo avanzar.


Título: Re: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: MCKSys Argentina en 18 Febrero 2022, 23:27 pm
Hola!

El video no dice mucho. Vas a tener que subir el ejecutable a algún lado para que podamos descargarlo y mirarlo. De lo contrario, veo difícil que puedan ayudarte.

Saludos!


Título: Re: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: Danielㅤ en 18 Febrero 2022, 23:59 pm
Hola!

El video no dice mucho. Vas a tener que subir el ejecutable a algún lado para que podamos descargarlo y mirarlo. De lo contrario, veo difícil que puedan ayudarte.

Saludos!

Exacto, en ese video lo único que muestra es una barra horizontal de selección que va bajando constantemente nada más que eso.


Saludos


Título: Re: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: sphinx856 en 19 Febrero 2022, 01:15 am
Hola!

El video no dice mucho. Vas a tener que subir el ejecutable a algún lado para que podamos descargarlo y mirarlo. De lo contrario, veo difícil que puedan ayudarte.

Saludos!

Exacto, en ese video lo único que muestra es una barra horizontal de selección que va bajando constantemente nada más que eso.


Saludos

De acuerdo, lo que pasa es prefiero enviarlo por mensaje privado. El que esté interesado en ayudarme que me envíe un mensaje privado y se lo paso.
Muchas gracias!!


Título: Re: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: sphinx856 en 22 Febrero 2022, 19:41 pm
Finalmente lo he podido arreglar:
https://stackoverflow.com/questions/70977152/reimplement-an-algorithm-to-create-a-refine-list?noredirect=1#comment125473420_70977152


Título: Re: Ayuda para entender un método de Visual Basic 6 (OllyDbg y VBDecompiler)
Publicado por: Danielㅤ en 23 Febrero 2022, 00:07 am
Finalmente lo he podido arreglar:
https://stackoverflow.com/questions/70977152/reimplement-an-algorithm-to-create-a-refine-list?noredirect=1#comment125473420_70977152

Me alegro que lo hayas podido resolver y gracias por contactarnos y compartir la solución.


Saludos