Karpoff Spanish Tutor

Programa: Visual Zip Password Recorvery Processor V3.12 MultiComputer


 

PROTECCION: Enpakado, Antidebugger, Trial, serial
Descripcion: Programa para sacar password de los zip
Dificultad: Aficionado
DOWNLOAD: http://www.innovativelogic.com/crosstrainer/index.htm
Herramientas: ProcDump, W32dasm, Process Patcher
CRACKER: Karpoff   FECHA: 19/09/1999

 

 INTRODUCCION

## Tutoríal de Crackeo Para Newbies desde Cero ## Proyecto 11

Hola Peña de Crackers, Si habéis seguido todos los manuales ya sois auténticos crackers, cuantos mas mejor jejeje

En el manual anterior incorporábamos una nueva herramienta a nuestros proyectos, era el magnifico ProcDump.

Como habréis observado es todo un proceso el descomprimir el ejecutable, quitarle la protección anti debugger y Dasm, y luego el proceso típico para crackearlo bien sea con SoftIce O con Un desensambldor, enfin luego viene el pequeño inconveniente de que has crackeado el programa con el ejecutable descomprimido, pero claro si haces el correspondiente crack para dárselo a algún colegui a este no le servirá de nada, a no ser que le expliques el movidon del procdum , ejecutables comprimidos PE que se descomprimen en memoria etc.

Bueno pues hoy pondremos remedio a ese tipo de inconvenientes, Como¿?? Crearemos un Loader, Y que es un Loader???? Un loader es un ejecutable que haremos nosotros que se encarga de crackear el programa cuando se esta ejecutando, ósea cuando se descomprime en la memoria, este tipo de cracks se usan para programas que en frío ( en parado, sin ejecutar) no podemos acceder al código que tenemos que modificar para que quedase crackeado, por lo tanto siempre que tengamos que ejecutar el programa víctima tendremos que correr el loader primero ( ejecutamos el loader y este carga el programa víctima y lo crackea temporalmente) este tipo de cracks si se los podréis dar a los coleguis, porque solo funcionaran con el ejecutable original ( en su estado normal, ósea comprimido)

 

 AL ATAKE

PARTE 1

La víctima es ( redoble ) takatkakakakakk. Visual Zip Password Recorvery Processor V3.12 MultiComputer. A mi juicio es la mejor herramienta para encontrar las password a los archivos Zip, Cuenta con muchas opciones para sacar password largas, a diferencia de lo típicos Advaced Zip Password o Ultra Zip Password Cracker el Visual Zip combina automáticamente metodos de crackeo, no lleva el proceso de crackeo típico y secuncial de 1,2,3,4 así hasta millones de passwods ,sino que va alternando 10000, 4258, 98885 . Los usuarios registrados cuentan con un super diccionario para el programa, que lo podemos bajar de la Web, pero este esta encryptado y si lo intentas usar y no tienes registrado el programa, te escupirá una pantalla diciendo que eres un delincuente, y puedes ser perseguido y encarcelado, y encima te cuelga el ordenata (que cabron..) bueno veremos la forma de desencryptarlo.

Lo podéis coger de:

http://ftechsoft.hypermart.net/vzprp312.zip (480KB)

http://ftechsoft.hypermart.net/dictv.zip (4,3MB) ( Diccionario no es necesario )

Herramientas: ProcDump, W32dasm, Hexedit, y para crear los loader necesitamos

Saber programar y hacernos nuestro propio ejecutable o conseguir uno de los siguientes programas Process Patcher 3.0 O el R!SC's PROCESS pATCHER v1.2i estas dos herramientas funcionan mediante Scripts los dos son fabulosos para crear un loader, aunque yo prefiero el segundo, ya que este convierte el Script en un ejecutable .exe Cualquiera de los dos ocupan muy poco.

Los podéis coger de:

Proces Patcher 3.0

http://karpoff.welcome.to

R!SC's PROCESS pATCHER v1.2i

PARTE 2

Comportamiento del Programa: este programa no nos da limitación en cuanto a tiempo se refiere, pero solo nos permite Passwords de 5 dígitos, y tampoco nos permite password con mayúsculas con lo cual no nos sirve para nada. Tenemos la opción de registrar el programa introduciendo nombre y S/N.

Atakes: Bueno podríamos directamente localizar un S/N valido, pero estos programas tienen especial dificultad para localizarlo, o por lo menos para mi es difícil, por lo tanto intentare localizar la rutina que comprueba que el S/N sea valido o no y la manipularemos en beneficio nuestro,

