Hola, soy nuevo en el foro pero llevo bastante tiempo consultandolo y esta buenisimo... :D
mas de una ves me saco del agua...
pero ahora estoy tratando de crackear un programa (logicamente con fienes academicos)... el programa es el **** *.** y me tope que cuando lo ponia en el olludbg (el .exe) se abria y se me cerraba, por lo cual me puse a investigar y lei que es por la proteciones que tiene que me detecta el debuger o el ollydbg.
paso siguiente me instale los siguientes plugins...
HideDebugger v1.23f
IsDebug&ExtraHide
HideDBG
recomendados por pERICOTE
y puse a andar el exe en el ollydbg y vuolaaaa!!! no se cierra mas.... :o ;-)
dije bueno un problema menos... ahora seguimos a ver donde esta el cartelito que me dice "The key is ...." (segui participando!!!) cada ves que ingreso el serial.
pero pare la con f12 la corrida del programa y se paro en cualquier lado, por lo que asocio que o bien debe tener alguna proteccion o debe llamar a una libreria para comprobar el serial... :¬¬ hice los mil y un intentos de encontrar el fuckin cartelito pero no hay forma... tambien probe con "search for" -> "all text references" pero nada ni aparece.
tambien busque sobre los programas para determinar que tipo de proteccion tiene pero no encontre... como se sabe si un programa tiene o no proteccion??? alguien me ayuda porque soy novato y con muchas ganas de aprender!!!
desde ya muchas gracias!!!
tambien me olvide de decir que lo pase por el PEiD y me dice Nothing found * (se que el programa esta echo en visual c++).
Aunque este solo como loco malo voy a postear los avances!!! :laugh:
pude parar en donde me aparece el mensaje y es mas hasta pude cambiar que me aparezca el mensaje bueno cuando la clave es mala!!! pero no puedo cambiar el maldito salto que compara la real con la ingresada (por que no lo encuentro!!!)
dejo una foto de donde aparece el mensaje.
(http://img211.imageshack.us/img211/1425/saltomensajemalo.png)
Imagenhttp://img211.imageshack.us/img211/1425/saltomensajemalo.png (http://img211.imageshack.us/img211/1425/saltomensajemalo.png)
Parece interesante el tipo de proteccion que refieres. Realmente me gustaria probarlo con fines exclusivamente educacionales. A ver si nos das una direccion de donde bajarlo.
Hola oberon!!! aca te dejo el link http://www.handheld-basic.com/dl_try.php (http://www.handheld-basic.com/dl_try.php) de ahi bajas la ultima version que es la que tengo yo!.
te comento que avanze bastante!, como dije antes 1~ hay que poner todas las protecciones para que no reconozca el debuger, 2~ no se puede buscar el mensaje que nos dice que la clave es erronea, porque no guarda el string como constante!, intente ver como lo guarda pero no hay forma, no entiendo de donde lo saca a ese string, 3~ el numero de serie que genera lo genera para la maquina propia por lo que se fija en un millon de cosas como micro, sistema operativo, user, etc, etc, etc. 4~ lo pase por el PEiD y me dice que es desconocido, no se por que...
5~ llege a conseguir por donde mas o menos empieza a realizar los calculos para comprobar el serial, esto lo logre pensando que en algun momento que tengo lebantado el programa este lee el serial que genero de la memoria, por lo que lo busque en que parte estaba de la memoria y puse un bp para cuando accede a esa parte de la memoria, lo corri y vualaaaa!!!! encontre unas direcciones interesantes, estas empiezan a corroborar si numero de serie generado contiene caracteres legales, y hace cosas raras!, lo que no pude encontrar es en dodne mete y que proceso le realiza al serial que meti yo!! ya encontrando eso me faltaria serguir algunos pasos mas y despues negar el salto, pero no lo puedo sacar....
otra cosa veo que a las direcciones es como que las genera para realizar saltos!, esto me mato!!!
si les interesa aca les paso la direccion donde empieza a jugar con el serial generado!!!!
0045a6d8
espero que lo podamos descular a esto que esta interesante!!! :¬¬
Perdon me confundi la direccion que puse antes es de cuando lee la memoria cuando abre la ventana pero la direccion por la que pasa cuando hacemos click en aceptar es 0044560b
Este programa lo necesitas para ti o es para practicar???
Lo mas sencillo, provaste cambiar el salto en 0042E54E para que no salte???, creo que si lo cambias probablemente quede registrado.
Ahora si lo que quieres es sacar un serial valido analiza la rutina que trabaja con el serial intruducido, no creo que sea demasiado complej.
Hola, y gracias por ayudar...
1- Es para aprender, soy bastante novato para esto...
2- si lo cambie ese salto, pero si te fijas unicamente cambia el mensaje pero no lo registra, si uno sale y reinicia el programa no pasa nada (aparece la ventana que dice Copia de evaluacion) mientras que tendria que decir algo asi como version profesional o algo por el estilo...
por eso pido ayuda porque estoy desconcertado y no se como segui, porque llegue a ese punto.
ahora otra observacion que vi es que hay dos cadenas unicode que son constante y supongo que es a lo que se tiene que llegar luegos de procesar el serial ingresado, estas cadenas son: "4jaei508jtbunah414qub8166at" y "1024628340621757567" y si cambio el serial introducido no cambian estas cadenas... eso me parece muy raro, salvo que procese despues el serial ingresado y lo compare con alguna de estas dos.
ahora voy a hacer los pasos inversos para ver de donde modifica la direccion de memoria que despues compara en el salto.
Alguien sabe si se puede poner un breackpoint en una determinada direccion de pila? cuando se escribe o lee?
gracias a todos por intentar ayudar.
Para eso estamos para ayudar.
Ok si no se registro es solo informativo los mensajes, para poner breakpoints en pila o memoria haces click derecho en la pociion de memoria, y le das a Hardware Breackpoint, y ahi tienes on write, acces, o execution.
Las cadenas constantes muchas veces con trampas para crackers, si pones alguna comos erial, el programa se traba aun mas.
hola KJD, si exactamente eso es lo que intentaba decir que los mensajes son solo informativo, y te comento que en la memoria poner el breakponit si anda (es mas asi es como lo hacia) pero en la pila no me da la opcion de bp.
que me aconsejas que haga para encontrar el vendito salto?
Con respecto a la pila, pudes hacer click derecgo, follow in dump y provar si puedes poner braeakpoint ahi.
Me baje el programa, no me aguante jejej, y le es toy echando un vistazo.....
jajajajaj viste que atrapante este mundo!!!! ;D ;D ;D bueno vos lo sabes mas que yo!!!! ;-) ;-)
en un rato lo pruebo como decis, pero estuve tratando de analizar lo que hace con el serial que ingreso y pone como un millon de ciclos al pedo para distraer y le hace como mil tratamientos a la cadena tambien para distraer al cracker, este programita se me hace que esta bastante bien echito! no digo que sea imposible pero me parece que para alguien que tenga experiencia tambien lo va a hacer renegar un buen rato! :-\
publica avances que tengas y logicamente con deducciones ya que quiero aprender!!
Pues avancecs tengo, todas los ASCII del tipo "64083C533F18F77F65A383C4F12CAAB5C0F0C8" no son mas que funciones codificadas. es mas si vas a 004420D0 veras como las decodifica. Una cosa mas, dime donde esta la rutina de manejo del serial, asi le echo un vistazo.
en esta direccion 00445694 empieza a utilizar el serial trucho que lo pone en los registros para procesarlo, en el registro EBP y de ahi en adelante lo procesa varias veces como dije antes.
hya alguien que tiene avances?, yo lo miro y lo miro pero no hay forma!!!! :( :-(
Yo lo estuve mirando, si cambias este salto 00445C6F, cualquieer serial que metaas lo tratara como valido y lo escribirra en el archivo de configuracion del programa. Pero despues lo vuelve a comprobar al inicio del programa.
Igualmente si alguien con mas experiencia le echa un vistazo seria mejor.
Hola. Tambien me sumo!! a ver que logramos ;-)
otra pequeña aportación, ;D
si cuando llegamos a la dirección
004192B6 . A1 F8E44900 mov eax,ds:[49E4F8]
tenemos en
[0049E4F8]=00000000
y si lo cambiamos a
[0049E4F8]=00000010
un par de instrucciones mas abajo eax en vez de tener el valor 28A1, que es = "Evaluation version", tendremos eax= 28A2, que es igual a "Enterprise Edition"
si ponemos en [0049E4F8]=00000000, eax=28A1, sera igual a "Evaluation version".
si ponemos en [0049E4F8]=00000010, eax=28A2, sera igual a "Enterprise Edition".
si ponemos en [0049E4F8]=00000020, eax=28A3, sera igual a "Profesional Edition".
si ponemos en [0049E4F8]=00000030, eax=28A4, sera igual a "Standard Edition".
si ponemos en [0049E4F8]=00000040, eax=28A5, sera igual a "Educational Edition".
bueno esto sirve solo para el letrero de Acerca de... :o
pues luego al compilar un proyecto sigue apareciendo la información de *** Evaluation version ***, >:(
Tambien el programa tiene comprobacion de CRC o eso creo pues si cambio un par de bytes en el programa este no se ejecuta. :-(
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!!! :rolleyes: :rolleyes:
Cuando instalas el peorgrama, este crea un archivo en C:\Datos de programa\HB++ (win vista) y dentro hay un archivo ini en donde guarda el serial y los datos de compania etc. No creo clave en el registro y cada vez que inicias el programa, extrae la clave de ese archivo y la verifica si es correcta o no.
Para lo que preguntas, pon un breakpont en 00445694 y cuando le das al boton para registrar parara aqui, y luegos empiezas a tracear hacia atraz para ver de donde es llamada la rutina.
Cita de: nutriax en 31 Marzo 2009, 02:51 AM
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!!! :rolleyes: :rolleyes:
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 :silbar:
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
Eso que si que es un buen analisis, te comento que yo tambien vi las direcciones para que aparezcan los otros mensajes, pero tal como lo decis vos, por mas que salen unicamente modificamos el cartelito, pero cuando volvemos a iniciar nos muestra el cartel viejo, yo diria que seria mejor tratar de hacer un keygen, para lo cual tenemos que analizar que pasa con el serial, digo del keygen porque me parece que esta muy pero muy bien protegido este programita y para crackearlo hay que tocar las 1001 trampitas que tiene... yo tampoco nunca trate de hacer tipo keygen de ningun programa, por lo que tambien por ese lado voy a aprender muy mucho!.
ustedes que dicen seguimos con el crack o buscamos de hacer el keygen? :¬¬
Buenas
alguien vio esta funcion? ::)
0041E4B0 $ 81EC 04020000 SUB ESP,204
que tiene en su cuerpo
0041E561 . BE 00814700 MOV ESI,hb.00478100 ; UNICODE ", Evaluation"
...
0041E5E4 . BE C8804700 MOV ESI,hb.004780C8 ; UNICODE ", Professional"
...
0041E611 . BE AC804700 MOV ESI,hb.004780AC ; UNICODE ", Enterprise"
les cuento q todavia no logro hacer andar el olly al 100% con este ejecutable,
ademas estoy buscando el punto de entrada de lectura del archivo C:\Documents and Settings\All Users\Datos de programa\HB++\license.dat
creo que atacando por este lado sera mas facil.
;D
Saludos
"Cuida tu cerebro y tu cerebro cuidará de tí."
BD
Les cuento que me resigne por el crack del programa... Me rindo. :-(
Pero descubri que como el IDE de Hb es casi 100% funcional si estar registrado, entoces, me dije que mejor seria atacar los prc generados con el que en realidad son los que llevan una nag de version de evaluacion
Y lo Logre, encontre cuando es llamada y como parece estar cifrado esa parte (y es variable en cada compilacion) cree un programa para parchearlo. les dejo el link
del mismo
http://www.megaupload.com/?d=L86PQZJM
::)
Cabe aclarar que me base en un procedimiento similar para una versión anterior que esta en http://www.geocities.com/palmspanishtutor/indexespanol.htm
Saludos ;-)
Varroas
muy buen aporte!!! el unico problemita es que no se ven las fotos! pero no se preocupen que la dire para que se vean las fotos es el sisguiente:
http://palmspanishtutor.iespana.es/Capitulo_3/Parchar_programas_HB_1_05_973_1309/Parchar_programas_HB_1_05_973_1309.htm (http://palmspanishtutor.iespana.es/Capitulo_3/Parchar_programas_HB_1_05_973_1309/Parchar_programas_HB_1_05_973_1309.htm)
ahi esta completo y con fotitos... este enlace me lo proporciono el autor del mismo.
Muy bueno eso de atacar a la aplicacion... jajajaja ese es el talon de aquiles... ;-)
y por ultimo no pusiste la pass del archivo de megaupload... pero como no podia ser de otra forma la saque! JAAJJAJAJAJAJAJ ;D ;D ;D te mataste poniendo pass.... ajajjaja :silbar:
Nutriax. Buenas
Perdon, se me olvido el pass del rar, es "varroas", sin comillas. Avisen si necesitan el codigo fuente. Esta en VB6.
Saludos
;D Si lo pude abrir antes de que dijeras el pass... es mas creia que nos queria poner en prueba ;D :laugh: para ver si tan cracker que somos podiamos descubrir la pass... ::) ;D