Log in

View Full Version : CRypkey Studie for Newbies Peoples


glasha
April 25th, 2002, 12:12
This is a new thread to help a newbies people , but dont with crack request, need learn about this to understand

glasha
April 25th, 2002, 12:22
Contribuit with this project ...... ea


Crypkey is a protection from kenonic software, calagary canada, is easy change a byte to make who function any aplicattion but is more correcltly learn how function, first part of my study

push dword ptr [ebx]
call kernel32!GetProcAddress
call eax Llama a la API GetVersion
test eax, 80000000 Prueba la version de Windows
jz 004E68EB win9x no salta
pop ebx
push ebx
sub ebx, 00000BC9
push ebx puntero al nombre de cryp95d.dll
add ebx, 00000B8D
call [ebx] llama a la api LoadLibrary para cargar
cryp95d.dll
//////////////////////////////////////////////////
jz 004E69C4
pop ebx
push ebx
sub ebx, 56
push ebx Puntero al nombre de cki32f.dll
add ebx, 1A
call [ebx] llamada a la API LoadLibrary para cargar cki32f.dll

/////////////////////////////////////////////////////////////////


push ebx
mov edx, ebx
sub ebx, 0000283E
mov ecx, [ebx]
sub edx, ecx
push edx
sub ebx, FFFFD890
push dword ptr [ebx]
sub ebx, 00002770
push ebx
add ebx, 000027CF
push dword ptr [ebx]
call eax ( generally Get_authorization)

/////////////////////////////////////////////////////////////////



call ecx ; llamar dentro del cki32f.dll para desencriptar el exe
pop ebx ; delta offset
mov eax, ebx
sub ebx, 0000283E ; ebx = offset en el loader con un Valor Mágico
mov ecx, [ebx] ; ecx = Valor Mágico
sub eax, ecx ; delta offset - Valor Mágico= Punto de Entrada Original
jmp eax (OEP)

//////////////////////////////////////////////////////////



push ebp
mov ebp, esp
add esp, -0C
xor eax, eax
mov [ebp-04], eax [ebp-04] = SubSubMagic = al principio 0
mov edx, [ebp+08] [ebp+08] = inicio del buffer (ve la foto abajo)
xor ecx, ecx
mov cl, [edx] cl = 1er byte del buffer (ex. En la gráfica D6)
add [ebp-04], ecx SubSubMagic = SubSubMagic + 1er byte
inc dword ptr [ebp+08] inc puntero en el buffer para el siguiente byte
shl dword ptr [ebp-04],08 cambia los 4 bytes de SubSubMagic en la izquierda de 1 byte
mov eax, [ebp+08] eax = puntero en el buffer
xor edx, edx
mov dl, [eax] dl = 2do byte del buffer
add [ebp-04], edx SubSubMagic = SubSubMagic + 2do byte
inc dword ptr [ebp+08] inc puntero en el buffer para el siguiente byte
shl dword ptr [ebp-04],08 cambia los 4 byte de SubSubMagic en la izquierda de 1 byte
mov ecx, [ebp+08] ecx = puntero en el buffer
xor eax, eax
mov al, [ecx] al = 3er byte del buffer
add [ebp-04], eax SubSubMagic = SubSubMagic + 3er byte
inc dword ptr [ebp+08] inc puntero en el buffer para el siguiente byte
shl dword ptr [ebp-04],08 cambia los 4 bytes de SubSubMagic en la izquierda de 1 byte
mov edx, [ebp+08] edx = puntero en el buffer
xor ecx, ecx
mov cl, [edx] al = 4to byte del buffer
add [ebp-04], ecx SubSubMagic = SubSubMagic + 4to byte
inc dword ptr [ebp+08] inc puntero en el buffer para el siguiente byte
mov eax, [ebp+0C] eax = 202h (# de bytes lee + 2 bytes SubMagic)
add eax, -2 eax = 200h # de bytes leídos
mov [ebp-0C], eax [ebp-0C] = contador = 200h bytes para procesar
cmp dword ptr [ebp-0C],00 contador = 0 ?? todos los bytes en el buffer procesados ?
jz 00D679E9 sí saltar
xor edx, edx
mov [ebp-08], edx [ebp-08] = contador2 = 0 en el inicio
test byte ptr [ebp-01],80
jz 00D679C1
shl dword ptr [ebp-04],1 cambia 1 SubSubMagic
xor dword ptr [ebp-8],80050000
jmp 00d679C4
shl dword ptr [ebp-04],1
inc dword ptr [ebp-08] inc contador2
cmp dword ptr [ebp-08],7 procesado el SubMagicMagic 7 veces??
jbe 00D679AF aún no, salta
cmp dword ptr [ebp-0C],02 procesados los 200h bytes en buffer ??
jbe 00D679E0 sí, salta
mov ecx, [ebp+08] ecx = puntero en el buffer
xor eax, eax
mov al, [ecx] al = n bytes en el buffer
add [ebp-04], eax SubSubMagic = SubSubMagic + n bytes
inc dword ptr [ebp+08] inc puntero en el buffer para los siguientes n bytes
dec dword ptr [ebp-0C] dec contador # bytes en buffer a procesar
cmp dword ptr [ebp-0C],00 contador = 0 ?? todos los bytes en buffer procesados??
jnz 00D679AA aún no, salta
mov eax, [ebp-04] eax = SubSubMagic = SubMagic
shr eax, 10
mov esp, ebp
pop ebp
ret

La primera parte de esta función define el valor SubSubMagic (4 bytes). Es simplemente tomar los primeros 4 bytes en el buffer y copiarlos en [ebp-04]…la instrucción shl…permite concatenar los 4 bytes…No olvides que los primeros 2 bytes del buffer son el SubMagic del call previo….de cualquier forma, aquí está como queda el SubSubMagic después de esta primera parte





im wait to all people contribuit to study Crypkey Sdk


Glasha

peterg70
April 27th, 2002, 14:39
glasha

this isn't a personal attack on you BUT

Typically most stuff is posted in english also we don't tend to put sections of code.

Rather a simple explaination of what you believe are the steps is sufficient.

Crapkey is not a hard protection to bypass although looking at their method of encryption is something to laugh at. (the amount of collision in their keys)

Anyway hope you have luck with your future.

I'm just waiting for the new version "6.0" of the crapkey (notice I only changed one letter in their brand to get my version )

PS their is a real nice discussion document done by maverick regarding crapkey encryption

Peterg70