| ESTUDIO COLECTIVO DE DESPROTECCIONES Última Actualizacion: 25/10/2001 |
Programa | ActiveLock 1.5 y VBCodeLibrary 3.0.0 | W95 / W98 / NT
Descripción | ActiveLock 1.5 y VBCodeLibrary 3.0.0
Tipo | ¿¿¿Freeware??? y Shareware
Tipo de Tutorial | [X]Original, []Adaptación, []Aplicación, []Traducción
Url | http://www.insite.com.br/~nferraz/activelock/ y http://www.eastwood60.freeserve.co.uk
Protección | OCX para crear programas Trialware, Clippleware y Demos, sin limitacion. Nagscreen pidiendo el pwd
Dificultad | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
Herramientas | Visual Basic 5+, Smartcheck 6 (opcional)
Objetivo | Hacer que todos los programas que usan este sistema (¿5000?) sean más rapidos.
Cracker | Paco
Fecha | 3 de septiembre de 1999
INTRODUCCION
Se trata de un ocx escrito en VisualBasic 5 y 6 GRATUITO, para hacer de una forma sencilla (cierto) y segura (ya veremos) programas NO gratuitos para distribuirlos después por ahí. Es todo un detalle del autor crear dos versiones distintas para ahorrar varios megas de instalables al sufrido usuario de internet, victima del loco programador de VB creador de programas 15 megas. Con el OCX se pueden crear programas que caduken después de usarlos varias veces, depués de unos días, con opciones desabilitadas... y todo con una proteccion aparentemente buena, y con gran sencilled... Como queria probar si realmente funcionaba el invento, me decidi a utilizar uno de los ¿5000? programas que lo usan, pero... sólo encontré el VBCodeLibray, algo asi como una base de datos con las funciones que más te gusta usar... Nuestro objetivo será conseguir un OCX que nos permita usar los programas que lo usan para protegerse... ¿¿¿Complicado???, creo que no!!!!
AL ATAQUE
Primero vamos a intentar conocerlo un poco, para eso abrimos el Smartcheck y ejecutamos el VBCodeLibrary... después de varias horas, sumando una palabra, quitando de alli y poniendo por el otro lado el programa nos muestra una ventana pidiendo ¿a que no lo adivinas? un pasword..., y claro... simplemente sacamos la conclusión, que el grueso de la proteccion se encuentra en el fichero nslock15vb6.ocx, y que como tengamos que hacer otra vez este paso sería conveniente que aprobechasemos el tiempo contando granos de arroz, descubriendo la cura para el Sida... Dejamos de lado el programa, y miramos directamente todo lo que nos podemos bajar de la página del creador del OCX, para intentar saber como funciona... y claro abrimos el Visual Basic para hacer un programa de prueba... y vemos que si antes tardó tanto en aparecer la ventana no era sólo culpa del Smartcheck... Bueno, pensemos, cual podría ser la mejor solución... para que a demas de quitar la protección los programas fuesen más rápidos... ya está!. ¿Que pasaría si hiciesemos un OCX? que engañase a los programas diciendoles que está registrados... No se, no creo que funcione, demasiado evidente para un programa que tarda media hora en realizar los calculos... Coger el VB y cread un OCX (ActiveX Control), el principal problema con el que nos encontramos es saber cuales son todas las funciones que necesitamos para engañar a los programas... veamos que sorpresas tiene el VB... En el menñu Project, Project Properties, en la pestaña Component, marcamos Binary Compatibility, y seleccionamos el OCX que queremos suplamtar... y generamos el OCX porque ya hizimos la parte más complicada... Pero ohhh, el VB nos dice que si queremos hacer un OCX igual al que teniamos antes, tenemos que cambiarle el nombre por: nslock15vb6, le damos a cancelar, y en la pantalla de antes, pero en la primera pestaña hacemos lo que nos manda... y volvemos otra vez... y claro, se vuelve a quejar :((( asi que cambiamos el nombre del control UserControl1 a ActiveLock, y volvemos a compilar, y dice que no encuentra PropertyPage1, bueno, y añadimos una pagina de propiedades que se llame PropertyPage1... y como no... compilamos otra vez... y seguimos añadiendo mas paginas de propiedades, segun nos va diciendo el VB... Despues de añadir PropertyPage1, PropertyPage2 y PropertyPage3, nos dice que falta una función, por lo que cogemos la definición y la pegamos en el código del UserControl que tenemos y seguimos compilando... hasta que nos diga que la funcion About es distinta !!y eso que la acabamos de pegar!!! El problema se encuentra, en que esta es una función especial, por lo que tenemos que indicarle al VB que esta es la funcion que se llama cuando se muestra la ventana de Acerca De, asi en el menu, Tools, Procedure Atibutes, seleccionamos la función y en Procedure ID le decimos que es la de Acerca de... Y seguimos compilando... hasta que al fin se compila... ya está al fin tenemos un OCX que puede ser reemplazado por el original... pero para que funcione, tenemos que escribir algún codigo en las funciones, algo así...
    Option Explicit

    Property Get Counter() As Long

        Counter = 10

    End Property

    Property Get UsedDays() As Long

        UsedDays = 1

    End Property

    Property Let LiberationKey(ByVal RHS As String)

        ' Not remove

    End Property

    Property Get SoftwareCodeLength() As Integer

        SoftwareCodeLength = 8

    End Property

    Property Get LastRunDate() As Date

        LastRunDate = DateAdd("d", 30, Date)

    End Property

    Property Let SoftwareCodeLength(ByVal RHS As Integer)

        ' Not remove

    End Property

    Property Get RegisteredUser() As Boolean

        RegisteredUser = True

    End Property

    Property Get SoftwareCode() As String

        SoftwareCode = "12345678"

    End Property

    Property Let SoftwareName(ByVal RHS As String)

        ' Not remove

    End Property

    Property Get SoftwareName() As String

        SoftwareName = "wkt!"

    End Property

    Property Let Password(ByVal RHS As String)

        ' Not remove

    End Property

    Property Get Password() As String

        Password = "12345678"

    End Property

    Sub About()

        MsgBox "This is the Foo ActiveLock!!", vbInformation

    End Sub

    Property Get LiberationKeyLength() As Integer

        LiberationKeyLength = 8

    End Property

    Property Let LiberationKeyLength(ByVal RHS As Integer)

        ' Not remove

    End Property
Y yata!! como veis al final lo que parecia una protección tecnicamente muy buena y estudiada fallaba en la base... por ultimo tened en cuenta, que debeis tener otro OCX pero que se llame nslock15vb5 para los programas que usen la versión de VB5 y que tal vez algún programa verifique que el tamaño de las claves es el correcto, por lo que debereis intentar sacar el tamaño adecuado, bien por prueba-error o con el Smartcheck o cualquiera otra utilidad que se os ocurra! Hasta la proxima,
[ Entrada | Documentos Genéricos | WkT! Web Site ]
[ Todo el ECD | x Tipo de Protección | x Fecha de Publicación | x Orden Alfabético ]
(c) Whiskey Kon Tekila [WkT!] - The Original Spanish Reversers. Si necesitas contactar con nosotros, leeestoantes e infórmate de cómo puedes ayudarnos