Tema destacado:
Autor
|
Tema: Ayuda crack Solvermedia (Leído 5,342 veces)
|
farma
Desconectado
Mensajes: 20
|
Hola, buenas tardes. Me presento, me llamo Fran, soy farmacéutico por accidente y devoto informático frustrado. En lugar de pensar en binario pienso en moléculas de carbono...  Llevo varios meses intentando aprender de manera modesta lo que voy pudiendo, siguiendo tutoriales, intentando realizar cracksme de manera más o menos exitosa... Estoy intentando ahora crackear otros programas, sin ayuda, pero es que yo no sé si estoy espeso, no he hecho algún crackme parecido, o es un nivel demasiado alto para mí. He intentado hacerlo de dos maneras: intentando que no compruebe si está registrado en el ejecutable del programa principal, y también hacer que valga cualquier serial JE por JNE en la instrucción del exe del registro. Y nada, no consigo hacerlo funcionar... Utilizo Ollydbg. ¿Seríais tan amable de decirme cómo hacerlo, cuál sería la mejor manera? Muchas gracias. Vaya pasatiempo que me he buscado... Pongo el enlace del programa: http://www.solvermedia.es/pelu.exeEl ejecutable principal es N_Principal.exe El ejecutable del registro es N_Registro.exe Graciaaaaas. Me quema la cabeza!!!!! El ejecutable del registro es N_Registro.exe Dios, me estoy volviendo loco
|
|
|
|
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Vale, debe tener función timer porque en una versión anterior con la que estoy probando me arranca varias veces bien hasta que detecta que el tiempo de prueba ha expirado, e inhabilita funciones.
Tiene una base de datos protegida con contraseña (KerSol%) en mdb, y viene un comando de licencia que no logro ver desde dónde se le llama. Y si esto es en la versión antigua, en la nueva imagino que estará más protegida.
He visto que hay otra CALL en la que, no sé cumpliendo qué condición, los programadores te dicen: "Sonríe, pirata, te estamos grabando".
Supongo que la versión moderna llamará al registro de Windows pero no sé dónde poner el BP y que ingnore la instrucción JMP.
¿Es necesario usar otros programas, tipo DeDe, o Hackman? Ahí ya me pierdo...
¿Tan duro es crackear esta aplicación que los desarrolladores se ríen?
Como decían The Beatles: Help! I need somebody! Help! Not just anybody, Help! You know I need someone, Help!
|
|
|
|
« Última modificación: 10 Julio 2011, 11:03 por farma »
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
Supongo que para hacer el keygen habrá que comparar según esta secuencia:
00402394 >/$ 68 84414000 PUSH Registro.00404184 00402399 |. E8 F0FFFFFF CALL <JMP.&MSVBVM60.#100>
Esto que has puesto es el EP de un programa hecho en VB 5-6...  Tiene muy poco que ver con la creacion de un keygen... 
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
farma
Desconectado
Mensajes: 20
|
Gracias por contestar, MCKSys...
Te explico: tengo un crack de este programa y funciona, pero lo que quiero es saber cómo funciona, saber hacerlo yo, entender la protección y cómo torearla. Esta empresa presume de la protección en sus productos, y lo que quiero es saber por qué están tan seguros de su trabajo. Apple, Sony, Microsoft... invierten más dinero en protección y es cuestión de tiempo el que alguien la salte.
Hasta donde sé, supongo que tengo varias opciones: -Hacer que no compruebe si está registrado de manera que cuando pase el periodo de evaluación no haya opciones no disponibles. -Hacer que el periodo de evaluación aumente hasta 900000 días... -Sacar el algoritmo para poder hacer un keygen o un serial válido (quizá avanzado para mí, torpe en matemáticas). -Parchear para que metiendo cualquier serial lo reconozca como correcto.
He jugado con estas protecciones con los crackmes y las entiendo, pero no sé cómo avanzar, no sé si hay algún crackme parecido... ¿a ti te resultaría especialmente difícil saltarte esta protección? ¿Tan difícil es? No veo ningún crackme parecido ni de Ratón, ni de Ricardo Narvaja...
Cuando hago los crackmes con los tutoriales los entiendo perfectamente, pero avanzar solo me cuesta...
Se supone que habiendo hecho ya los tutoriales debería poder hacer yo solo la trampa con el Ollydbg y un programa compilado en VB, pero no puedo...
Ayuda porfa... Me toy volviendo loco... El programa pesa sólo 26 mb, por si os pica la curiosidad y la bondad...
Por cierto, perdona mi ignorancia (newbie very newbie) pero no pillo la gracia del keygen. ¿No se podría hacer?
|
|
|
|
« Última modificación: 5 Julio 2011, 19:39 por farma »
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
, pero lo que quiero es saber cómo funciona, saber hacerlo yo, entender la protección y cómo torearla.
Bueno, si es asi, deberías empezar con el curso de Ricardo Narvaja: http://ricardo.crver.net/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/Si ya lo has empezado y hay cosas que no entiendes, te recomiendo seguir con el curso hasta que las puedas entender. De todas formas, algunos tips: Si el programa esta en VB 5-6... que deberias usar para atacarlo? Puedes Decompilarlo? Esta en PCODE o Nativo? Tiene algun packer especifico de VB? El programador a usado trampas para que el decompilador no funcione? Corre igual bajo Olly que cuando corre solo? En que parte se ingresa el serial? Se compara? Contra que? Que codigo se ejecuta en la verificacion? En que APIs del runtime de VB debes poner BPs? En que momento? Y asi podemos seguir...  Saludos!
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
farma
Desconectado
Mensajes: 20
|
MCKSs, una vez más, gracias.
Tengo encuadernado el manual completo de Ricardo Narvaja, de Ratón, de COCO... También he imprimido e intentado asimilar tutoriales de VB para estar más familiarizado...
Para atacarlo he visto ue se puede hacer con VB Decompiler, hay otros que usan el SmartCheck, pero yo prefiero seguir las instrucciones o consejos de Ricardo Narvaja y hacerlo usando, si se puede, el Ollydbg.
Sí se puede decompilar, tanto en Olly como con VB Decompiler; está en Nativo. Pasando el RDG Packer Detector 0.6.7 no detecta OEP ni ningún packer específico.
No creo que hayan usando trampas puesto que, hasta donde veo, el programa corre bien con el Ollydbg (si no, habría intentado usar Ollydbg Shadow o algún otro con plugin para que no detecto debugers).
EL serial se ingresa cuando se llama a Registro.exe. El mensaje que arroja está en: 0042C661: mov var_6AC, 00409220h ; "Número de licencia incorrecto"
El mensaj cuando es correcto está en: 0042B1AA: mov var_6AC, 00408794h ; "Registrado"
Y el problema viene ahora, que no sé qué compara con qué. Sé cómo se tienen que poner los BPs porque en los crackmes lo sé hacer, pero aquí no lo veo, al no poner BP no puedo ver qué compara con qué...
Y tampoco veo cómo detecta algo para que arroje el mensaje de "Sonríe pirata te estamos grabando".
Si me pudieras arrojar luz te lo agradecería... me duele la cabeza ya... lo tengo que conseguir aunque sea por orgullo.
Supongo que parte del misterio está aquí:
Object: frmLicenciaTelefonica Private Sub Form_Load() Address: 42E320 Private Sub Text1_Change() Address: 434430 Private Sub Text1_KeyPress(KeyAscii As Integer) Address: 434560 Private Sub Text2_Change() Address: 434600 Private Sub Text2_KeyPress(KeyAscii As Integer) Address: 434730 Private Sub Text3_Change() Address: 4347D0 Private Sub Text3_KeyPress(KeyAscii As Integer) Address: 434900 Private Sub Text4_Change() Address: 4349A0 Private Sub Text4_KeyPress(KeyAscii As Integer) Address: 434CB0 Private Sub Command1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Address: 420040 Private Sub Command4_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Address: 42E2B0 Public Sub Clave() Address: 42CEF0 Public Function Cambia2() Address: 434A10 Public Sub Proc_5_13_42E200 Address: 42E200 Public Sub Proc_5_14_434D50 Address: 434D50 Public Sub Proc_5_15_434D90 Address: 434D90
Gracias de antemano por la ayuda.
|
|
|
|
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Sigo dándole vueltas, ya ni duermo por la noche....
He probado otra forma de hacerlo, como recomienda COCO, buscando el comando CALL [EAX+000000A0], poniendo un BP y ejecutando el programa para ver cómo toma mis datos y verlo con qué lo compara. Y tampoco lo hago bien!!!
Resuelvo el Crackme de EternalBliss3.0, los de COCO, el GoldCrackme... Y con el programa pelu.exe estoy atascado.
|
|
|
|
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Nada, no doy con ello. No veo ninguna string "Numero de licencÌa incorrecto", que es lo que sale al introducir un número aleatorio; no veo cómo toma el programa los datos que introduzco y por ello no puedo saltarme la protección de la manera elegante, buscando el serial correcto; tampoco puedo hacer el jump para que me dé la enhorabuena por haber introducido el número correcto.
No encuentro ni siquiera la orden de comparación de lo que yo introduzco con el correcto.
No veo tampoco la API GetDlgItemText.
Veo que hay un CALL EAX en 00403D05, el primero, con FFD0.
¿¿¿Qué se me está escapando??? Llevo meses haciendo los crackmes y no me he encontrado nada parecido a esto.
¿Me falta alguna herramienta más para poder conseguirlo, además de VBecompiler y OllyDBG? Supongo que el SmartCheck no es necesario.
Para que corra el ejecutable N_Registro.exe debe estar abierto N_Principal.exe. Imagino que es suficiente atacar sólo a N_Registro, no debería tocar nada de N_Principal, ¿verdad?
Ayuda please.
|
|
|
|
« Última modificación: 7 Julio 2011, 14:06 por farma »
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
En N_registro.exe esta todo. Ejecuta el principal y lanza registro en Olly. Pon BP en 422F30 (codigo que se ejecuta al hacer click en el boton de registro). Los __vbaStrCmp te iran guiando (fijate que se esta comparando  ). Muy importante es la funcion de 42B7D0. Bueh... a ver si puedes desde aqui en mas. Saludos!
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
farma
Desconectado
Mensajes: 20
|
Como siempre, gracias por tu ayuda, MCKSys.
Puesto el BP en 422F30, al ingresar un serial aleatorio y dar al botón de Registrar, no salta la nag de numero de licencia incorrecto. Parece que voy bien.
Si sigo los tutoriales (Coco, Ricardo Narvaja 13, 26, 27 y 28...) se supone que cuando introduzco un serial aleatorio debe quedar reflejado en Ollydbg, como string text, ASCII, UNICODE... Pero no lo veo. Así que una de las dos cosas que debo comparar "no existe" para mí, la API GetWindow. En cambio, si lo veo en Memory (como el Crackme Canasta), en mi caso el código aleatorio ha sido: FRA1-FRA2-FRA3-FRA5-FRA5.
Al irlo introduciendo, se van quedando grabados en memoria así: FRA1: 0020C8F0 (46 52 41 31) FRA2: 0020D958 (46 52 41 32) FRA3: 0020D738 (46 52 41 33) FRA4: 0020D518 (46 52 41 34) FRA5: 0020D0E0 (46 52 41 35)
El siguiente problema es que el serial correcto tampoco aparece en las strings, por lo que descarto que sea un HARDCODED. El tema 13 de Narvaja no me vale específicamente.
Arranco N_Principal.exe, ahora arranco N_Registro.exe desde el Ollydbg. Pongo BP en 422F30 y en cada _vbaStrCmp: *42325A *42326D *42328E *42336A *42346A
Ejecuto programa (F9) y después de varias shifts+F9, sale la ventana de registro. Pongo aleatoriamente: FRA1-FRA2-FRA3-FRA5-FRA5 (compruebo de nuevo que los datos van saliendo en memoria).
El programa se detiene en, evidentemente, el primer BP: 00422F30.
En el stack, para en 0012F614. Hago un Follow in dump y lo que veo creo que no me sirve.
En las _VbaStrCmp, compara: *42325A EAX con 004045AC=N_Regist.004045AC *42326D ECX con 00403F48=N_Regist.00403F48 *42328E EDX con 00403F48=N_Regist.00403F48 *42336A EDX con 00403F40=N_Regist.00403F40 *42346A EDX con 004045B4=N_Regist.004045B4
Una ayudita, MCKSys, por favor... me vuelvo a quedar bloqueado. Los crackmes desde el 13 (splish, Sambo...) los entiendo, pero no sé seguir. Llevo hoooras intentando avanzar y me choco con una pared.
¿Dónde está lo que se compara con FRA1-FRA2-FRA3-FRA4-FRA5? ¿Cómo lo puedo sacar?
No sé qué hace sacando EBX a la 0042B7D0... Te agradezco la pista pero ahora te agradecería una pista sobre la pista.
Como dije al principio, no tengo interés en crackear para uso particular este software, me resulta totalmente indiferente y de quererlo en las páginas habituales está. Pero me resulta súper interesante, me divierte y me cabrea esta protección. Por cierto, creo que odio VisualBasic.
¿Recordáis alguno algún crackme de protección similar a ésta? Creo haber repasado todos y no he visto ninguno.
Gracias compis.
|
|
|
|
« Última modificación: 8 Julio 2011, 16:04 por farma »
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
Muy importante es la funcion de 42B7D0.
Revisaste esa funcion? Ahi esta toda la proteccion. Algo que debes tener en cuenta, es que VB no es igual a los demas lenguajes. Las variables en VB estan definidas en memoria en general como VARIANT, por lo que una variable de tipo BYTE, ocupara mas de 1 byte en memoria, pues se requieren varios campos mas que especifiquen que tipo de VAR es, etc. Para ver que se compara en vbaStrCmp, debes mirar los parametros PUSHeados en el stack. Esas son las direcciones de los valores que comparara la funcion. Lo dicho anteriormente es muy basico. Te recomiendo seguir leyendo tutoriales hasta que le agarres mejor la mano...  Saludos!
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
farma
Desconectado
Mensajes: 20
|
Sí, revisé la función 42B7D0, entiendo que empuja al stack el valor de ebp, pero no consigo verlo, traceo después del BP y antes de que salga el msgbox, pero no lo veo, voy al stack y no veo los valores correctos.
Lo que yo pongo lo rastreo y está en 0020C8F0, 0020D958, 0020D738, 0020D518 y 0020D0E0.
He hecho todos los crackmes que he mencionado en posts anteriores, y no veo la relación de la "práctica" con la "realidad" de este programa. He hecho los tutoriales y los crackmes en VB, y ninguno me ha resultado tan difícil.
Supongo que tú, MCKSys, o algún otro habitual con hooooras de experiencia, en un minuto o dos lo tenéis resuelto. Pero esto me puede a mí, es desesperante, porque entiendo lo que me dices pero no sé seguir la pista.
¿Recuerdas algún crackme que sea de este tipo? Además, los que he hecho tienen una string, pero aquí hay cinco campos...
Ayuda please.
|
|
|
|
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Estoy repasando otra vez todos los crackmes de VB, a ver qué se me escapa. Suerte que mi mujer está de viaje, llevo todo el día... Ya comentaré. O estoy pasando por alto algo muy básico, o es demasiado difícil para mí. Sigo en ello. 
|
|
|
|
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Iba a poner los pasos que voy haciendo, con capturas, pero no puedo poner las imágenes por orden así que cuelgo el pdf en megaupload con los pasos que voy haciendo en el Olly. He revisado los tutoriales de Coco, de Dani (el terrible no porque es odioso), de Ricardo Narvaja... he hecho todos los crackmes en VB (incluso el Canasta) de pesca de seriales... y todos los saco, incluso los últimos del concurso 2011 (los ocho primeros de la colección VB 1.6). Traceo y veo una pista UNICODE, ASCII, un valor en el dump o en la ventana del dissambler... ¿Por qué me resulta tan difícil este serial? Entiendo que el programa genera unas claves, yo meto otras, se pushean a la pila, se comparan y allí debería ver los valores si hago un Follow in dump, en ASCII, en hexa o como fuere, pero no lo veo. Lo tengo delante y no lo veo!!! Sigo atascado... Esto ya no me está divirtiendo... Si lo resuelvo me comprometo a hacer un tute paso a paso, para tontos como yo... y lo haría no incumpliendo ninguna norma. Una ayudita, porfa... http://www.megaupload.com/?d=88DTT544
|
|
|
|
« Última modificación: 10 Julio 2011, 11:06 por farma »
|
En línea
|
|
|
|
farma
Desconectado
Mensajes: 20
|
Querido diario: se me salen los ojos. Sigo sin ver los valores en la stack ni su valor en el dump, sé que algo me falla... pero no me doy por vencido... Esto no puede/debe ser tan difícil... Sigo en ello.
Una pregunta: he buscado tutos de programas comerciales y la mayoría de los enlaces están caídos... ¿Sabéis si existen tutoriales de programas comerciales, como el que ha hecho UND3R? Me da igual de lo que sea el soft, el caso es aprender y divertirse.
En CracksLatinos he encontrado alguno pero es demasiado complejo para mi conocimiento.
Gracias.
|
|
|
|
|
En línea
|
|
|
|
|
|