|
|
1) Introduccion. |
2) Primeros Pasos: Configuracion de Nuestras Herramientas. |
3) Descompiladores para Visual Basic. |
4) Crackeando Usando el Soft-Ice. |
5) Crackeando Usando el Smartcheck. |
6) La Alternativa: La Funcion Hmemcpy. |
7) Lista de Posibles Breakpoints en Visual Basic 5 y ¿6? |
1) Introduccion. |
Antes de empezar quisiera decir que hago este tutorial para que quien lo lea sepa lo basico a mi entender que debe tener de herramientas y unos conocimientos de algunas funciones que tanto le gusta llamar el visual basic, a su dll de alma (nunca mejor dicho) MSVBVM50.DLL o la ultima version MSVBVM60.DLL para poder hacer algo interesante sin que nada nos estorbe. Cada vez nos encontramos con mas programas hechos en visual basic, espero que este tutorial te sirva para abordarlos. Las herramientas necesarias o imprescindibles, mas bien esto ultimo son el poco ;) conocido Soft-ice y el Smartcheck, cuanto mas actualizado pues mejor ;). Espero que te sirva de base para crackear estos programas, y si te fijas, no cambia mucho la forma de afrontar las protecciones con respecto a otros programas compilados en otros lenguajes. |
2) Primeros Pasos: Configuracion de Nuestras Herramientas. |
Lo primero de todo claro esta es despues de tener las herramientas, configurarlas como 'dios' manda para que haga lo que nosotros necesitamos ya que si no de poco nos sirve bajarnos tantos megas. Para configurar el soft-ice, no hay problema porque si ya hemos crackeado antes tendremos bien configurado el programa, no obstante aqui pongo mi winice.dat (cada uno lo puede adoptar a sus gustos, seguro que hay mejores formas, pero a mi me va bien asi) por si hay dudas al respecto: // Aqui empieza // NMI=ON
PHYSMB=128
INIT="WL;WR;WD;X;" F1="h;"
EXP=c:\windows\system\kernel32.dll
WDMEXPORTS=OFF
; WINICE.DAT ; (SIW95\WINICE.DAT)
;************************************************************************
// Aqui termina // Estas dos ultimas lineas del fichero winice.dat son importantisimas, si el programa que vas a crackear esta hecho en visual basic 5 (msvbvm50.dll) tienes que quitarle el ';' para que el soft-ice detecte cuando llama a dicha libreria porque si no ignoraria los breakpoints aunque este activa la del visual basic 6 (msvbvm60.dll), por lo demas funciona igual que con cualquier programa a crackear. Para configurar el smartcheck, tienes que ir menu program y en settings poner lo siguiente:
Despues de tener
configurarado las herramientas, es hora de entrar en materia con mas salsa.
|
3) Descompiladores para Visual Basic |
Descompiladores de visual basic, que yo sepa existe para la version 3.0 de este lenguaje en la pagina de DODI (facil de buscar en cualquier buscador de internet como en altavista o yahoo), y me parece que existe otra version para el visual basic 4.0 pero yo no he probrado ninguna de las dos, asi que no puedo decir nada mas. En cuanto a las versiones 5.0 y 6.0, por lo menos hasta el momento de escribir este tutorial creo que no existe (no verlo, no quiere decir que no exista), asi que mala suerte no podemos usar ningun descompilador para los programas mas nuevos e interesantes. |
4) Crackeando Usando el Soft-Ice. |
Para empezar, tengo que decir esta herramienta sirve de igual modo para los programas realizados en visual basic que en los demas, solo hay que tener en cuenta unas cuantas cositas basicas como saber que cuando el programa a crackear te pide un password o un serial, este es guardado en una variable en formato ancho, es decir, si la clave fuese 'esiel2' se almacenaria como 'e s i e l 2 ' con lo cual si hacemos una busqueda en memoria no encontrariamos ninguna direccion donde estaria almacenada y nos quedariamos algo extrañados(pero existe un breakpoint para esto muy interesante como son: MultiWideToWideChar y WideCharToMultiWide), con lo cual quiero decir que esto es un dato muy a tener en cuenta. Aclarado esto, ¿como podemos abordar un programa en Visual Basic utilizando Soft-Ice? ... Pues lo primero a mi modo de ver es lo siguiente, yo estableceria una regla de semejanza, suponiendo que hayas hecho antes un crack, entonces los breakpoints de la derecha te deben ser familiares. VB breakpoints Breakpoints "normales"
rtcmsgbox
messagebox/a/exa
Con estos breakpoints, ya te puedes hacer una idea de lo que se puede hacer, eso si, la cosa no es tan directa como en cualquier programa hecho en un leguaje de programacion decente asi que para llegar al meollo de lo que busques tendras que pasar de mucho codigo inservible pero todo llega, asi que solo es cosa de tener PACIENCIA. Y todo se reduce a trazar el programa como si no fuese realizado en Visual Basic. Luego, por ejemplo con rtcmsgbox al usarlo tendrias que remontar codigo hacia atras para encontrar donde el programa ha tomado la decision de no registrarte para converncerle de lo contrario (es a lo que yo le llamo cracking retro, puesto que tienes ir siempre hacia atras en el codigo) esto es una tarea facil pero pesada ya que hay muchas llamadas inutiles. En cuanto al rtcinputbox, pues lo tipico, al introducir la clave o serial y pulsar sobre el boton aceptar pues volvemos al codigo y hariamos lo tipico que se suele hacer con las funciones getwindowtext/a y getdlgitemtext/a. El tercer breakpoint importante para mi es el __vbanew y __vbanew2 ya que mediante el podemos parar la ejecucion del programa antes de que nos saque un formulario, este breakpoint es muy util para los programas que tienen basada su proteccion en nagscreens. En cuanto a __vbastrcomp, pues casi su propio nombre indica para que sirve asi que paso decir nada mas. ;) .... MUY UTIL. Como caso excepcional, esta el breakpoint rtcdoevents, ya que este breakpoint es muy usado por el compilador del visual basic, con lo cual puede parecer que no nos es de gran ayuda puesto que constantemente lo esta llamando pero sin embargo si lo es por la siguiente razon: cuando un programa realizado en visual basic tiene que realizar calculos que consume muchos recursos del sistema pues para no colgar el windows 9x pues el programador se ve obligado a insertar en el codigo la funcion doevents, con lo que se puede entrar en bucles donde solo se hagan calculos como por ejemplo en el cuentapasos el autor hace muchos calculos pero nosotros solo vemos la nagscreen pero mediande este breakpoint pues le jodemos el invento, asi que como conclusion, esta funcion es util cuando estamos seguros de que el programa hace muchos calculos y nosotros queremos meternos dentro para husmear un pokito. XD. Un ejemplillo de como crackear de esta manera lo podeis ver hechandole un vistazo al tutorial del Cuentapasos 3.72 y del Exploit Submission Wizard 5. |
5) Crackeando Usando el Smartcheck. |
Bien, el smartcheck es otra gran herramienta de los geniales programadores de Numega, pues con esta herramienta podemos ver las tripas de los programas realizados en Visual Basic, desde un simple vistazo y encontrar un serial valido, hasta ir analizando que va haciendo el programa paso a paso, como asiganaciones de variables sospechosas, conversiones de tipos de datos, acceso a apis, etc, etc. Luego, sabiendolo usar simplifica mucho el cracking para estos programas, pero como todo en la vida, lo mas importante es la experiencia, cuanto mas utilices este programa antes te daras cuenta de que es lo que verdaderamente te interesa ver y que es lo que te trae sin cuidado. Para hacer un cracking en 2 minutos lo mas comun es que nos pidan el tipico nombre y serial, e inmediatamente despues pues nos saque un bonito mensaje mediante msgbox del visual basic, pues mirando alrededor de este msgbox dentro del smartcheck pues nos encontraremos con un serial valido para nuestro nombre, asi de facil !!!. Tambien podemos hacer un generador de claves de forma relativamente sencilla puesto que si estamos viendo constantemente las asignaciones, conversiones de variables, comparacines, ... con los valores que van tomando en la ventana de la parte derecha del monitor asi pues solo tenemos que analizar con detenimiento y paciencia el listado que nos saca el smartchek y generar nuestro generador de claves. Un ejemplo sencillito de como crackear programas de esta forma es el tutorial del programa: Java script It! v1.3. |
6) La Alternativa: La Funcion Hmemcpy. |
Bien, esta funcion no suele comentarse mucho en los tuturiales pero es otra gran baza para nuestro menester puesto que como bien comenta Wkt_White en su tutorial generico sobre el uso de esta funcion podemos cazar los password o serial de una manera un poco sutil y facil (todo depende de los programadores, aunque si utilizan este lenguaje, no creo que se calienten la cabeza por impedir que esta funcion no nos sirva XD), en la mayoria de programas realizado en este lenguaje, aunque tengo que decir que siempre hay excepciones. Para ello, los pasos basicos a seguir (casi mecanicamente) son los siguientes: Primero despues de saber que es un programa VB, introducimos nuestro serial, ponemos el breakpoint bpx hmemcpy pulsamos Ctrl-D e inmediatamente pues volvemos al soft-ice y tenemos que FIJARNOS bien que en la linea que hay debajo del desensamblado aparezca nombredelprogramaacrackear!.text y a partir de aqui mirar detenidamente los push siguientes ya que se suelen almacenar el que tu has introducido y el correcto; si miras estos push, lo mas normal es que te encuentres con tu serial introducido 'e s i e l 2 ' y por ejemplo el correcto que podria ser 'E X P E D I E N T E - X ', ahora solo queda borrar los breakpoints y probar con este serial que has obtenido y en el 75 % o mas de las veces es el serial correcto. NOTA: si te fijas las cadenas estan en formato ancho. El serial seria: 'EXPEDIENTE - X'. |
7) Lista de Posibles Breakpoints en Visual Basic 5 y ¿6? |
Esta lista la obtuve de un tutorial en ingles, y no recuerdo exactamente el autor ya que la cogi, la corte del documento y lo puse en otro fichero para cuando me hiciese falta consultarlas, asi que ;(. Lista: Addr:0F00A1BF Ord: 100 (0064h) Name: ThunRTMain
|
[ Entrada | Documentoz GenΘricoz | WKT TEAM Main Site ] |
[ Todo el ECD | x Tipo de Protecci≤n | x Fecha de Publicaci≤n | x orden AlfabΘtico ] |