| 
	
		|  Autor | Tema: Crackme1 por p[i].  (Leído 7,198 veces) |  
	| 
			| 
					
						| P[i] 
								 
								
								 Desconectado 
								Mensajes: 472
								
								
								
								
								
								   | 
 
   Aki os dejo mi primer crackme, esta en modo consola porke no tuve tiempo de poner ventanita y todo eso. Creo que es facil de resolver pero bueno.    Crackme1 por p-> http://es.geocities.com/serxoker/Crackme1.zip Lo interesante seria sacar el serial no parchearlo, pero bueno ahi keda para uso y disfrute.
 Saludos.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| x4uth 
								
								 Desconectado 
								Mensajes: 88
								
								
								
								
								
								   | 
 
un serial valido aFMDULCJKBIPAHOPGN |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  | 
			| 
					
						| P[i] 
								 
								
								 Desconectado 
								Mensajes: 472
								
								
								
								
								
								   | 
 
Mu wapo tio, con generador y todo. Bueno la proxima vez me currare mas el crackme pa que sea mas dificil.
 Chao.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| frankener1986 
								
								 Desconectado 
								Mensajes: 136
								
								 
								Reversing the world
								
								
								
								
								
								   | 
 
xD a ver si te animas y dejas el source de este keygen xD... m vendria dpm para aprender la verdad... xk intento hacer mios yo pero no se que errores haog k nunca me funcionan xD, solo si kieres eee ^^
 saludos!
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| x4uth 
								
								 Desconectado 
								Mensajes: 88
								
								
								
								
								
								   | 
 
La verdad no me e complciado mucho la vida, esta en mfc para terminar rapido y practicamente imita el codigo del CrackMEal darle al boton se ejecuta esta funcion
 
 void Cpickme01Dlg::OnBnClickedGenerate()
 {
 char key[21];
 key[0]=rand()%25+'A'; //toda la clave depende del primer caracter asi que si queremos uno aleatorio debemos empezar por generar la primera letra aleatoria (como el resto del serial queda en mayusculas ahi genere una mayuscula para que quede mas bonito xD)
 int x;
 for(x=1;x<19;x++) //el CrackMe hace un loop que es mas o menos este solo que despues de llamar a la funcion que efectua operaciones con el caracter comprueba que el numero que le sigue es = que el que devolvio dicha funcion, asi que yo se lo asigno al siguente
 {
 DATA=(key[0]+x);
 getnext();  //la funcion que hace las operaciones la e copiado textualmente ya que hace exactamente lo que yo quiero
 key[ x ]=DATA;
 }
 key[18]=0; //aqui ya temeos la key lista, fixeamos la string ya solo queda mostrarla..
 ver.Format("%s",key);
 UpdateData(false);
 
 }
 
 
 void getnext() {
 _asm{
 
 MOV EDX,DATA
 MOV EAX,EDX
 SHL EAX,06h
 ADD EAX,EDX
 MOV DATA,EAX
 MOV ECX,DATA
 MOV EAX,0B60B60B7h
 IMUL ECX
 LEA EAX,DWORD PTR DS:[EDX+ECX]
 MOV EDX,EAX
 SAR EDX,06h
 MOV EAX,ECX
 SAR EAX,01Fh
 SUB EDX,EAX
 MOV EAX,EDX
 IMUL EAX,EAX,05Ah
 SUB ECX,EAX
 MOV EAX,ECX
 MOV DATA,EAX
 L021:
 CMP DATA,40h
 JLE L024
 JMP L026
 L024:
 ADD DATA,10h
 JMP L021
 L026:
 MOV EAX,DATA
 }
 
 }
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| frankener1986 
								
								 Desconectado 
								Mensajes: 136
								
								 
								Reversing the world
								
								
								
								
								
								   | 
 
oye.. como sabes donde empezar a copiar el asm..? ^^ yos iempre m ekivoko ^^ |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| x4uth 
								
								 Desconectado 
								Mensajes: 88
								
								
								
								
								
								   | 
 
solo copias ASM cuando es una parte que vas a usar en tu programa, para eso tienes que tener claro que es lo que hace cada cosa y si  tienes claro que es cada cosa entonces no deberias tener problemas para saber que coger...
 en este caso e copiado el CALL completo solo e quirtado
 PUSH EBP  // guarda la posicion del stack
 ...
 ...
 ...
 POP EBP // recupera la posion del stack
 RET //vuelve del call
 
 y las e quitado xk se que mi compilador de C++ agrega esa parte auntomaticamente en todos los CALL y si esta doble puede dar problemas logicamente...
 |  
						| 
								|  |  
								| « Última modificación: 12 Julio 2006, 18:09 pm por x4uth » |  En línea | 
 
 |  |  |  | 
			| 
					
						| frankener1986 
								
								 Desconectado 
								Mensajes: 136
								
								 
								Reversing the world
								
								
								
								
								
								   | 
 
oks.. en realidad lo que keria preguntar era que instrucciones se usan para guardar valores introducidos... es decir, en que "variable" |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| x4uth 
								
								 Desconectado 
								Mensajes: 88
								
								
								
								
								
								   | 
 
pos ahi ya depende de lo que vayas a guardar, en este caso e usado la variable DATA que lo que hace es almacenar el contenido de los registros que son DWORD asi que DATA tambien sera DWORD |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
   |