A Crackear lo primero lógicamente instalar el programa, hacemos una copia del ejecutable vzprp.exe y abrimos el ProcDump seleccionamos la opción Unpak y nos muestra los algorritmos de descompresión que podemos utilizar.

Image2.gif (4609 bytes)

Cuando tengamos que descomprimir un programa PE con el ProcDump, os aconsejo que seleccionéis el algoritmo de descompresión standard, Generalmente es el que nos descomprimirá mas ejecutables, en este caso lo descomprime creando un ejecutables de 684 KB , pero desgraciadamente al ejecutarlo me hizo Bommmm, pense que era debido a que todavía conservaba el Entry Point ( DIRECCION DE MEMORIA DONDE EMPIEZA HA EJECUTARSEE EL PROGRAMA ) del ejecutable pequeño (claro un ejecutable comprimido PE cuando lo ejecutamos entra directo a una dirección de memoria donde empieza a descomprimir el programa en memoria para que este sea funcional, si nosotros lo descomprimimos el ejecutable ya no tiene que descomprimirse en memoria, por lo tanto va directo a la dirección de memoria donde empieza la ejecución el ENTRY POINT Con lo cual el pequeño entra en un punto y el grande en otro ) pero lo comprobé con el SoftIce y el Entry Point era el correcto. Por eso siempre que descomprimáis un ejecuable PE lo primero a provarlo.

Bueno pues esta claro que el Algoritmo standard no es el adecuado. Yo lo descomprimí con el SoftIce, porque me gusta coger practica con las herramientas que utilizamos , ya os he dicho muchas veces que yo también soy un novato en esto, hace 6 o 7 meses no sabia lo que era un crack creerme que es cierto, así que podéis hacerlo con el softice ( en le manual anterior os recomendé un tutorial sobre el procdump, hay veréis como hacerlo con el softice) o con el ProcDump algoritmo de descompresión PEPack ya sabéis como no?? En Unpak seleccionáis PEPack aceptáis y se abre el menú para escoger el ejecutable a descomprimir seleccionáis la Copia de vzprp.exe pulsamos abrir y se ejecutara el programa a la vez que sale una ventana de opción así

Image3.gif (12968 bytes)

Aceptáis y en unos segundos se abrirá el menú para guardar el nuevo archivo descomprimido, es muy importante que lo probéis, este funciona a la perfección.

Si intentamos registrarnos nos sale un nagscreen diciendo Password id Inalid así que desensamblamos el ejecutable descomprimido con el W32dasm y no muestra datos, y si probamos con el softice lo mismo, que pasa que tiene protección anti debuggers y anti dasm y seguramente antitodo. Pero en el capitulo pasado ya vimos el truco para quitarle esta protección, ósea que vamos al ProcDump Nuevamente y pulsamos PE Editor y editamos el ejecutable que hemos descomprimido concretamente el que vallamos a desensamblar, asegurate de que no estas utilizando ese ejecutable ( que no lo tienes cargado en el W32dasm ni en ninguna otra utilidad y que no este en ejecución ) por que no podríamos modificarlo a nuestro gusto J cuando lo tengáis en PE edit pulsáis la opción Sections, y se abrirá una ventana con la cabeza del ejecutable concretamente algo así.

Image5.gif (7968 bytes)

 

 

Aquí tenemos como primera opción en la lista CODE y en Characterisrics el numero C0000040 HE aquí la protección anti debugger, dasm etc, solo tenemos que pulsar con el botón derecho del ratón sobre la palabra CODE, se desplegara un menú y escogemos edit sections y modificamos el C0000040 POR E0000020 no me preguntéis por que, ya que no lo se lo ley en un manual y siempre me funciona, unas veces encontrareis en name la primera CODE como es este el caso otras veces seguramente encontrareis otros nombres, siempre modificar el que esta en primer lugar, (claro si tiene la protección anti Debugg.)

Ahora probamos a desensamblarlo y perfecto, por donde empezamos???

Intentemos localizar Password is Invalid o Thank you for register , Ya sabéis como siempre, y la primera que vemos es Password is Invalid Cliqueamos encima de la frase y nos llava a

 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

:0047B158(C)

:0047B2E5 6A00              push 00000000
:0047B2E7 668B0D28B34700    mov cx, word ptr [0047B328]
:0047B2EE B201              mov dl, 01
 
* Possible StringData Ref from Code Obj ->"Password is invalid!"
|
 
