…desempacar, desempacar … ¿Whyyyyyy!!!!?
Donde quedan los tiempos de antaño en los que la gente se hacía sus loader “de p**a ma*re”, o como dirian los argentinos… “de la concha de tu madre la pelotuda”. El caso es que por casualidad un amigo me comentó que le echara un vistazo a un programa.
1) Ouff Aspack!

2) Problema
No tenemos tiempo de estudiar packers, o no sabemos, o no queremos. Pues utilizamos alguna tool de internet.

crash!, el programa no funciona y todo el mundo desesperado en los foros. ¿Abandonamos? – No !
3) Solucionando el problema.
En ollydbg tenemos una opción magnífica llamada Atach! Así que, ejecutamos el programa y paramos aquí.

Atacheamos y buscamos la función,

Mediante los RET llegamos a este punto.
005A2430 |. E8 6FFBFFFF |CALL gdbnt.005A1FA4
005A2435 |. 84C0 |TEST AL,AL
005A2437 |. 74 5E |JE SHORT gdbnt.005A2497
005A2439 |. A1 9CBF6700 |MOV EAX,DWORD PTR DS:[67BF9C]
005A243E |. C640 10 01 |MOV BYTE PTR DS:[EAX+10],1
005A2442 |. A1 9CBF6700 |MOV EAX,DWORD PTR DS:[67BF9C]
005A2447 |. E8 5CF9FFFF |CALL gdbnt.005A1DA8
005A244C |. 84C0 |TEST AL,AL
005A244E |. 74 25 |JE SHORT gdbnt.005A2475
005A2450 |. 6A 00 |PUSH 0
005A2452 |. 8D55 D4 |LEA EDX,DWORD PTR SS:[EBP-2C]
005A2455 |. A1 C4716700 |MOV EAX,DWORD PTR DS:[6771C4]
005A245A |. E8 F949E6FF |CALL gdbnt.00406E58
005A245F |. 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C] ; |
005A2462 |. 66:8B0D 64255>|MOV CX,WORD PTR DS:[5A2564] ; |
005A2469 |. B2 02 |MOV DL,2 ; |
005A246B |. E8 3800EEFF |CALL gdbnt.004824A8 ; \gdbnt.004824A8
005A2470 |. E9 91000000 |JMP gdbnt.005A2506
005A2475 |> 6A 00 |PUSH 0
005A2477 |. 8D55 D0 |LEA EDX,DWORD PTR SS:[EBP-30]
005A247A |. B8 341A5A00 |MOV EAX,gdbnt.005A1A34
005A247F |. E8 D449E6FF |CALL gdbnt.00406E58
005A2484 |. 8B45 D0 |MOV EAX,DWORD PTR SS:[EBP-30] ; |
005A2487 |. 66:8B0D 68255>|MOV CX,WORD PTR DS:[5A2568] ; |
005A248E |. B2 01 |MOV DL,1 ; |
005A2490 |. E8 1300EEFF |CALL gdbnt.004824A8 ; \gdbnt.004824A8
005A2495 |. EB 6F |JMP SHORT gdbnt.005A2506
005A2497 |> 6A 67 |PUSH 67
005A2499 |. 8D55 C8 |LEA EDX,DWORD PTR SS:[EBP-38]
005A249C |. A1 9CBF6700 |MOV EAX,DWORD PTR DS:[67BF9C]
005A24A1 |. E8 12F7FFFF |CALL gdbnt.005A1BB8
005A24A6 |. 8B45 C8 |MOV EAX,DWORD PTR SS:[EBP-38]
005A24A9 |. 50 |PUSH EAX
005A24AA |. 8D55 C4 |LEA EDX,DWORD PTR SS:[EBP-3C]
005A24AD |. B8 3C1A5A00 |MOV EAX,gdbnt.005A1A3C
005A24B2 |. E8 A149E6FF |CALL gdbnt.00406E58
005A24B7 |. 8B45 C4 |MOV EAX,DWORD PTR SS:[EBP-3C]
005A24BA |. 8D4D CC |LEA ECX,DWORD PTR SS:[EBP-34]
005A24BD |. 5A |POP EDX
005A24BE |. E8 8DA3F0FF |CALL gdbnt.004AC850
005A24C3 |. 8B45 CC |MOV EAX,DWORD PTR SS:[EBP-34] ; |
005A24C6 |. 66:8B0D 6C255>|MOV CX,WORD PTR DS:[5A256C] ; |
005A24CD |. B2 01 |MOV DL,1 ; |
005A24CF |. E8 D4FFEDFF |CALL gdbnt.004824A8 ; \gdbnt.004824A8
Esto es la llamada, “zona caliente”. Bueno, a estas alturas el programa esta como una mujer desnuda, esperando que la desvirgemos; llegados a este punto poco hay que decir.
005A2430 |. E8 6FFBFFFF |CALL gdbnt.005A1FA4
005A2447 |. E8 5CF9FFFF |CALL gdbnt.005A1DA8
Estas son las llamadas a las dos funciones principales de chequeo. Con hacer un MOV EAX,01 en la entrada de la función, lo tenemos listo.

Bueno, ahora solo queda que algún valiente trace el código y escriba un keygen, o que alguien cree un loader para el programa.
4) Despedida
Este escrito pretende demostrar que no hay que ofuscarse al encontrar un problema, hay que buscar soluciones alternativas por nosotros mismos. Un abrazo a todos y no olvideis buscar el ZEN CRACKING!