alguien tubo mas avances? yo mucho no pude tocar pero esta noche me metoi a ver que saco!, con respecto al usuario anterior he viste osos mensajes pero omo tu dices solamente cambia la leyende y eso no nos sirve! jajaja
pero yo creo que no es imposible crackearlo, para mi lo que hace cuando ingresan la serial bien es agregar un registro (en el de windows por supuesto) y debe generar algun archivo.
de ultima por el tema de la comparacion del crc que debe tener! y mas que seguro que lo tiene!!! taria bueno averiguar el serial real, entonces no tenemos que modificar nada del codigo aunque este varie de pc en pc pero estaria bueno hacer tipo un keygen. aunque se nos hace dificil encontrar el serial!!!
una pregunta alguien sabe como ver de donde empieza a ejecutar inmediatamente despues de hace click en el boton de aceptar de la ventana del serial?
bamos que no nos puede ganar esta porqueria!!!
Hola nutriax:
Te voy a dar mi opinión, despues de estar mirandolo en los ratos libres que tengo.
1.- La protección considero que está muy bien elaborada contra los curiosos como nosotros.Para mí, no es una pavada.Claro está que a mí, me queda mucho por aprender.Los caracteres esos que vemos, como por ejemplo (hay varios):
"BD517269E31504141FED089FDD1734"
creo que los usa para desenmascarar o descifrar los datos que tiene del usuario y máquina, almacenados en:
C:\Documents and Settings\All Users\Datos de programa\HB++
Sobretodo llama la atención un tal license.dat
2.-El anti-traza que tiene para evitar monitorizarlo lo vigila con la API:
kernel32.GetTickCount
3.-Lo del CRC yo creo que no es esa la comprobación que hace, sinó una propia para vigilar la integridad de su exe, que tenemos en el HD.Está duro de pelar porque lo hace a través de un hilo que crea y que el ejecutable consulta (supongo que para eso y para otras cosas más).En todo caso vi que cambiando un condicional se soluciona el tema, pero sería a través de un injerto y cuando haya creado la sección que contiene el hilo asesino.Por cierto ese código asesino lo va colocando después de reservar un trozo de memoria.La reserva la hace aquí:
00445A60 |. FF15 10354700 CALL DWORD PTR DS:[<&KERNEL32.VirtualAlloc>]
en la pila podemos ver los detalles:
0012FC38 00000000 |Address = NULL
0012FC3C 00000F24 |Size = F24 (3876.)
0012FC40 00001000 |AllocationType = MEM_COMMIT
0012FC44 00000040 \Protect = PAGE_EXECUTE_READWRITE
A la vuelta, en el registro EAX, tenemos la dirección a partir de la cual, posteriormente, meterá su código espía.Este valor, que devuelve en EAX, es variable (creo que usa dos direcciones indistintamente alternándolas cada dos o tres ejecuciones) y por supuesto, en cada máquina será diferente.
4.-El mensaje del chico malo nos lo muestra a través de la API MessageBoxW y lo ejecuta aquí:
0042E5A1 . FF15 38374700 CALL DWORD PTR DS[<&USER32.MessageBoxW>]
en ese momento en la pila vemos:
0012F878 000603D8 |hOwner = 000603D8 ('Handheld Basic ++',class='HbMain')
0012F87C 00D33A40 |Text = "The key you entered is invalid."
0012F880 00D37640 |Title = "Handheld Basic ++"
0012F884 00000010 \Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
Como puedes ver no está en las secciones propias del ejecutable y por eso no aparece en las strings referenced.Por lo tanto debemos ir hacia atrás y ver cuando decide ponerlo.
Me gusta y por eso seguiré informando de mis avances y por supuesto leyendo los vuestros también.
Suerte,
Mintaka