:0047B2F0 B854B34700 mov eax, 0047B354 à Aparecemos Aquí.
:0047B2F5 E86248FDFF call 0044FB5C
 
Figaros en la línea que esta resaltada en rosa encima del aviso de error

Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:0047B158(C)

 Sabéis que quiere decir esto???? Veis que hay una dirección de memoria |:0047B158(C) Bien pues lo único que nos dice esto es que desde esa dirección de memoria se llega hasta esta parte del código mediante un salto (je jne ), esta información es fabulosa

Y encima si miramos un poquito mas arriba tenemos el código de validación del registro

Osea que esto nos queda así.

* Possible StringData Ref from Code Obj ->"Thank You for support!"
|
:0047B2D9 B834B34700      mov eax, 0047B334
:0047B2DE E87948FDFF      call 0044FB5C
:0047B2E3 EB15             jmp 0047B2FA
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047B158(C)
|
:0047B2E5 6A00            push 00000000
:0047B2E7 668B0D28B34700 mov cx, word ptr [0047B328]
:0047B2EE B201            mov dl, 01
 
* Possible StringData Ref from Code Obj ->"Password is invalid!"
|
:0047B2F0 B854B34700      mov eax, 0047B354
:0047B2F5 E86248FDFF      call 0044FB5C

 Bueno pues parece muy sencillo no en

0047B2D9 B834B34700 Thank You for support

En

0047B2E5 6A00 nos informa que un salto llega hasta aquí

En

0047B2F0 B854B34700 Password is invalid

Lo veis tan sencillo como yo??? Lo primero que hacemos es comprobar que tipo de salto llega hasta el código de error, para ello en el W32dasm pulsamos la opción GOTO y

Goto Code Localitation hay es donde tenemos que meter la dirección de memoria que teníamos marcada en rosa antes ósea 0047B158 aceptamos y oye que increíble nos lleva a

:0047B158 0F8587010000 jne 0047B2E5

veis que si este salto se ejecuta nos lleva directos al Password is invalid saltándose Thank You for support que es el mensaje de que acepta el registro, que nos interesa a nosotros?? pues lógico que no se ejecute el salto y para hacerlo tenemos que realizar los siguientes cambios.

0047B158 0F8587010000 jne 0047B2E5 PoR 0047B158 0F8487010000 je 0047B2E5

O TAMBIEN

0047B158 0F8587010000 jne 0047B2E5 PoR 0047B158 909090909090

yo la opcion que recomiendo es la segunda, si no se tiene que ejecutar el salto lo mejor es eliminarlo no os parece, en cualquier caso hacer lo que queráis. Localizamos el OFFSET y con un editor HEX editamos una copia del ejecutable descomprimido y localizamos los bytes a modificar, en el OFFSET 7A758 Encontramos nuestro salto

0F85 8701 0000 y lo cambiamos por 9090 9090 9090 ahora salvamos los cambios y a probar sin nos acepta cualquier S/N.

Y en efecto a funcionado acepta el S/N que metamos y elimina las limitaciones, incluso ahora podemos utilizar el diccionario que da la empresa de este programa ya que nos lo desencriptara , pero tenemos un problema muy típico, si cerramos el programa y lo ejecutamos nuevamente no mantiene el registro, aunque para este programa no seria un problema esto, ya que no es tan molesto ir a register y sin meter ningún dato pulsar aceptar y el programa queda 100% funcional.

Pero así no tiene gracia hagamos el crack perfecto, Bueno parece ser que cuando el programa se ejecuta hace otra comprobación para ver si estamos registrados o no, quizás se trate de la misma rutina que es llamada desde otro punto del programa o quizás sea una nueva ruina de comprobación, lógico seria que si

0047B158 0F8587010000 jne 0047B2E5 este salto era el que nos llevaba a la rutina de error bien podría existir otro salto o un call que llamase a la misma dirección, busquemos con la opción find text (la linterna) la dirección 0047b2e5 pero desgraciadamente no hay mas llamadas a ese punto, cambiemos de táctica cuando el programa esta registrado podemos ver en la parte inferior un texto que pone

system messages pero cuando esta en evaluación el texto cambia a Unregistered Version

Intentemos atacar por aquí vamos a buscar en el W32dasm Unregistered Version y veremos si podemos hacer algo cliqueamos sobre la frase y aparecemos en

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00475F4F(C)
|
:00475F66 33D2           xor edx, edx
:00475F68 8B8300030000  mov eax, dword ptr [ebx+00000300]
:00475F6E E88974FBFF    call 0042D3FC
 
