Título: programita Publicado por: ana6 en 22 Mayo 2010, 06:45 am Hola a tod@s
soy nueva en esto y me gustaria si es posible me ayudarias, la cosa es que quiero aprender en realizar craks y no se como tengo un programita es http://www.megaupload.com/?d=QARZMMLB (http://www.megaupload.com/?d=QARZMMLB) a los 10 minutos de funcionamiento se para y hay que volver a reiniciar con el OllyDBG lo e miraro y cuando ago run no funciona. Con el reshacerk no encuernto la ventana no se por donde anda. tambien e probado el el IDA Pro y no se como funciona. gracias espero me podais ayudar. Título: Re: programita Publicado por: LSL en 22 Mayo 2010, 11:50 am pues a mi si me corre sin problemas con el ollydbg,
prueba con el ollydbg limpio de plugins http://www.ollydbg.de/odbg110.zip Título: Re: programita Publicado por: ana6 en 22 Mayo 2010, 14:31 pm hola LSL gracias por responder.
te comento quitadon el piling y no funciona cuando le doy a run en le parte derecha abaja sale amarillo y pone paused y en la parte inferior acssed violation. no se como es este pero soy novata en todo esto y aun no se como se realiza el crak este seria mi primer crak. chao ana Título: Re: programita Publicado por: ana6 en 22 Mayo 2010, 17:19 pm hola, alguien me puede ayudar a crakear este programita o guiarme como lo puedo hacer.
gracias. Título: Re: programita Publicado por: LSL en 22 Mayo 2010, 17:45 pm puedes continuar con control+F9, pero
configura el ollydbg para que ignore el rango de excepciones desde 00000000 hasta FFFFFFFF (http://a.yfrog.com/img294/5871/imagen1ks.png) Título: Re: programita Publicado por: ana6 en 22 Mayo 2010, 18:03 pm GRACIAS AHORA SI QUE CORRE LUEGO QUE ES LO QUE TENGO QUE HACER.
lode e dad a run y luego como se bloquea a los 7 minutos e esperado que se pare y salga el mensaje de tengo que registar que me ponga en contacto para registar. Título: Re: programita Publicado por: LSL en 22 Mayo 2010, 18:18 pm ¿que limitaciones tiene la aplicación?
¿puedes registrarla? ¿cual el el mensaje de que se ha agotado el tiempo de uso? si te da algun texto, buscalo en las referencias de texto, le pones un BreakPoint BP con F2, y si vas al lugar donde se encuentra la instruccion que toma dicho texto, mi los call o saltos que vea antes de dicho lugar. Tambien si la limitacion es de tiempo, puedes ponerle el BP en las llamadas a la api SetTimer, pulsas Control+N, escribes SetTimer, cuando estes encima, pulsas Intro, y te dara todas las call a dicha api, le pones un bp a cada uno con F2 y esperas a ver cuando cae en alguna de ella, para localizar la encargada de dar por finalizado el programa. Una vez localizada es cuestion de ingeniartelas para saltar dicha llamada. Título: Re: programita Publicado por: ana6 en 22 Mayo 2010, 19:00 pm las limitaciones que tiene es que lo abres le das al play y funciona durante 7 minutos bien, luego sale el mensaje:
estas utilizando un dispositivo bluetooth sin registar, favor pongase en contacto con nosotros para su registo. si cierras el programa y lo vuelves abrir y le das al play vuelve a funcionar 7 minutos y asi sucesivamente. ana Título: Re: programita Publicado por: LSL en 22 Mayo 2010, 19:22 pm deja el programa en el idioma ingles, y el texto del mensaje buscalo en click derecho, Search for -> all referenced text strings, y luego cuando estes en el texto, pulsas Intro para caer en la llamada, cuestión de ir hacia atras en el proceso que llega hasta el, para saltarlo, y si encuentras el timer que lo provoca le cambias el valor del tiempo.
Título: Re: programita Publicado por: MCKSys Argentina en 22 Mayo 2010, 21:27 pm Hola!
Si no les molesta, le voy a pegar una miradita.... Título: Re: programita Publicado por: yako-_- en 23 Mayo 2010, 03:58 am Buenas!!
Les cuento.. lo que conseguí hacer hasta ahora fue esto (http://img188.imageshack.us/img188/2034/73315110.jpg) (http://img7.imageshack.us/img7/456/94472621.jpg) (http://img99.imageshack.us/img99/6870/16334104.jpg) Voy por buen o mar camino?? seria mas correcto entrar directamente a las entradas de registro o ver que tipo de reg pide el programa. Un saludo Título: Re: programita Publicado por: LSL en 23 Mayo 2010, 06:47 am yako, como ves este programa a simple vista no tiene mucha complicacion de conseguir, pero nuestro mayor problema es el no disponer de un dispositivo Bluetooth conectado (el programa lo llama "dongle"), ya que el serial bueno lo obtiene a partir de la mac de la dongle, por lo que por ese camino no tiene interés que sigamos por nuestra parte, por eso te da el error de direcciones de memoria.
veo que tienes habilitado el boton para entrar la key, (buen trabajo pues a veces no es facil de conseguir), yo he utilizado un camino a veces más rápido ya que el objetivo no es habilitar el botón, porque si tuviesemos la dongle con la mac el botón estaria habilitado. Lo que yo he hecho es utilizar el otró boton existente en el formulario que si está siempre habilitado, cambiandole la dirección de ejecución al pulsar, a la que le corresponderia al deshabilitado, y con esto obtenemos el resultado que queremos, en este caso seria intercambiar la dirección de ejecucion de la función "acRefreshExecute" que le corresponde al botón de refrescar, por la de la función "acAddExecute" que le correponde al botón de Entrar Key. (funciones que previamente hemos visto aprovechandonos de la información que nos da los editores de recursos): Código: 00657E52 . /44806500 DD TextBlue.00658044 ; Entry address como ana6 si tiene dongle, puede mirar las string referenced, que las hay muy intuitivas, por ejemplo estas Código: 005DE500 /$ 53 PUSH EBX a ver que se guisa por ahí. en el siguiente codigo, tenemos un TEST AL,AL que dependiendo del resultado del flag nos lleva a Licensed o Not Licensed Código: 0065F175 |. 84C0 |TEST AL,AL p.d. seguro que MCKSys, ya lo tiene resuelto, sin dongle ni na. Título: Re: programita Publicado por: LSL en 23 Mayo 2010, 06:56 am ana6 puedes poner un BP en la dirección 00658389 (que es donde vuelve despues de coger el serail), meter una key de 32 caracteres alfanumericos (en mis pruebas en algun momento comparó el tamaño con 32), pulsar intro y caerá en el BP, a partir de ahí sigue traceando con F7 para entrar en las primeras call y despues sigues con F8 hasta el Ret, luego sigues con F7 para entrar en la siguiente call, y sigues de nuevo con F8 hasta el Ret de nuevo, y asi sucesivamente, a ver si por alguna parte le sale el serial bueno para comparar con el malo introducido.
Título: Re: programita Publicado por: yako-_- en 23 Mayo 2010, 07:17 am Bravo LSL !!!
Yo también e cambiado y probado como hiciste tu a poner en el botón "acRefreshExecute" "acAddExecute" pero introduzco la clave y me tira el mismo error. Por lo que te entiendo es por que no tengo el dispositivo, o por que lo compile con el propio editor de recursos a ti te tira el error? lo de las strins también me fijé, pero me perdí por los call´s aun estoy muy verde comparado con vosotros. A la conclusión que no llegue era que hacia falta el Bluetooth para poder ingresar la licencia, Creí que el registro se hacia a través de un web osea que lo de la MAC tenia algo que ver con un tipo de registro on-line (aun estoy muy verde). LSL solo una pregunta. ¿Como llegaste al TEST AL,AL estuve buscado en los CALL pero no llego ahí podrías decirme como as hecho? "Editado: ya llegue con Ctrl +R encima del "PUSH 5DE500" me equivoco?" Gracias por el aporte, buen trabajo!! Título: Re: programita Publicado por: ana6 en 23 Mayo 2010, 09:14 am Hola, bueno cuando le pones un bluetooth como MAC coje 111111111111 eso creo que lo coje para la demo por defecto y dura 7 Minutos. igual seria mejor el poder realizar como registro como este MAC ana Título: Re: programita Publicado por: LSL en 23 Mayo 2010, 11:18 am ana6, vuelve a leer mi post anterior, que te pongo instrucciones mas detalladas y corregida la dirección del BP para que pares el programa cuando coge el serial introducido, que te puse antes la del inicio del formulario.
el que te coge la MAC 111111111111, seguramente es porque no tienes un bluetooth de la marca y modelos que ellos venden con el programa, pero tracea a partir de la direccion 00658389, entrando en esas call que se ven abajo, en la forma que te he puesto en el post anterior. 00658330 $ 55 PUSH EBP 00658331 . 8BEC MOV EBP,ESP 00658333 . B9 06000000 MOV ECX,6 00658338 > 6A 00 PUSH 0 0065833A . 6A 00 PUSH 0 0065833C . 49 DEC ECX 0065833D .^ 75 F9 JNZ SHORT TextBlue.00658338 0065833F . 51 PUSH ECX 00658340 . 53 PUSH EBX 00658341 . 56 PUSH ESI 00658342 . 57 PUSH EDI 00658343 . 8BD8 MOV EBX,EAX 00658345 . 33C0 XOR EAX,EAX 00658347 . 55 PUSH EBP 00658348 . 68 96846500 PUSH TextBlue.00658496 0065834D . 64:FF30 PUSH DWORD PTR FS:[EAX] 00658350 . 64:8920 MOV DWORD PTR FS:[EAX],ESP 00658353 . 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C] 00658356 . E8 AD6FF8FF CALL TextBlue.005DF308 0065835B . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 0065835E . 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8] 00658361 . E8 F2F3DAFF CALL TextBlue.00407758 00658366 . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 00658369 . 50 PUSH EAX 0065836A . 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14] 0065836D . E8 166FF8FF CALL TextBlue.005DF288 00658372 . 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14] 00658375 . 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] 00658378 . E8 DBF3DAFF CALL TextBlue.00407758 0065837D . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] 00658380 . 8D4D FC LEA ECX,DWORD PTR SS:[EBP-4] 00658383 . 5A POP EDX 00658384 . E8 BBDDE5FF CALL TextBlue.004B6144 ; aqui muestra la ventana de registro y espera al serial 00658389 . 84C0 TEST AL,AL ; aqui ponemos el BP para parar despues de coger el serial 0065838B . 0F84 BF000000 JE TextBlue.00658450 00658391 . 8B83 DC030000 MOV EAX,DWORD PTR DS:[EBX+3DC] 00658397 . BA B0846500 MOV EDX,TextBlue.006584B0 ; UNICODE "DONGLES_MAC" 0065839C . E8 5BE1F4FF CALL TextBlue.005A64FC 006583A1 . 50 PUSH EAX 006583A2 . 8B83 98030000 MOV EAX,DWORD PTR DS:[EBX+398] 006583A8 . E8 0B6CE4FF CALL TextBlue.0049EFB8 006583AD . 8B50 20 MOV EDX,DWORD PTR DS:[EAX+20] 006583B0 . 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24] 006583B3 . E8 D807DDFF CALL TextBlue.00428B90 006583B8 . 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24] 006583BB . 58 POP EAX 006583BC . E8 BF95EDFF CALL TextBlue.00531980 006583C1 . 8B83 DC030000 MOV EAX,DWORD PTR DS:[EBX+3DC] 006583C7 . BA D4846500 MOV EDX,TextBlue.006584D4 ; UNICODE "DONGLES_KEY" 006583CC . E8 2BE1F4FF CALL TextBlue.005A64FC 006583D1 . 50 PUSH EAX 006583D2 . 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34] 006583D5 . 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] 006583D8 . E8 B307DDFF CALL TextBlue.00428B90 006583DD . 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34] 006583E0 . 58 POP EAX 006583E1 . E8 9A95EDFF CALL TextBlue.00531980 006583E6 . 33D2 XOR EDX,EDX 006583E8 . 55 PUSH EBP 006583E9 . 68 2C846500 PUSH TextBlue.0065842C 006583EE . 64:FF32 PUSH DWORD PTR FS:[EDX] 006583F1 . 64:8922 MOV DWORD PTR FS:[EDX],ESP 006583F4 . 8B83 DC030000 MOV EAX,DWORD PTR DS:[EBX+3DC] 006583FA . E8 09E1F4FF CALL TextBlue.005A6508 006583FF . 8B83 DC030000 MOV EAX,DWORD PTR DS:[EBX+3DC] 00658405 . E8 72A2EDFF CALL TextBlue.0053267C 0065840A . 8B83 98030000 MOV EAX,DWORD PTR DS:[EBX+398] 00658410 . E8 A36BE4FF CALL TextBlue.0049EFB8 00658415 . 8B40 08 MOV EAX,DWORD PTR DS:[EAX+8] 00658418 . 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] 0065841B . 33D2 XOR EDX,EDX 0065841D . 8B18 MOV EBX,DWORD PTR DS:[EAX] 0065841F . FF53 20 CALL NEAR DWORD PTR DS:[EBX+20] 00658422 . 33C0 XOR EAX,EAX 00658424 . 5A POP EDX 00658425 . 59 POP ECX 00658426 . 59 POP ECX 00658427 . 64:8910 MOV DWORD PTR FS:[EAX],EDX 0065842A . EB 24 JMP SHORT TextBlue.00658450 0065842C .^ E9 E3D5DAFF JMP TextBlue.00405A14 00658431 01 DB 01 00658432 00 DB 00 00658433 00 DB 00 00658434 00 DB 00 00658435 . DCF34000 DD TextBlue.0040F3DC 00658439 . 3D846500 DD TextBlue.0065843D 0065843D . 8B15 B8136700 MOV EDX,DWORD PTR DS:[6713B8] ; TextBlue.006772EC 00658443 . 8B12 MOV EDX,DWORD PTR DS:[EDX] 00658445 . 92 XCHG EAX,EDX 00658446 . E8 3981EAFF CALL TextBlue.00500584 0065844B . E8 F0D8DAFF CALL TextBlue.00405D40 00658450 > 33C0 XOR EAX,EAX --------------------------------------------------------------------------- P.D. para yako, a mi tambien me da el error de memoria, porque cuando llegas a 006583AD . 8B50 20 MOV EDX,DWORD PTR DS:[EAX+20] en el DS a copiar a EDX no hay una direccion de memoria valida, abajo te sale ??? esto es despues de comprobar la MAC de la dongle. Título: Re: programita Publicado por: yako-_- en 23 Mayo 2010, 23:02 pm Hola!!
Ok, bueno creo que el tema ya esta. ana6 con la información que te dio LSL prácticamente tienes el trabajo hecho. Caza el serial o invierte el salto JE por JNE una saludo!! PD: Tanks LSL Título: Re: programita Publicado por: ana6 en 24 Mayo 2010, 06:14 am HOLA.
e estado realizando por aca lo que dijo LSL y ahora cuando le doy a liciencias me sale un error de no fundado. acepto y me sale lo de antes cuando salia la MAC licencia en blanco. luego e probado con otro bluetooth que me an dejado y aparece otro mac sera que el serial es en relacion al numero segun bluetooth por que vienen cada uno con un numero?. despues de realizar esto lo pongo en marcha y cuando le doy al play me dice que no esta registrado. referante al lo que dice yako no se como se cambia de JE a JNE y supongo que es en la linea 0065838B . disculpa yako pero soy nueva en esto. ahora como tengo dos lo e probado cada uno y sin tocar el programita en la MAC aparecen los dos, pero funcionan los dos durante el tiepo de la demo no es mejor que se mirara lo del tiempo la limitacion de demo asi cuando cambias un bluetooth funcionaria siempre sin registaar y eliminar lo de los registros. ana Título: Re: programita Publicado por: yako-_- en 24 Mayo 2010, 06:53 am Hola !!
Si la dirección es 0065838B. Solo tienes que ponerte encima hacer doble click y poner JNE. Despues click derecho copy to executable etc. eso deberias saberlo ya!! XD Te recomienro que te leas los tutoriales de RAtón y despues si te sigue gustando leete a Ricardo Narvaja, asi sabes mas o menos por donde van los tiros. PD: es un consejo de otro novato Un saludo Título: Re: programita Publicado por: LSL en 24 Mayo 2010, 09:40 am todavia no esta resuelto el asunto:
el salto de la dirección 0065838B no es el salto que hay que parchear, cuando sale del formulario de registro, si pulsamos en el botón OK sale AL con el valor 1, y al comprobarlo con TEST AL,AL, al ser distinto a 0 la flag Zero la deja desactivada con el valor 0, y en el JE no salta para efectuar el proceso de verificación de la key, y si en cambio salimos de formulario pulsando el botón Cancelar, sale AL con el valor 0 y al comprobar su valor con TEST AL,AL si es cero cambia la flag Zero a 1 (activada) y entonces el JE si salta, pero en este caso solo para evitar el codigo de registro al ser innecesario verificar nadada ya que le hemos dicho al programa que cancele los cambios. Código: 00658384 . E8 BBDDE5FF CALL TextBlue.004B6144 ; aqui muestra la ventana de registro y espera al serial Total en este sitio es ir traceando con con F7 cuando queremos entrar en las call en varios niveles y F8 cuando no queremos, para no hacer interminable el traceo, y ver si por alguna de las ventanas del olly nos sale el codigo de chico bueno. Si por aqui no consigues el codigo bueno, mira el codigo que te puse en la pagina anterior que si en tu programa pasas por la dirección del offset 0065f177, tienes un salto JE que te lleva a "Licensed" ó a "Not Licensed", que es este Código: 0065F175 |. 84C0 |TEST AL,AL reinicia el programa, pon un BP con F2 en la dirección 0065F177, si para el programa en el, pulsas el espaciador, reemplazas el "JE SHORT TextBlue.0065F18E" con NOP (con esto verás que el codigo hexadecimal 74 15 cambiará a 90 90), pulsas intro y despues escape para no modificar la siguiente linea, ahora sigues con run F9 con lo que lo forzamos a entrar en la call de "Licensed", y despues comprueba si en el programa dicho camino ha producido algun efecto beneficioso. Título: Re: programita Publicado por: ana6 en 24 Mayo 2010, 17:15 pm hola LSL e echo lo que me dijistes y no veo nada por dinguna parte recuerda que soy novata y disculpa.
me e dado cuenta que cuando no te deja mandar mensajes con el play en enviar si lo puedes realizar y funciona bien. igual esta ligado a esa parte. ana Título: Re: programita Publicado por: yako-_- en 24 Mayo 2010, 17:33 pm LSL y si cambiamos el TEST AL,AL por TEST EBX,EBX ?
La comparacion deberia ser siempre buena no? Yo ya deje de hacer pruevas puestooo que no tenia el blue y un poco de vagancia :) un saludo Título: Re: programita Publicado por: tena en 24 Mayo 2010, 20:50 pm Aqui esta el api de la libreria que usa para comunicarse con el dispositivo.
Wireless Communication Library http://www.mediafire.com/download.php?tzmm5gijnd0 (http://www.mediafire.com/download.php?tzmm5gijnd0) Título: Re: programita Publicado por: yako-_- en 24 Mayo 2010, 22:46 pm Hola tena!
Buen trabajo, como no podia er de otra manera Ahora atrevete con algo mas dificil... http://foro.elhacker.net/ingenieria_inversa/desafio_mi_primer_cutrecrackme-t294500.0.html Un saludo PD: Lode dificil era broma ::) Título: Re: programita Publicado por: tena en 24 Mayo 2010, 22:49 pm Ya lo miro dentro de un rato :)
Título: Re: programita Publicado por: ana6 en 25 Mayo 2010, 06:02 am hola compis
hay alguien que me pueda echar una mano con este programita me de los pasos ana Título: Re: programita Publicado por: ana6 en 26 Mayo 2010, 06:06 am hola tena gracias por tu interes como puedo utilizar las apis que mandastes para este programita.
me podrias decir como. gracias Título: Re: programita Publicado por: LSL en 26 Mayo 2010, 18:30 pm Asunto: Tenemos un programa en versión de prueba, en el que al ejectuar el menú "Sender Start" (inicio) a veces nos sale una nag en la que nos dice que no tenemos registrado el transmisor bluetooth que es un dispositivo conectado al USB, y tambien despues de unos minutos de prueba (escasos a nuestro parecer) nos vuelve a salir la nag de aviso y se corta el programa.
Vamos a debuguearlo para corregir posibles fallos de programación y que no nos moleste con las nag (para que tantos avisos, si ya sabemos que es de prueba), y además vamos a hacer que despues de los minutos escasos de prueba, siga funcionando, pues tenemos que probarlo exprimiendo todas sus posibilidades, para saber si realmente cumple con el fin que interesa darle. Herramientas: (http://r.i.elhacker.net/cache?url=http://img8.imageshack.us/img8/1890/imagen00.png) 1º Debemos saber si está empacado y en que lenguaje de programación esta hecho, para saber que herramientas debemos utilizar, para el debugger. Utilizamos un analizador por si está empacado el programa: en este caso he utilizado varios conocidos, Peid, RDG, Die, pero el Exeinfo PE by A.S.L., es el que mejor me ha informado en este caso, que se trata de un Delphi versión 2010, y que no está empacado. http://www.exeinfo.xwp.pl/ (http://r.i.elhacker.net/cache?url=http://i50.tinypic.com/28ip5at.jpg) Seguimos atando cabos: Como Delphi permite de manera sencilla ejecutar trozos de código en respuesta a acciones o eventos (sucesos) que ocurren durante el tiempo que un programa se ejecuta. Por ejemplo, cuando se presiona un botón, la VCL captura la notificación estándar de windows, y detecta si hay algún método asociado al evento OnClick del botón. Si lo hay, manda ejecutar dicho método. Así que vamos a buscar los procedimientos asociados a los controles que nos interesan. Hemos observado que la nag se muestra al pulsar el menú Start y despues de un tiempo de uso, tenemos dos controles que nos interesa debugguear al iniciarse el evento asociado a dichos controles. Así que vamos a utilizar un editor de recursos, para que nos de información al respecto. En este caso he utilizado el eXeScope, y miramos en los controles del formulario MAIN (que es principal en inglés, es muy común en programación utilizar los nombres en ingles), pero puede ser cualquier otro que se le haya ocurrido al programador) (http://r.i.elhacker.net/cache?url=http://img526.imageshack.us/img526/8868/imagen01n.png) Hemos encontrado el objeto con el Captión del menú "&Start", que tiene asociado en el evento OnExecute, la función o procedimiento "acSenderStartExcute", de la cual tomamos nota. (http://r.i.elhacker.net/cache?url=http://img443.imageshack.us/img443/6971/imagen02.png) (http://r.i.elhacker.net/cache?url=http://img707.imageshack.us/img707/8518/imagen03.png) (continuará ...) (http://r.i.elhacker.net/cache?url=http://img241.imageshack.us/img241/7194/imagen05u.png) (http://r.i.elhacker.net/cache?url=http://img193.imageshack.us/img193/9165/imagen06.png) (http://r.i.elhacker.net/cache?url=http://img263.imageshack.us/img263/1775/imagen07.png) (http://r.i.elhacker.net/cache?url=http://img171.imageshack.us/img171/1513/imagen08.png) (http://r.i.elhacker.net/cache?url=http://img101.imageshack.us/img101/4904/imagen17r.png) (http://r.i.elhacker.net/cache?url=http://img24.imageshack.us/img24/3350/imagen11l.png) (http://r.i.elhacker.net/cache?url=http://img80.imageshack.us/img80/348/imagen16c.png) (http://r.i.elhacker.net/cache?url=http://img156.imageshack.us/img156/1078/imagen14w.png) (http://r.i.elhacker.net/cache?url=http://img96.imageshack.us/img96/2431/imagen18q.png) (http://r.i.elhacker.net/cache?url=http://img404.imageshack.us/img404/482/imagen19v.png) Título: Re: programita Publicado por: ana6 en 26 Mayo 2010, 23:40 pm Hola LSL voy a probarlo aver si no me vuelvo loca buscando.
ana Título: Re: programita Publicado por: yako-_- en 27 Mayo 2010, 01:31 am LSL por favor esto pide con un grito un tutorial.
Las capturas ya las tienes... Buen trabajo!!! Un saludo Título: Re: programita Publicado por: ana6 en 27 Mayo 2010, 07:12 am Hola LSL
bueno te cuento que creo que lo e echo bien y puedo decirte que anun no funciona en cuanto al tiempo sigue paranadose. alos 7 minutos me pide que registre el dongle. si tienes lo que has echo como comentastes que no tienes bluetooth mandamelo y lo pruebo con el mio aqui tengo 2. ana Título: Re: programita Publicado por: LSL en 27 Mayo 2010, 09:57 am los controles Timer (tiempo), cuando se producen en este programa ejecutan el evento TimerTimer, dentro de ese evento como puedes ver no tenemos ningun salto que evite el mensaje de registrar, asi que hay que buscar el salto antes de que se produzca el evento TimerTimer, para evitar este evento.
Una manera facil de pillar donde esta la call que llama al evento TimerTimer, es ver donde regresamos despues de terminar el RETN envento. Asi que pones un BP (con F2) en el Retn de salida del TimerTimer que está en 0065F35F, con esto paras el programa cuando corra en dicha linea de código, continuas traceando con F7, y cuando caigas en un código que justo en la linea anterior tengas una call, ese es el retorno de la call encargada de ejecutar el evento, asi que miras un poco mas arriba que tienes que tener una comprobación y un salto condicional que puede evitar la call que llama al evento timertimer. Dime donde se encuentra esa call, y termino el minimanual que he comenzado. Título: Re: programita Publicado por: MCKSys Argentina en 27 Mayo 2010, 23:13 pm Tute! Tute! Tute! ;D ;D ;D
Título: Re: programita Publicado por: LSL en 28 Mayo 2010, 04:53 am ;) pronto estará el tute, pero como ana6 está aprendiendo a hacer su primer debugging para arreglar fallos de programación, primero le he puesto solo las imágenes para que vaya interpretando que es lo que ven sus ojos, y que su imaginación vuele libre, ... :D.
Además para completarlo, como ana6 si tiene mochilas bluetooth nos tiene que decir con los datos que ya tiene, cual ó cuales son las call que inician el procedimiento "timertimer" una vez transcurre un tiempo de ejecución. Título: Re: programita Publicado por: ana6 en 28 Mayo 2010, 20:41 pm Hola LSL
Te comento que antes de 7E398A10 esta la call 7E398A0B (http://r.i.elhacker.net/cache?url=http://i48.tinypic.com/fdr7tf.jpg) ana Título: Re: programita Publicado por: LSL en 29 Mayo 2010, 11:50 am en ese codigo, todavia estás fuera del codigo principal del programa, porque estás en el modulo USER32 (librerias de windows), tienes que seguir traceando pulsando F8 hasta volver a caer en el modulo con el nombre del programa, fijate en la barra de titulo del Olly que te informa en que modulo estás.
En esa posición actual dentro del USER32, si pulsas Alt+F9 el olly debe parar al volver al modulo desde donde se llamó a la call principal. Título: Re: programita Publicado por: LSL en 29 Mayo 2010, 13:21 pm (http://i50.tinypic.com/1pf4oh.jpg)
Título: Re: programita Publicado por: ana6 en 29 Mayo 2010, 18:43 pm (http://r.i.elhacker.net/cache?url=http://i45.tinypic.com/zuj9r5.jpg)
esta es la call Título: Re: programita Publicado por: LSL en 29 Mayo 2010, 23:25 pm Ahi estas dentro del procedimiento "HandleMessage", en ese momento continuas con F8 hasta pasar el Retn de 004FFF70 y despues segun la ventana del Stack, vas a retornar a 0050028A y a su salida retornaras a 0066BEDC (en las dos call anteriores a estas direcciones de retorno se llama al procedimiento "run" que es muy comun durante todo el proceso del ejecutable, por lo que creo que si sigues por ahi vas a terner que tracear muchos bucles hasta volver a continuación de la call que ejecutó el procedimiento "timertimer" que es el que te muestra el mensaje de regristrar.
Asi que vamos a centrarnos en los datos que nos da olly cuando tengamos parado el programa en el comienzo del procedimiento TimerTimer, pones un BreakPoint con F2, en 0065F25C. Cuando este ahí parado, fijate en el registro ESP, y en su puntero del Stack, que te dirá la dirección de Retorno, (fijate en la imagen que puse antes de ejemplo). Título: Re: programita Publicado por: ana6 en 1 Junio 2010, 15:16 pm (http://i49.tinypic.com/10yq5hj.jpg)
Título: Re: programita Publicado por: LSL en 2 Junio 2010, 02:22 am ahí tambien retornas a una zona comun de ejecución de eventos, y te costará un rato salir de bucles de programación.
Bueno lo siguiente, no es lo mas ortodoxo, pero es 100% efectivo con el componente timer, y es dejarlo sin el evento asociado Ontimer, lo que se puede hacer facilmente con un editor de recursos, en este caso he utilizado el eXeScope, ...abrimos el ejecutable a modificar, te desplazas a Resource -> RCData ->TFMMAIN -> pulsas Control+F para buscar el texto TimerTimer, pulsas OK y caes en el primer texto encontrado, seleccionas la linea "OnTimer = TimerTimer", click derecho y Delete, asi en los 4 objetos timer, te cambias de formulario o sales del eXeScope y te pregunta si quieres guardar los cambios, pulsas OK, y a tomar viento los eventos asociados a la función TimerTimer. (http://r.i.elhacker.net/cache?url=http://i46.tinypic.com/300qwkh.jpg) Otra forma mas profesional es poner el valor de intervalo=timeout = 0 cuando se le pasa los parametros a la Api SetTimer en tiempo de ejecución, con esto el evento ontimer asociado no se generará. Cargamos el ejecutable en Ollydbg, parado en el EP, en la ventana de desensamblado pulsamos Control+N, (nos muestra la ventana de nombres en el corriente módulo, sobre el titulo de la ventana escribimos settimer, con lo que nos localiza y coloca encima de dicha función, pulsamos Intro, para que nos muestre todas las llamadas a dicha funcion importada, le colocamos a cada llamada un BP con F2. Corremos el programa con F9 y cada vez que utilize un timer, parara en dicha call a settimer. Ojo no todos los settimer estaran asociaciodos al mensaje de registrar, hay algunos timer necesarios para que el programa realiza trabajos repetitivos necesarios para el buen funcionamiento, por lo que nos fijaremos en cuales son los que nos interesa deshabilitar y cuales no nos interesa por tener otra función encomendada. Por ejemplo hay un settimer que vamos a pasar por el cada vez que querramos ver un menú, a este le quitamos el BP de interrupción para que nos deje manejar el programa. Si nos fijamos en la composición de los parametros que se le pasan a la función SetTimer que los podemos ver en el Stack cuando se va ajecutar el call a la Api, vemos que son 4 parametros. Antes del call al SetTimer, tenemos 4 ordenes PUSH con distintos valores, y en el 2º push es en el que se le introduce el valor de milisegundos a procesar, asi que se le pone un BP con F2 en dicho segundo PUSH, para encontrar el ó los SetTimer que se utilizan para contar los 7 minutos aproximadamente, pues en ese 2º push, tenemos que cambiarle al valor 0 para que no se ejecute el OnTimer. Para cambiarle el valor, si tienes lugar para un par de bytes, puedes ponerle directamente PUSH 0, pero si solo tienes un byte, por ejemplo un PUSH EAX, que utiliza solo un byte con el valor 50, tienes que subir hasta donde EAX coge el valor, para cambiarlo a valor 0, asi llegará al PUSH EAX = 0. por ejemplo: 005BCBE3 |. 6A 00 PUSH 0 ; /Timerproc = NULL 005BCBE5 |. 8B45 FC MOV EAX,DWORD PTR [EBP-4] 005BCBE8 |. 0FB640 3E MOVZX EAX,BYTE PTR [EAX+3E] 005BCBEC |. 69C0 E8030000 IMUL EAX,EAX,3E8 005BCBF2 |. 50 PUSH EAX ; |Timeout 005BCBF3 |. 6A 03 PUSH 3 ; |TimerID = 3 005BCBF5 |. 8B45 FC MOV EAX,DWORD PTR [EBP-4] 005BCBF8 |. 8B40 58 MOV EAX,DWORD PTR [EAX+58] 005BCBFB |. 50 PUSH EAX ; |hWnd 005BCBFC |. E8 0707E5FF CALL <JMP.&user32.SetTimer> ; \SetTimer como ves el 2º PUSH, introduce el valor Timeout =Intervalo en milisegundos y solo utiliza un byte ( 50 = PUSH EAX ) ahí no podemos poner PUSH 0 ( que equivaldria a 6A 00 porque pisariamos el siguiente codigo con lo que daria error la función ), entonces en la linea superior tenemos que EAX coge su valor al multiplicarse por 3E8 (1000 en decimal), ahí si podemos modificar para que el valor de EAX se multiple por 0, con lo que siempre tendremos en PUSH EAX, el intervalo 0. Título: Re: programita Publicado por: yako-_- en 2 Junio 2010, 03:25 am Makina!!!!
Espero ese tute.... :silbar: Saltar una mochila y la limitación... ;-) Muy interesante ::) un saludo!!!! Título: Re: programita Publicado por: ana6 en 2 Junio 2010, 18:31 pm Hola LSL
e probado lo que dices en el post anterior y aun sigue pidiendo la licencia para el bluetooth sigue parandose cuando pansan el tiempo. no es mejor realizarlo licenciado? se ponga el que se ponga que este licienciado. o soy una tonta que no se puede realizar?. ana Título: Re: programita Publicado por: LSL en 3 Junio 2010, 09:25 am ¿ matado los eventos TimerTimer, sigues cayendo en el inicio de dicha función en 0065F25C ?
Tambien te recuerdo que para evitar el mismo mensaje a través de la función "acSenderStartExcute", en la dirección 0065C33C tienes que cambiar la instrucción TEST AX,AX por la de XOR AX,AX, para eso cuando estes encima de dicha dirección, pulsas el espaciador y podras cambiar la instrucción en ensamblador, y si prefieres pulsas Control+E para editarlo en hexadecimal, cambias "66 85 C0" por "66 33 C0", luego tienes que salvar los cambios en el executable, para eso click derecho, linea menu "Copy to executable" la selección o todos los cambios, y despues click derecho en la nueva ventana y "save file". Título: Re: programita Publicado por: ana6 en 3 Junio 2010, 15:47 pm hola LSL
Te cometo que realizando todo eso y como en el ultimo post sigue parando pidiendo el registro del dongle. como comente en el anterior post no es mejor lo del registro?. o es que soy una tonta y no lo estoy realizando bien. ana Título: Re: programita Publicado por: ana6 en 9 Junio 2010, 07:43 am hola me podeis ayudar en este programita como realizar el tute por mas que lo intento no puedo.
espero me podais ayudar o decirme como lo ago. gracias Título: Re: programita Publicado por: ana6 en 16 Junio 2010, 18:05 pm hola de nuevo me podeis ayudar con este programita por favor.
ya que soy nueva y no me aclro necesito para que funcione. gracias Título: Re: programita Publicado por: MCKSys Argentina en 16 Junio 2010, 19:21 pm @ana6: Creo que deberias revisar todo lo expuesto hasta el momento. La solución está ahí. Sólo debes tomarte el tiempo y revisar lo dicho...
Saludos y Ánimo!! Título: Re: programita Publicado por: yako-_- en 16 Junio 2010, 19:56 pm LSL como va ese tute?
Tengo ganas de leerlo ;) Un saludo!! Título: Re: programita Publicado por: ana6 en 29 Junio 2010, 17:02 pm hola chicos
perdonar pero soy una tonta y no me aclaro MCKSys Argentina me puedes echar una mano ya que salio otra version nueva y no lo consigo o puedes acerme un tutorial para poder buscar el chico bueno. estare muy agradecida. ana Título: Re: programita Publicado por: MCKSys Argentina en 2 Julio 2010, 01:36 am Hola ana6!
Por el momento estoy sin tiempo. He cambiado de trabajo y me he mudado hace poco, asi que no tengo ni PC ni Internet disponibles :( Como ves, no puedo hacer mucho.... :P Espero solucionar esto en poco tiempo. Saludos! Título: Re: programita Publicado por: Amerikano|Cls en 2 Julio 2010, 04:27 am Cita de: MCKSys Argentina link=topic=2943javascript:void(0); 23.msg1478641#msg1478641 date=1278027397 Hola ana6! Por el momento estoy sin tiempo. He cambiado de trabajo y me he mudado hace poco, asi que no tengo ni PC ni Internet disponibles :( Como ves, no puedo hacer mucho.... :P Espero solucionar esto en poco tiempo. Saludos! :D ya empezaste en CORE?? Título: Re: programita Publicado por: ana6 en 7 Agosto 2010, 12:45 pm hola,
disculpar pera e estado enferma. ahora me pongo las pilas. esperoa que ya me podais ayudar. con esto. ana |