--
ESTUDIO COLECTIVO DE DESPROTECCIONES | ||
WKT Tutorialz Site | ||
progrAmA | Slim Show 3.1 | W |
DEsCripCi≤n | Interactive Multimedia Authoring Software for MS-Windows | |
tipo | Shareware | |
url | http://www.pcww.com | |
protECCi≤n | Algunas Limitaciones si no estßs registrado. | |
DiFiCultAD | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista | |
hErrAmiEntAs | SoftIce, IDA Pro | |
CrACkEr | Mr.Pink | |
FEChA | 29 de Septiembre de 1998 |
Introducci≤n |
Saludos. Cumpliendo un encargito de "Estado+Porcino", yo Mr.Pink resuelve un facil puzzle. Crackear Slim Show 3.1. Site:www.pcww.com |
Al Atake |
Buscamos la cadena Shareware con un buscador de Cadenas como el Search and Replace. La encontramos en el ejecutable. Bien, la protecci≤n no estß diseminada. Desensamblamos con el Wdasm8.9 (si no tienes esta version completa del desensamblador, buscadlo esta por todas partes).En "String Refereces" no encontramos Shareware. Asφ pues cogemos la artillerφa pesada, el IDA Pro. Desensamblamos y buscamos la cadena "Shareware". Con cuidado, ya que las cadenas aparecen en vertical: 0:0 S 0:0 H 0:0 A 0:0 R 0:0 E 0:0 W 0:0 A 0:0 R 0:0 EY esto es lo que encontramos: dseg03:2B56 57 db 57h ; W dseg03:2B57 41 db 41h ; A dseg03:2B58 52 db 52h ; R dseg03:2B59 4E db 4Eh ; N dseg03:2B5A 49 db 49h ; I dseg03:2B5B 4E db 4Eh ; N dseg03:2B5C 47 db 47h ; G dseg03:2B5D 00 db 0 ; dseg03:2B5E 43 db 43h ; C dseg03:2B5F 41 db 41h ; A dseg03:2B60 4E db 4Eh ; N dseg03:2B61 20 db 20h ; dseg03:2B62 4F db 4Fh ; O dseg03:2B63 4E db 4Eh ; N dseg03:2B64 4C db 4Ch ; L dseg03:2B65 59 db 59h ; Y dseg03:2B66 20 db 20h ; dseg03:2B67 53 db 53h ; S dseg03:2B68 41 db 41h ; A dseg03:2B69 56 db 56h ; V dseg03:2B6A 45 db 45h ; E dseg03:2B6B 20 db 20h ; dseg03:2B6C 55 db 55h ; U dseg03:2B6D 50 db 50h ; P dseg03:2B6E 20 db 20h ; dseg03:2B6F 54 db 54h ; T dseg03:2B70 4F db 4Fh ; O dseg03:2B71 20 db 20h ; dseg03:2B72 32 db 32h ; 2 dseg03:2B73 35 db 35h ; 5 dseg03:2B74 20 db 20h ; dseg03:2B75 53 db 53h ; S dseg03:2B76 43 db 43h ; C dseg03:2B77 45 db 45h ; E dseg03:2B78 4E db 4Eh ; N dseg03:2B79 45 db 45h ; E dseg03:2B7A 53 db 53h ; S /**********************************/ dseg03:3399 54 db 54h ; T dseg03:339A 68 db 68h ; h dseg03:339B 69 db 69h ; i dseg03:339C 73 db 73h ; s dseg03:339D 20 db 20h ; dseg03:339E 69 db 69h ; i dseg03:339F 73 db 73h ; s dseg03:33A0 20 db 20h ; dseg03:33A1 61 db 61h ; a dseg03:33A2 20 db 20h ; dseg03:33A3 73 db 73h ; s dseg03:33A4 68 db 68h ; h dseg03:33A5 61 db 61h ; a dseg03:33A6 72 db 72h ; r dseg03:33A7 65 db 65h ; e dseg03:33A8 77 db 77h ; w dseg03:33A9 61 db 61h ; a dseg03:33AA 72 db 72h ; r dseg03:33AB 65 db 65h ; e dseg03:33AC 20 db 20h ; dseg03:33AD 65 db 65h ; e dseg03:33AE 64 db 64h ; d dseg03:33AF 69 db 69h ; i dseg03:33B0 74 db 74h ; t dseg03:33B1 69 db 69h ; i dseg03:33B2 6F db 6Fh ; o dseg03:33B3 6E db 6Eh ; n /*******************************************************/ dseg03:345A 54 db 54h ; T dseg03:345B 68 db 68h ; h dseg03:345C 65 db 65h ; e dseg03:345D 20 db 20h ; dseg03:345E 73 db 73h ; s dseg03:345F 68 db 68h ; h dseg03:3460 61 db 61h ; a dseg03:3461 72 db 72h ; r dseg03:3462 65 db 65h ; e dseg03:3463 77 db 77h ; w dseg03:3464 61 db 61h ; a dseg03:3465 72 db 72h ; r dseg03:3466 65 db 65h ; e dseg03:3467 20 db 20h ; dseg03:3468 65 db 65h ; e dseg03:3469 64 db 64h ; d dseg03:346A 69 db 69h ; i dseg03:346B 74 db 74h ; t dseg03:346C 69 db 69h ; i dseg03:346D 6F db 6Fh ; o dseg03:346E 6E db 6Eh ; n /********************************************************/Comenzemos por quitar la restricci≤n de 25 escenas. Para ello buscamos 2B56 (Offset del mensaje de Error de 25 escenas) Lo encontramos en : cseg01:460A loc_0_460A: ; CODE XREF: sub_0_43D2+233.j cseg01:460A 33 C0 xor ax, ax cseg01:460C 50 push ax cseg01:460D B8 5E 2B mov ax, 2B5Eh cseg01:4610 1E push ds cseg01:4611 50 push ax cseg01:4612 B8 56 2B mov ax, 2B56h ; BINGO. Mensaje de Error. cseg01:4615 1E push ds cseg01:4616 50 push ax cseg01:4617 B8 40 00 mov ax, 40h ; '@' cseg01:461A 50 push ax cseg01:461B 9A 00 00 2B 29 call MESSAGEBOX /********************************************************/Este trozo de c≤digo es llamado por: cseg01:45DC C6 86 F8 FE 0A mov [bp+var_108], 0Ah ; Contamos a partir de 10 cseg01:45E1 8B 46 0A mov ax, [bp+arg_4] cseg01:45E4 8B 56 0C mov dx, [bp+arg_6] cseg01:45E7 89 86 02 FF mov word ptr [bp+var_FE], ax cseg01:45EB 89 96 04 FF mov word ptr [bp+var_FE+2], dx cseg01:45EF cseg01:45EF loc_0_45EF: ; CODE XREF: sub_0_43D2+42E.j cseg01:45EF 8B C2 mov ax, dx cseg01:45F1 0B 86 02 FF or ax, word ptr [bp+var_FE] cseg01:45F5 74 29 jz loc_0_4620 cseg01:45F7 F6 46 12 02 test [bp+arg_C], 2 cseg01:45FB 75 03 jnz loc_0_4600 cseg01:45FD E9 C2 00 jmp loc_0_46C2 cseg01:4600 ;─────────────────────────────────────────────── cseg01:4600 cseg01:4600 loc_0_4600: ; CODE XREF: sub_0_43D2+229.j cseg01:4600 80 BE F8 FE 23 cmp [bp+var_108], 23h ; '#'; LLAMADA AL MENSAJE DE ERROR cseg01:4605 7D 03 jge loc_0_460A cseg01:4607 E9 B8 00 jmp loc_0_46C2 /***********************************************/MADRE DE MITRA, que astucia tienen estos programadores. En vez de contar a partir de uno, cuentan a partir de 10 (por eso la comprobacion en cseg01:4600 con 23h=35). Asi despistaremos a esos est·pidos crackers que nuncan se imaginaran un truco tan orgßsmico. Como podeis ver, to el meollo lo lleva la variable [bp+var_108]. Asi pues sigamos buscando [bp+var_108] y encontramos: cseg01:47F0 26 8B 57 6A mov dx, es:[bx+6Ah] cseg01:47F4 89 86 02 FF mov word ptr [bp+var_FE], ax cseg01:47F8 89 96 04 FF mov word ptr [bp+var_FE+2], dx cseg01:47FC FE 86 F8 FE inc [bp+var_108] ; !!AQUI!!. aumentamos la cuenta. cseg01:4800 E9 EC FD jmp loc_0_45EF cseg01:4803 ;─────────────────────────────────────────────── /************************************************/El crack es sencillo nopeemos: cseg01:47FC FE 86 F8 FE inc [bp+var_108]; !!AQUI!! por cseg01:47FC 90 90 90 90 NOP NOP NOP NOPEn el ejecutable 53fc)h=90 90 90 90 Y listo, nunca mas se incrementarß la variable.
Quitemos ahora los horribles mensajes shareware, siguiendo la misma tΘcnica. seg01:B236 9A 28 00 2B 29 call GETDLGITEM cseg01:B23B 50 push ax cseg01:B23C B8 99 33 mov ax, 3399h cseg01:B23F 1E push ds cseg01:B240 50 push axEste trozo es llamado por: cseg01:B203 A1 20 47 ;ABOUTDLG+1F6.j cseg01:B203 mov ax, word_14AA_4720 cseg01:B206 48 dec ax cseg01:B207 74 0F jz loc_0_B218 cseg01:B209 48 dec ax cseg01:B20A 74 6A jz loc_0_B276 cseg01:B20C 48 dec ax cseg01:B20D 74 79 jz loc_0_B288 cseg01:B20F 48 dec ax cseg01:B210 75 03 jnz loc_0_B215 cseg01:B212 E9 85 00 jmp loc_0_B29Aasi pues quien parte el bacalao es: word_14AA_4720 Pero analizando un poco con el Sice vemos que este es un bucle de llamadas a mensajes, asφ que es mejor no tocarlo. Por tanto, desactivemos la llamada al nag de inicio. Para ello abrimos el Sice y ponemos bpx dialogboxparam y lanzamos el ejecutable. Boom, aparecemos en el Sice, pulsamos F12 (pulsamos OK) y de nuevo F12. Aparecemos en: cseg01:0901 B8 01 00 mov ax, 1 cseg01:0904 50 push ax cseg01:0905 0E push cs cseg01:0906 E8 A7 A6 call near ptr sub_0_AFB0 cseg01:0909 83 C4 02 add sp, 2 cseg01:090C B8 D5 51 mov ax, 51D5hEste trozo no es llamado de forma condicional por nadie, estß incrustado el la rutina principal, asφ que nada mejor que desactivarla, cambißndola por: cseg01:0901 EB 09 jmp 90C cseg01:0903 90 NOP cseg01:0904 50 push ax cseg01:0905 0E push cs cseg01:0906 E8 A7 A6 call near ptr sub_0_AFB0 cseg01:0909 83 C4 02 add sp, 2 cseg01:090C B8 D5 51 mov ax, 51D5hAsi pues En el ejecutable: 1501)h=EB 09 90
Y Listo. Que lo disfruteis.
Saludos Mr Pink. |
[ 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 ] |