* Possible StringData Ref from Code Obj ->"Unregistered version!"
|
:00475F73 BAA05F4700 mov edx, 00475FA0 aparecemos aqui
 
Yo estoy buscando un salto que evite que se imprima este mensaje y tenemos uno en
 
:00475F26 7574 jne 00475F9C
 
Pero por mas que lo manipulemos no nos registra el programa.
Si cliquiemos nuevamente sobre Unregistered Version vemos que cambiamos de dirección ousease que hay otra llamada a este texto. Aparecemos en.
 
* Possible StringData Ref from Code Obj ->"Unregistered version!"
|
 
:0047AA89 BA98AB4700 mov edx, 0047AB98 aparecemos aqui
:0047AA8E E8A92AFBFF   call 0042D53C
:0047AA93 A1FCDE4700   mov eax, dword ptr [0047DEFC]
:0047AA98 C60000       mov byte ptr [eax], 00
:0047AA9B 8B87DC020000 mov eax, dword ptr [edi+000002DC]

ahora como antes quiero encontrar algo que haga que no se imprima este texto Unregistered versión Busco por encima del texto en busca de un salto o una llamada call

y justo encima tenemos un salto muy sospechoso porque le precede una comprobación de tipo cmp que supongo que hará algo así si todo esta correcto le paso a je el valor adecuado para que salte evitando imprimir Unregistered version si algo esta mal le digo a je que no se ejecute y así imprime Unregistered version lo entendéis, como siempre os digo estos son mis razonamientos, y puede que no sean del todo correctos, bueno veamos el salto que os estoy comentando.

:0047AA79 807DD000 cmp byte par [ebp-30], 00 -- COMPARACION

:0047AA7D 0F8481000000 je 0047AB04 – SI NO SALTA IMPRIME EL MENSAGE DE ERROR

Bueno tenemos que hacer que salte para evitar Unregistered versión tenemos que convertir el salto en un salto incondicional JMP ( que salte siempre ) tenemos un je de 6 Bytes no es el típico salto de dos bytes ( 7401 je, 7531 jne )

Como ya he explicado en manuales anteriores como saber cuales son Los Bytes nuevos que sustituirán a 0F8481000000 esta vez no me perderé en detalles, si alguno no sabéis como hacerlo consultar los manuales anteriores que hay en mi Web. Bueno para convertirlo en un salto incondicional vamos a el editor HEX y en el offset 7a07d sustituimos

0F84 8100 0000 Por E982 0000 0000

Y ahora salvamos los cambios y probamos, olee perfecto ya se inicia sin ninguna restriccion y nos permite utilizar el diccionario encriptado que da el programador a los usuarios registrado. Bueno pues ya esta, para que os ocupe menos el ejecutable que habéis crackeado podéis comprimirlo con cualquier compresor PE. Ya sabéis que si hacéis el crack de los ejecutables descomprimidos solo os sirven a vosotros, ya comente esto en la introducción de este manual.

Ahora veremos como hacemos un loader para poder utilizar el crack con el archivo original (comprimido) primero os explico como hacerlo con el Process Patcher 3.0

Bueno ya lo tenéis instalado y habéis leído como funciona, yo os mostrare el Script.

Con cualquier editor de textos (el bloc de notas es perfecto) editamos el archivo ppatcher.ppc que viene como ejemplo con el Process Patcher 3.0 esto es para que os agais una idea de cómo hay que poner los datos, y en otra ventana del bloc de notas escribimos lo siguiente.

 

#Process Patcher Configuration File

Version=3.0

DisplayName= Visual Zip Password Recorvery 3.12 --- Nombre del programa

Filename=vzprp.exe --- NOMBRE DEL ARCHIVO

Filesize=289280 --- TAMAÑO EN BYTES DEL ARCHIVO (EL ORIGINAL)

Arguments=/shell --- OPCIONES LEER EL README

WaitInfinite=false --- OPCIONES LEER EL README

Address=0x47AA7D:0x0F:0xE9 -- DIRECCION DE MEMORIA:BYTE ORIGINAL:BYTE NUEVO

Address=0x47aa7E:0x84:0x82

Address=0x47aa7F:0x81:0x00

Address=0x47aa80:0x00:0x00

Address=0x47aa81:0x00:0x00

Address=0x47B158:0x0f:90

Address=0x47B159:0x85:90

Address=0x47B15a:0x87:90

Address=0x47B15b:0x01:90

Address=0x47B15c:0x00:90

Address=0x47B15d:0x00:90

 

