Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Krnl64

#41
A ver.

Como decis, es mas facil cambiar de lenguaje y no tener esa dependencia.

Pero para quien de verdad quiera vencer esa limitacion, esa es la forma. Ya dije que no es facil, y que es laboriosa.

La opcion, va de gusto del consumidor.

Salu2
#42
El label es invisible.

Se activa al generar el Diagrama del codigo introducido.

Lo que habia intentado, era poner la propiedad del label BackStyle a 0, es decir, transparente y "borrar"el texto que contiene la misma.

Pero al cargar el programa, vuelve a petar.

Creo que es inevitable modificar la DLL

Alguna Recomendacion ?

Gracias
#43

Hola a todos.

Veran, estoy intentando crackear 1 programa llamado Visustin.

Bien, les expongo lo que quiero conseguir y como lo hago:

Este programa, crea gráficos de los procedimientos, funciones, etc.

Esta programado en VB6 asi que necesita la libreria MSVBVM.DLL.

Lo que suele hacer el programa es mirar en el directorio de instalacion para ver si esta la Dll aqui y si no esta, mira en el directorio system.

El programa, e su version DEMO, hace el grafico del código introducido, pero no te deja exportar el gráfico y ademas le pone en medio unos carteles de Visustin Demo.

He desensamblado el programa, y lo que hace que aparezca esto, es 1 control label llamado DemoEffects.

Bien, pues le cambio el nombre al control y aqui viene donde tengo que actuar yo.

El programa no se carga porque llama a la funcion ThunRTmain ( clase que es para cargar el programa VB) porque he cambiado el nombre del control label.

Entonces:

He copiado la DLL a donde tengo instalado el programa.

Y ahora lo que intento hacer es saber donde empieza esta funcion dentro de la DLL para poder modificarla y que cargue el programa.

Hasta ahora, no he conseguido hacerlo porque dentro de la DLL aparecen las funciones "declaradas" pero no en la direccion que empiezan.

Tambien he probado a correrlo con el Olly, y ponerle un breakpoint. Pero cuando accede a la funcion, me peta.

Podria hecharme alguien una mano ?

Gracias





#44
Buenas a todos.

Bueno, vengo a dejarles una forma de dejar de depender de

MSVBVM.DLL

Si desensamblamos esta DLL, veremos que las funciones que posee todas estan referidas a KERNEL32, USER32, OLEAUT32,GDI32, ADVAPI y a NTDLL.

Por lo tanto, si declaramos las funciones necesarias llamando al Kernel y a NTDLL, le pasamos los paramatros necesarios y retocamos el EXE resultante...

Vencemos la limitacion.

Es laborioso pero FUNCIONA !!!

Salu2
#45
A quien se le ocurre correr el programa...

xDDD

en fin.

Hay programas que se llaman visores de procesos, o mata procesos.

Busca en Google y usa la cabeza para algo de provecho.
#46
Eso ya lo habia probado.

Puse varios intervalos, pero siempre se petaba.

Lo resolvi con 1 timer desde el Code.

Gracias de todas formas

Salu2
#47

Efectivamente. Un Interprete.

Yo le dije como se gateaba, ahora que aprenda a correr

Salu2
#48
Hola.

Veran.

Tengo 1 sub dentro de 1 Timer que usa 2 bucles con esta estructura:



For x= 1 to y

.... Instrucciones

Doevents

Sleep(500)

Next x


For z= 1 to k

... Instrucciones

Doevents

Sleep(300)

Next k



El problema es que cuando el Timer actua, la aplicacion se peta 1 poco.

¿Cómo podria Solucionar esto ?

Gracias



#49

Puedes hacer lo que dice Sergi, o implementar tu el codigo para que las haga.

Aunque para eso, debes saber cómo ser resuelven.

Que te sea leve.

Salu2
#50
Ya solucione el asunto.

Digo el motivo de por qué no funcionaba, para que no le pase a nadie igual que a mi.


Para Pasarle un argumento tipo String a una funcion en una DLL creada en VB6, hay que convertirla a UNICODE y para que nos devuelva 1 string, el valor devuelto debemos limpiarlo.



''Para Pasar el argumento tipo String:

y = StrConv(y, vbUnicode, vbcomparebinary)





'' Para tratar el valor devuelto

y=Mtrim(y)

'' Ahora ya podemos manejar el valor dentro de nuestro programa

Private Function MTrim(s As String) As String
    Dim i As Long
    Dim res As String
   
    For i = 1 To Len(s)
        If Mid$(s, i, 1) <> Chr$(0) Then
            res = res & Mid$(s, i, 1)
        End If
    Next
   
    MTrim = res

End Function


Salu2