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
Powered by vBulletin® Version 4.2.2 Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.