Este es para el proces patcher v3 copiais todo al bloc de notas menos lo que esta en rojo y lo guardais como archivo.ppc, seguidamene cogéis el proces patcher v3 y lo copiais al directorio donde tengáis instalado el Visual zip. Para que podamos ejecutar el archivo.ppc como si seria un ejecutable seguir los siguientes pasos.

Abrimos una ventana a MS/DOS que este en el directorio donde tenemos instalado el Visual Zip y en la línea de comandos del DOS ponemos C:\ppatcher.exe /shell con esto conseguimos asociar la extensión .ppc al procees patcher con lo cual desde windows si cliqueamos sobre nuestro archivo.ppc este funcionara como ejecutable, pero debéis tener instalado el proces patcher v3 en el mismo directorio donde tenéis el visual zip cuando ejecutéis archivo.ppc este ara que se ejecute Visual Zip y lo crackeara en memoria , eso si cada vez que tengamos que utilizar el visual zip deberemos ejecutar archivo.ppc y este se encarga de ejecutar nuestra víctima, Claro que vosotros como tenéis los ejecutables descomprimidos y crackeados no necesitáis esto, ya que podéis utilizar el ejecutable crackeado nuevamente comprimido con un PE o sin comprimir.

Que tenéis un colega que tiene el programa y quiere un crack pero no tiene idea de procdum ni de nada similar, pues le dais el archivo.ppc (con el proces Patcher claro)

Si!! ya se, que lo ideal para nuestros colegas seria darle un loader pero un archivo.exe sin tanto royo, bueno pues para eso tenemos el R!SC's PROCESS pATCHER v1.2i

La ventaja de este es que convierte el script en un ejecutable .exe. os explico.

Ya de por si nos trae bastantes ejemplos para que no tengamos ningún problema a la hora de crear nuestro script

abrimos el bloc de notas y copiamos esto

L=2000 ---- Tiempo de retardo por se ejecuta el programa y no le da tiempo a partchearlo los valore son en mlsegundos(creo)

F=vzprp.EXE: ---- NOMBRE DEL ARCHIVO A CRACKEAR

O=karpoff.exe: ---- NOMBRE DEL SCRIP ESTE PARA QUE LO CONVIERTA EN UN EJECUTABLE .EXE

P=47AA7D/0f,84,81,00,00/E9,82,00,00,00: ----p=DIRECCION DE MEMORIA/BYTES ORIGINALES/BYTES NUEVOS

P=47B158/0F,85,87,01,00,00/90,90,90,90,90,90:

$

ESTE ES EL SCRIPT QUE TENEIS QUE COPIAR

L=2000

F=vzprp.EXE:

O=karpoff.exe:

P=47AA7D/0f,84,81,00,00/E9,82,00,00,00:

P=47B158/0F,85,87,01,00,00/90,90,90,90,90,90:

$

tenemos que guardar esto con el nombre que querais pero con la extensión .rpp

ahora como lo con vertimos en un .exe vamos al directorio done tenemos instalado el R!SC's PROCESS pATCHER v1.2i ejecutamos el archivo rpp.exe y nos pedirá mediante un menú de búsqueda de archivos, el script.rpp que queremos convertir en un ejecutable .exe lo seleccionáis y tenéis un loader como dios manda, este si se lo podéis pasar a lo colegas.

 

Pues nada mas solo decir que este programa me lo sugirió Erika mediante un Email, ya que parece no haber ningún crack para este programa, también deciros que ya hay un versión nueva de el Visual Zip Recorbery concretamente la versión 3.2 esta versión no aporta nada nuevo en lo que a utilidad se refiere, solo ha cambiado su entorno gráfico que ahora cuenta con botones gráficos, y aparte necesita bastantes mas recursos para su funcionamiento, también lo he crackeado aunque me costo mas por que tiene mas protecciones, pero con este manual y un poco de paz_y_ciencia no tendréis ningún problema para crakearla.

Espero que me halla expresado bien, como siempre digo no es fácil escribir cuesta expresarte en un texto y requiere mucho tiempo.

Con cualquier duda no tengáis reparo en mandarme un email, contesto a todos los email.

Un saludo para todos/as (karpoff)

Kf_karpoff@hotmail.com

http://welcome.to/karpoff

http://come.to/karpoff

http://karpoff.exit.de

http://karpoff.tsx.org

 El uso de este material es solo para uso educativo, por ahora los cracks son ilegales cada cual es responsable del uso que le de a este tutorial.

Karpoff spanish Tutor 2000

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com