--
ESTUDIO COLECTIVO DE DESPROTECCIONES | ||
WKT Tutorialz Site | ||
Programa | Lotus SmartSuite Millenium Edition | W95 / W98 / NT |
Descripción | Suite Ofimatica bastante mejor que el Office de Mocosoft | |
Tipo | Trial de 30 dias | |
Url | http://www.lotus.com | |
Protección | Nag Screen. Time Limit 30 Dias | |
Dificultad | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista | |
Herramientas | SoftIce v3.25, W32dasm v8.9, UltraEdit v6.10a | |
Objetivo | Simular estar registrados. | |
Cracker | Mr.WhiTe [WkT!] | |
Fecha | 15 de Julio de 1999 |
Introducci≤n |
Mientras buscaba entre mis cds algun programa interesante con el
que juguetear un rato, me he topado por casualidad con un cd
(PCMania n║76) con esta interesante Suite de Lotus. Es curioso, te
acostumbras a usar el office de Mocosoft y cuando llevas media vida
usando esa bazofia descubres una alternativa MUCHO MEJOR. Que putada ┐no?
en fin.... aun estamos a tiempo de cambiar a LOTUS :o)
Realmente esta Suite me ha sorprendido gratamente, quiza Lotus deberia hacer una campa±a publicitaria mas agresiva y dar a conocer mejor sus productos. Yo no se que co±o tiene Mocosoft (bueno si lo se, las pelas del Gates claro) que embauca a todo el mundo para que usemos esa mierda de programas llenos de bugs. Desde luego no sere yo uno de los incautos compradores del Office 2000. Mocosoft apesta :o/ |
Al Atake |
Bien, sin mas preambulos vamos a proceder a ANALIZAR LA PROTECCION empleada
por LOTUS en esta SMARTSUITE MILLENIUM EDITION :o)
Se trata de una version Trial de 30 dias, plenamente operativa, con una pesada nag screen del tipo "dialogboxparama". Comenzaremos por el tipico " BPX GETLOCALTIME " Pulsamos F11 y despues F12 y nuestro SoftIce aterriza en: (vemos que esta en el archivo LTSMKT01.DLL) * Reference To: KERNEL32.CreateFileA, Ord:002Bh | :10001BDF FF1514B40110 Call dword ptr [1001B414] :10001BE5 8945F4 mov dword ptr [ebp-0C], eax :10001BE8 837DF4FF cmp dword ptr [ebp-0C], FFFFFFFF :10001BEC 0F84D1010000 je 10001DC3 :10001BF2 8D45F8 lea eax, dword ptr [ebp-08] :10001BF5 50 push eax :10001BF6 E8F5140000 call 100030F0 <--- APARECEMOS AQUI !!! :10001BFB 83C404 add esp, 00000004 :10001BFE 8B45F8 mov eax, dword ptr [ebp-08] :10001C01 8945E8 mov dword ptr [ebp-18], eax :10001C04 68408D0110 push 10018D40 :10001C09 68388D0110 push 10018D38 :10001C0E 68308D0110 push 10018D30 :10001C13 8B45F4 mov eax, dword ptr [ebp-0C] :10001C16 50 push eax * Reference To: KERNEL32.GetFileTime, Ord:00DBh <--- Cuando se ha usado el archivo por ultima vez | :10001C17 FF150CB40110 Call dword ptr [1001B40C] :10001C1D 6A00 push 00000000 :10001C1F 6A00 push 00000000 :10001C21 8B4510 mov eax, dword ptr [ebp+10] :10001C24 50 push eax :10001C25 E8D3030000 call 10001FFD :10001C2A 83C404 add esp, 00000004 :10001C2D 50 push eax :10001C2E 8B45F4 mov eax, dword ptr [ebp-0C] :10001C31 50 push eax * Reference To: KERNEL32.SetFilePointer, Ord:01F8h | :10001C32 FF15D0B30110 Call dword ptr [1001B3D0] :10001C38 6A00 push 00000000 :10001C3A 8D45FC lea eax, dword ptr [ebp-04] :10001C3D 50 push eax * Possible Reference to String Resource ID=00004: "ltsuite.exe" | :10001C3E 6A04 push 00000004 :10001C40 8D45F0 lea eax, dword ptr [ebp-10] :10001C43 50 push eax :10001C44 8B45F4 mov eax, dword ptr [ebp-0C] :10001C47 50 push eax * Reference To: KERNEL32.ReadFile, Ord:01B8h | :10001C48 FF1518B40110 Call dword ptr [1001B418] <---Lee la fecha de instalacion :10001C4E 6A00 push 00000000 :10001C50 8D45FC lea eax, dword ptr [ebp-04] :10001C53 50 push eax * Possible Reference to String Resource ID=00004: "ltsuite.exe" | :10001C54 6A04 push 00000004 :10001C56 8D45E0 lea eax, dword ptr [ebp-20] :10001C59 50 push eax :10001C5A 8B45F4 mov eax, dword ptr [ebp-0C] :10001C5D 50 push eax * Reference To: KERNEL32.ReadFile, Ord:01B8h | :10001C5E FF1518B40110 Call dword ptr [1001B418] <---Lee la fecha del ultimo uso :10001C64 837DF000 cmp dword ptr [ebp-10], 00000000 :10001C68 0F8553000000 jne 10001CC1 :10001C6E 8B45E8 mov eax, dword ptr [ebp-18] :10001C71 50 push eax :10001C72 8B4510 mov eax, dword ptr [ebp+10] :10001C75 50 push eax :10001C76 E898010000 call 10001E13 :10001C7B 83C408 add esp, 00000008 :10001C7E 85C0 test eax, eax :10001C80 0F8425000000 je 10001CAB :10001C86 8B45E8 mov eax, dword ptr [ebp-18] :10001C89 8945F0 mov dword ptr [ebp-10], eax :10001C8C 8B45E8 mov eax, dword ptr [ebp-18] :10001C8F 8945E0 mov dword ptr [ebp-20], eax :10001C92 8B450C mov eax, dword ptr [ebp+0C] :10001C95 25FFFF0000 and eax, 0000FFFF :10001C9A A33C5B0110 mov dword ptr [10015B3C], eax * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001C68(C) | :10001CC1 8B45E0 mov eax, dword ptr [ebp-20] :10001CC4 3945E8 cmp dword ptr [ebp-18], eax <--- Compara fecha actual con fecha limite :10001CC7 0F8316000000 jnb 10001CE3 :10001CCD C7053C5B0110FFFFFFFF mov dword ptr [10015B3C], FFFFFFFF :10001CD7 C745EC00000000 mov [ebp-14], 00000000 :10001CDE E966000000 jmp 10001D49 si fecha actual es > fecha limite SALTARA * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001CC7(C) | :10001CE3 8B450C mov eax, dword ptr [ebp+0C] :10001CE6 25FFFF0000 and eax, 0000FFFF :10001CEB 8D0480 lea eax, dword ptr [eax+4*eax] :10001CEE 8D04C0 lea eax, dword ptr [eax+8*eax] :10001CF1 8D0440 lea eax, dword ptr [eax+2*eax] :10001CF4 8D0480 lea eax, dword ptr [eax+4*eax] :10001CF7 C1E007 shl eax, 07 :10001CFA 0345F0 add eax, dword ptr [ebp-10] :10001CFD 3B45E8 cmp eax, dword ptr [ebp-18] <-- Compara fecha de instalacion con la fecha actual :10001D00 0F8316000000 jnb 10001D1C <-- Lo cambiamos a JNE :10001D06 C7053C5B0110FFFFFFFF mov dword ptr [10015B3C], FFFFFFFF * Possible Reference to String Resource ID=00001: "4" | :10001D10 C745EC01000000 mov [ebp-14], 00000001 :10001D17 E92D000000 jmp 10001D49 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001D00(C) | :10001D1C 8B45E8 mov eax, dword ptr [ebp-18] :10001D1F 2B45F0 sub eax, dword ptr [ebp-10] :10001D22 8945E4 mov dword ptr [ebp-1C], eax :10001D25 8B4D0C mov ecx, dword ptr [ebp+0C] :10001D28 81E1FFFF0000 and ecx, 0000FFFF :10001D2E BB80510100 mov ebx, 00015180 :10001D33 8B45E4 mov eax, dword ptr [ebp-1C] :10001D36 2BD2 sub edx, edx :10001D38 F7F3 div ebx :10001D3A 2BC8 sub ecx, eax <--- DIAS QUE NOS QUEDAN :10001D3C 890D3C5B0110 mov dword ptr [10015B3C], ecx * Possible Reference to String Resource ID=00001: "4" | :10001D42 C745EC01000000 mov [ebp-14], 00000001 <-- FLAG * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:10001CBC(U), :10001CDE(U), :10001D17(U) | :10001D49 837DEC00 cmp dword ptr [ebp-14], 00000000 :10001D4D 0F8E4D000000 jle 10001DA0 :10001D53 8B45E8 mov eax, dword ptr [ebp-18] :10001D56 8945E0 mov dword ptr [ebp-20], eax :10001D59 6A00 push 00000000 :10001D5B 6A00 push 00000000 :10001D5D 8B4510 mov eax, dword ptr [ebp+10] :10001D60 50 push eax :10001D61 E897020000 call 10001FFD :10001D66 83C404 add esp, 00000004 :10001D69 50 push eax :10001D6A 8B45F4 mov eax, dword ptr [ebp-0C] :10001D6D 50 push eax * Reference To: KERNEL32.WriteFile, Ord:024Fh | :10001D84 FF15CCB30110 Call dword ptr [1001B3CC] :10001D8A 6A00 push 00000000 :10001D8C 8D45FC lea eax, dword ptr [ebp-04] :10001D8F 50 push eax * Possible Reference to String Resource ID=00004: "ltsuite.exe" | :10001D90 6A04 push 00000004 :10001D92 8D45E0 lea eax, dword ptr [ebp-20] <-- AQUI :10001D95 50 push eax :10001D96 8B45F4 mov eax, dword ptr [ebp-0C] :10001D99 50 push eax * Reference To: KERNEL32.WriteFile, Ord:024Fh | :10001D9A FF15CCB30110 Call dword ptr [1001B3CC] * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001D4D(C) | :10001DA0 68408D0110 push 10018D40 :10001DA5 68388D0110 push 10018D38 :10001DAA 68308D0110 push 10018D30 :10001DAF 8B45F4 mov eax, dword ptr [ebp-0C] :10001DB2 50 push eax * Reference To: KERNEL32.SetFileTime, Ord:01F9h | :10001DB3 FF15C8B30110 Call dword ptr [1001B3C8] :10001DB9 8B45F4 mov eax, dword ptr [ebp-0C] :10001DBC 50 push eax * Reference To: KERNEL32.CloseHandle, Ord:0016h |
UNA CUESTION DE ESTETICA |
┐Como podemos evitar que nos aparezca esa pesadisima NAG SCREEN al comienzo de cada programa? Veamos, como he dicho al principio de este tutorial, esta NAG SCREEN apesta a "dialogboxparama". Asi que ponemos un breakpoint "bpx dialogboxparama" F11 y aterrizamos en :004012A4 Call dword ptr [0040A264] (Estamos dentro del archivo ltsuite.exe) :0040128E 8B5D08 mov ebx, dword ptr [ebp+08] :00401291 8BCF mov ecx, edi :00401293 53 push ebx :00401294 E827FEFFFF call 004010C0 :00401299 57 push edi :0040129A 68E0124000 push 004012E0 :0040129F 6A00 push 00000000 * Reference To: USER32.DialogBoxParamA, Ord:008Ah | :004012A4 FF1564A24000 Call dword ptr [0040A264] <--- APARECEMOS AQUI :004012AA 8B4DF4 mov ecx, dword ptr [ebp-0C] :004012AD 5F pop edi :004012AE 64890D00000000 mov dword ptr fs:[00000000], ecx :004012B5 5E pop esi :004012B6 5B pop ebx :004012B7 8BE5 mov esp, ebp :004012B9 5D pop ebp :004012BA C21000 ret 0010 Si pulsamos el boton "OK" nos devolvera el valor 10. Asi que vamos a provocar que el propio programa nos pulse el boton automaticamente y no nos de ni tiempo a ver esa NAG En :00401299 57 PUSH EDI (699h) Lo cambiamos Por :00401299 B810000000 MOV EAX,10 En :0040129E (69Eh) Lo cambiamos Por EB0A JMP 004012AA Finalmente :004012A0 00 (6a0h) Lo cambiamos por 90 (NOP) PARCHES: 1) compnent/ltsuite.exe En este archivo vamos a parchear para quitar la Nag inicial :00401299 57 PUSH EDI POR :00401299 B810000000 MOV EAX,10 En :0040129E POR EB0A JMP 004012AA En :004012A0 00 POR 90 (NOP) Tenemos que buscar: 5768E01240006A00 Y reemplazarla por B810000000EB0A90 (699h) 2a) ARCHIVO LTSMKT01.DLL [CASO A] Corresponde a las versiones RELEASE 9 for Windows N9.0.9805.2800 wordpro/ltsmkt01.dll version 1.0.0.1 Tama±o 305.664 bytes scrncam/ltsmkt01.dll version 1.0.0.1 Tama±o 305.664 bytes approach/ltsmkt01.dll version 1.0.0.1 Tama±o 305.664 bytes 123/ltsmkt01.dll version 1.0.0.1 Tama±o 305.664 bytes organize/ltsmkt01.dll version 1.0.0.1 Tama±o 305.664 bytes :10001CC7 0F8316000000 JNB 10001CE3 POR :10001CC7 0F8516000000 JNE 10001CE3 Y :10001D00 0F8316000000 JNB 10001D1C POR :10001D00 0F8516000000 JNE 10001D1C Finalmente en :10001D3A 2BC8 SUB ECX,EAX POR :10001D3A 90 Y :10001D3A 90 Asi pues, buscamos con el Ultraedit (o cualquier otro editor hexa) "0F8316000000" y lo reemplazamos por "0F8516000000" Y DESPUES buscamos "2BC8890D" y lo reemplazamos por "9090890D" 2b) ARCHIVO LTSMKT01.DLL [CASO B] Corresponde a las versiones: LOTUS Freelance Graphics RELEASE 9 for Windows N9.0.9805.2000 flg/ltsmkt01.dll version 1.0.0.1 Tama±o 306.176 bytes LOTUS FastSite RELEASE 1 for Windows N1.0.0.78f fastsite/ltsmkt01.dll version 1.0.0.1 Tama±o 306.176 bytes En este caso , el archivo es distinto al del caso A, pero estamos en la misma situacion. Realizamos la misma busqueda que en el caso A, es decir: "0F8316000000" y lo reemplazamos por "0F8516000000" (Aqui solo encontramos una) Y DESPUES buscamos "2BC8890D" y lo reemplazamos por "9090890D" 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 ] |