ESTUDIO COLECTIVO DE DESPROTECCIONES
WKT Tutorialz Site
WKT
Programa ActiveLock 1.5 y VBCodeLibrary 3.0.0 W95 / W98 / NT
Descripción Utilidad GRATUITA para crear programas shareware osea NO gratuitos. Y como ejemplo practico una libreria de codigo Visual Basic.
Tipo ¿¿¿Freeware??? y Shareware
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 dichoso password.
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 y queden a nuestra merced.
Cracker Paco
Fecha 3 de septiembre de 1999

Introducción

          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 Atake

         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,