--
ESTUDIO COLECTIVO DE DESPROTECCIONES | ||
WKT Tutorialz Site | ||
Programa | Ultraedit v6.10a | W95 / W98 / NT |
Descripción | Excelente editor Hexadecimal. | |
Tipo | Shareware (30 $) | |
Url | http://www.ultraedit.com | |
Protección | Nag Screen que nos pide el Numero de Serie. Time Limit 45 Dias | |
Dificultad | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista | |
Herramientas | SoftIce v3.24, W32dasm v8.9, UltraEdit v5.0a | |
Objetivo | Simular estar registrados. | |
Cracker | Mr.WhiTe [WkT!] | |
Fecha | 15 de Julio de 1999 |
Introducci≤n |
El programa no tiene limitaciones por no estar registrado, pero aparece una nag-screen cada vez que se
arranca el programa. Hay una opci≤n para registrarse, introduciendo el nombre y la clave.
El objetivo serß simular que nuestro fake serial es un n·mero de serie correcto. |
Al Atake |
Lo primero es ver c≤mo reacciona el programa al intentar registrarnos. Ponemos un nombre, y clave cualquiera, y nos aparece un mensaje que nos dice algo asi "UltraEdit will need to be restarted in order to validate the code". Total, que salimos del UltraEdit y volvemos a entrar para que nos compruebe el serial. Si te fijas, al cerrar el programa, en el directorio donde lo has instalado, se crea un archivo de registro uedit32.reg. Este archivo esta encriptado, y contiene precisamente nuestros datos de registro. Si utilizas el FileMonitor, podras comprobar como el UltraEdit lee este archivo para comprobar si nos hemos registrado correctamente. Bien, vamos a utilizar nuestro queridisimo "death listing" o listado muerto y bucear en el c≤digo. :o) Una vez desensamblado con el W32dasm, guardamos el project file para no tener que desensamblarlo mas tarde. Pulsamos el boton de String Data References y empezamos a buscar alguna pista. Vemos varias referencias interesantes:
Despues de un buen rato investigando el código, y cuando ya empezaba a perderme con tantas posibles referencias....... se me ocurrio "cazar" al programa cuando lee ese archivo de registro uedit32.reg. Buscando en mi HD encontre esas excelentes paginas de Torn@do, las Cracker's Notes. Cojonudo, ahora solo tengo que encontrar la funcion adecuada. Vamos al apartado files a ver que hay....... ummm " GetPrivateProfileStringA " coooño, esta me suena. A ver para que carajo sirve...... "Retrieves a string from the specified section in an initialization file" ;o) Comprobamos en el W32Dasm que funciones importa el UltraEdit ..... BINGO, está. ¿probamos? PROBAMOS. Vamos al SoftIce y abrimos el UltraEdit. ARgg, la dichosa Nag que nos pide el serial. Ponemos un nombre y un serial cualquiera ( de 6 caracteres ) y.... quietooooo!!!! antes de pulsar el boton , Control+D y vamos al SoftIce, ponemos un BreakPoint en la funcion " GetPrivateProfileStringA ", (BPX GetPrivateProfileStringA), Control+D again. Pulsamos el boton, BANG! PANTALLAZO y de vuelta al SoftIce. :o) :0040D209 E832A00500 call 00467240 ;Aqui aterriza el Softice :0040D20E 59 pop ecx :0040D20F 59 pop ecx :0040D210 5E pop esi :0040D211 85C0 test eax, eax :0040D213 7520 jne 0040D235 ;Saltamos a.... * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040D213(C) | :0040D235 8D45C0 lea eax, dword ptr [ebp-40] ;Serial Real :0040D238 50 push eax :0040D239 8D4580 lea eax, dword ptr [ebp-80] ;Nuestro Fake Serial :0040D23C 50 push eax :0040D23D E8FE9F0500 call 00467240 ;Compara los Serials :0040D242 59 pop ecx :0040D243 85C0 test eax, eax :0040D245 59 pop ecx :0040D246 7426 je 0040D26E ;HAS PAGADO!!! :0040D248 8D8540FFFFFF lea eax, dword ptr [ebp+FFFFFF40] ;Otro Serial valido :0040D24E 50 push eax :0040D24F 8D4580 lea eax, dword ptr [ebp-80] ;Nuestro Fake Serial :0040D252 50 push eax :0040D253 E8E89F0500 call 00467240 ;Compara los Serials :0040D258 59 pop ecx :0040D259 85C0 test eax, eax :0040D25B 59 pop ecx :0040D25C 7410 je 0040D26E ;HAS PAGADO!!! :0040D25E C70500F24C0001000000 mov dword ptr [004CF200], 00000001 Es curioso, hay dos numeros de serie validos !!!!, en fin.... No comments ;o) :0040D235 8D45C0 lea eax, dword ptr [ebp-40] Si aqui escribimos " db ebp-40 " en el softIce veremos el primer serial válido. :0040D248 8D8540FFFFFF lea eax, dword ptr [ebp+FFFFFF40] Si aqui escribimos " db ebp+FFFFFF40 " en el softIce veremos el segundo serial válido. Vamos a Parchear esto para que nos acepte cualquier serial: :0040D246 7426 je 0040D26ELo cambiamos por " :0040D246 EB26 JMP 0040D26E " Así siempre saltara al código correcto y se creera que el serial que le hemos puesto lo hemos pagado. ;o) Ok, estupendo. Parece que ya esta listo, asi que probamos de nuevo nuestro fake serial y ...... tachan ..... tachan.... nos crea el uedit32.reg (tal y como esperabamos), cargamos el UltraEdit otra vez.... AAAAAAARGGGG !!!! PERO QUE PASAAAA?? (nos ha borrado el uedit32.reg) sera cabronazooooooo!!!. NAAAAG NAAAAG again !! Flipante !! :o? ya nos ibamos y resulta que el programilla se las da de listo. Vaya vaya..... Esto no puede ser. :o( Ummmm, nos borra un archivo!!. ¿y? ¿donde esta el problema? Recurrimos otra vez a las funciones importadas por el UltraEdit ( buscalas en el listado muerto con el W32Dasm ). Ummmm, una funcion que nos borre un archivo..... joer, hay varias que ponen Delete:
Aterrizamos en: * Reference To: KERNEL32.DeleteFileA, Ord:0057h | :004443BA FF1514644A00 Call dword ptr [004A6414] :004443C0 A174024D00 mov eax, dword ptr [004D0274] :004443C5 8065FC00 and byte ptr [ebp-04], 00 :004443C9 83C0D4 add eax, FFFFFFD4 :004443CC 8D4DEC lea ecx, dword ptr [ebp-14] :004443CF A37C024D00 mov dword ptr [004D027C], eax :004443D4 899E32070000 mov dword ptr [esi+00000732], ebx :004443DA E8CE950300 call 0047D9AD Ummm, ¿que tal si machacamos esa asquerosa llamadita a DeleteFileA? :004443BA FF1514644A00 Call dword ptr [004A6414] La sustituimos por: :004443BA 909090909090 ( 6 NOPS ) Comprobamos si nos mantiene el archivo .......SI, funciona. Quiza te haya sorprendido la manera de enfocar este tutorial puesto que no es la mejor opcion para registrar este programa, la mas limpia quiero decir. Pero asi aprendes las guarreridas que se pueden hacer. Ademas, funciona ¿no? El Programa cree que nuestro numero de serie es correcto, con lo cual ya no nos aparece la molesta nag al principio. En la ventana de Help/About aparecemos como registrados, el programa no caduca y como ya no nos borra el archivo uedit32.reg .....ya tenemos otra excelente herramienta ;o) Creo que no hace falta que te recuerde el propósito de estos tutoriales. ¿no? NOTA: Estos tutoriales pueden contener errores intencionados (puede ser que el autor se haya saltado la explicación de algún paso, errores en las direcciones de memoria......etc). El objetivo es que aprendas a crackear y que tengas ideas propias. ;o) *▒▒========-*-*-*-* P E R S O N A L G R E E T Z *-*-*-*-========▒▒* Dasavant, Niabi, r00ster, ZEncrakz, Azrael, Klimpong, Zor Conde-Vampiro, Mac-Crack, Killer_P, ASTAGA, Harvestr, Iczelion JosephCo, Carpathia, Taylor, Tapu, Ivanopulo, EgoistE, Torn@do, JUANDA, Leoworld, ReKiem, Neural_N, Netking, Russ97, Mr.Pink and of course all WKT Members ;o) *------------------* |WHISKEY KON TEKILA| |Mr.WhiTe [WkT!99] | |http://wkt.tsx.org| |http://ecd.tsx.org| *------------------* |
[ Main | Links | [WkT!] Main Site | [WkT!] Search Engine | [WkT!] Stats ] |
[ Win32ASM | English Tutorials | Tutoriales en Español | [WkT!] ECD ] |