VB6 - Custom Funtion Descriptions para OllyDbg 1.10

Iniciado por Mad Antrax, 12 Octubre 2013, 17:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Mad Antrax

Buenas a todos

Basándome en una de las lecciones de Ricardo Narvaja, descubri un buen truco para reforzar nuestro OllyDbg. Concretamente es la lección 116 del curso nuevo de Ricardo Narvaja. En dicha lección se menciona un fichero llamado "common.arg" en el que podremos personalizar el análisis de las funciones de un módulo. He cogido la idea y la he ampliado añadiendo las principales funciones de Visual Basic 6.0, así como una extensa información adicional que encontré en un foro. El resultado es divertido.

Nuestro OllyDbg 1.10 por defecto no analiza correctamente las funciones propias de MSVBVM60.DLL, éste es el aspecto del análisis de un ejecutable típico en VB6:


Se pueden ver las llamadas a las funciones en la mayoría de casos, y también nos muestra algunas cadenas en UNICODE y argumentos de la llamada de la API/función, pero si utilizamos el fichero "common.arg" el resultado es MUY distinto:


Además, y haciendo referencia a la lección original de Ricardo Narvaja, podremos poner Conditional BP en la API que queramos para poder logear y dumpear con un solo click todos los string's y argumentos.

Para crear éste fichero he tenido que generar un ejecutable que he llamado dumper.exe con el siguiente código:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
   Dim A() As String
   Dim B As String
   Dim C As Long
   Dim D1, D2 As Integer
   Dim E As Double
   Dim X As Variant
   
   Exit Sub
   Command1.Enabled = False
   
   B = "####### START DEBUGGING HERE PLEASE #######"
   On Error Resume Next
   A() = Split("THIS IS MY SPLIT STR", " ")
   B = Join(A(), ",")
   
   B = "strCAT1" & "strCAT2"
   
   Open "C:\test.txt" For Output As #1
       Print #1, "PRINT EXAMPLE"
       Write #1, "WRITE EXAMPLE"
   Close #1
   
   MsgBox "MSG_BOX_TEXT", vbOKOnly, "MSG_BOX_CAPTION"
   If "strCMP1" = "strCMP2" Then
       End
   End If
   FileCopy "C:\test.txt", "C:\FILECOPY.TXT"
   C = FileLen("C:\test.txt")
   Kill "C:\test.exe"
   Kill "C:\FILECOPY.TXT"
   MkDir "TEST_DIR"
   RmDir "TEST_DIR"
   If InStr("INSTR EXAMPLE1", "INSTR EXAMPLE2") <> 0 Then DoEvents
   C = Len("LEN STR")
   C = LenB("LENB STR")
   B = Mid("THIS IS A MID STR", 5, 2)
   
   If "LIKE STR" Like "LIKE STR2" Then DoEvents
   D1 = 10
   D2 = 5 + 10
   D2 = D1 + D1
   D2 = 5 / 2
   D2 = 5 * 2
   D2 = 5 - 2
   D2 = -D2
   D2 = 5 Mod 2
   D2 = 5 Xor 2
   D2 = Not 5
   D2 = 5 And 2
   D2 = 5 Or 2
   D2 = Sin(50)
   D2 = Cos(50)
   D2 = Tan(50)
   D2 = Atn(50)
   D2 = Exp(50)
   D2 = Log(50)
   X = Hex(500)
   X = Oct(600)
   X = Asc("Q")
   X = Chr(255)
   Form1.ForeColor = QBColor(3)
   Form1.ForeColor = RGB(255, 200, 150)
   Randomize 50
   D2 = Rnd
   B = InputBox("INPUTBOX_PROMPT", "INPUTBOX_TITLE", "INPUTBOX_DEFAULT")
   SendKeys "SENKEYS STR"
   Shell "cmd.exe", vbMaximizedFocus
   For i = 1 To 10 Step 2
       If i Mod 2 = 0 Then DoEvents
   Next i
   B = Environ("USERNAME")
   B = Command$
   B = Replace("MY REPLACE STR", "FIND STR", "REPLACE STR")
   B = StrReverse("REVERSE STR")
   Command1.Enabled = True
   B = "####### STOP DEBUGGING HERE PLEASE #######"
End Sub


Os dejo a continuación más pantallazos sobre el análisis que conseguiremos con el fichero "common.arg":




Mención especial al análisis de la función RGB() que desglosa al detalle los 3 colores, así como la función StrReplace(). El fichero no está completo, no he podido analizar el 100% de las funciones, así que si alguien puede aportar algo, mejorar o cambiar alguna función... estaría agradecido, ya que el trabajo es algo durillo jeje.


Os dejo un ZIP con el fichero "common.arg", hay que copiarlo en la carpeta de nuestro OllyDbg 1.10, al lado del ollydbg.exe. En la ventana de LOG [L] aparece si se ha cargado correctamente. También os adjunto el dumper.exe que he utilizado para dumpear el análisis correcto de la librería MSVBVM60.DLL, hay que analizar muchas funciones que me he dejado y hay otras que no he sabido como analizarlas. Agradeceré cualquier tipo de colaboración:

http://www.mediafire.com/?dk13l8lh2o9j7k8
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

MCKSys Argentina

Excelente! Gracias por la colaboracion! (la verdad, no habia usado nunca esa caracteristica  :-[)

PD: Karcrack tiene todo un set de funciones del runtime de vb, que usa para "otras cosas", pero que te dan una idea de como funcionan y los params que reciben.

Revisando en el foro de vb sus aportes seguro sale algo interesante...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


.:UND3R:.

Tampoco conocía esta característica de OllyDbg. La idea es increíble, se ve mucho más legible los llamados a las funciones de VB, sin duda magnifico. Sería genial si lograras crear uno 100% completo, debe ser un trabajo tedioso pero aun así sería de gran ayuda. Saludos.

PD: Creo que con IDA Script (IDC) se podría generar un archivo siguiendo el estandar del archivo argument, aunque desconozco si IDA detecta las funciones de VB.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

.:UND3R:.

¿Seguirás trabajando con este archivo?, pregunto por que estoy super interesado en agregar la "versión final" a OllyDbg :D

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

MCKSys Argentina

Recien me acaabo de dar cuenta que pueden colocarse las estructuras internas de VB tambien....

Mmmm, si hago tiempo le agrego algunas cosillas...  ;)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


.:UND3R:.

Cita de: MCKSys Argentina en 28 Noviembre 2013, 03:48 AM
Recien me acaabo de dar cuenta que pueden colocarse las estructuras internas de VB tambien....

Mmmm, si hago tiempo le agrego algunas cosillas...  ;)

Saludos!

Ya que eres el master de VB a ver si complementas el archivo, nos sería a todo de gran ayuda. Me encantaría ayudar pero no manejo estructuras ni funciones de VB :/

Saludos :D

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

MCKSys Argentina

En realidad quiero terminar un script para Olly que tengo pendiente hace rato.

Complementandolo con este archivo, es como tener VBDecompiler en Olly... :)

Pero bueh, veremos si hago tiempo.  :P

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Mad Antrax

Buenas!

por mi parte añadiré más funciones al fichero para tenerlo más completo, a la espera de MCKS para que nos enseñe su script completito...

:silbar:
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

.:UND3R:.

a ver si coordinan y sacan las funciones y estructuras 100% creo que sería el archivo perfecto, saludos y gracias por el interés :)

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)