Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - karmany

#1041
Este tutorial ha sido realizado por el forero Nanocity el 17 de agosto de 2007 como solución al Crackme1 de Nitr0k1ller. Descarga del crackme y más información en:
http://foro.elhacker.net/index.php/topic,180720.msg860578.html#msg860578


Tutorial Crackme1 de Nitr0k1ller por Nanocity

Bueno se trata del crackme de Nitr0k1ller, el tuto es muy simple y esta hecho con intención de que lo entienda el que este justo empezando con esto:

Lo primero que hacemos es ejecutar el crackme para mirarlo un poco por encima:
Vemos que nos pide un serial y que para poder introducirlo tenemos que activar un botón, además navegando por los menús vemos que parece ser que está escrito en VB.

Para asegurarnos corremos el PeiD y efectivamente nos dice que es así. Para activar el botón podemos usar algún descompilador de VB pero como no tengo ninguno por aquí usaremos el Olly que nos sirve igual.

Un método de hacerlo es buscar el bit que determina si la propiedad Enabled está o no activa, asique cargamos el Olly y buscamos la caption del botón en este caso "&Check" (Search for -> All referenced text strings, Search for text), la encontramos y pinchamos en el texto para que nos lleve a la zona de memoria donde está, caemos en una zona donde parece que se han cargado todos los objetos y dentro de las propiedades del botón. Ahí buscamos un solo bit que este a 0 (ya que el botón esta desactivado), y vemos que hay unos cuantos (con un poco de práctica se puede saber cuál es el correspodiente) así que probamos cambiando el primero (Modify byte) a un 1. Corremos el crackme y vemos que el boton sigue inactivo pero que ha cambiado de posición, hemos cambiado lo que no era... No pasa nada, reiniciamos el olly, probamos con el siguiente y apuntamos la dirección por si acertamos... Bien! Esta vez el botón esta activo, ya sabemos que bit debemos cambiar. Para hacerlo damos click derecho, Copy to executable->All modifications, aparece otra ventana, la cerramos y nos da la opción de guardar nuestro programa modificado, asique lo guardamos con otro nombre.

Ahora viene la segunda parte, sacar el serial. Cargamos nuestro crackme modificado, sabemos que esta en VB, en esos casos es interesante ver en el olly las funciones que se han usado (Crtl+N), ahi vemos que hay funciones de concatenación de strings y sobre todo una de comparación (vbaVarTstEq), colocamos un breakpoint cada vez que se llame a esa función y ejecutamos otra vez el crackme. Introducimos un serial cualquiera y vemos donde para el Olly, es posible que ahí se haga la comparación entre nuestro serial y el válido asique comprobamos que se ha hecho algunas instrucciones antes. Vemos que hay muchas funciones para ver la fecha del sistema, quizá sea interesante. Colocamos con F2 algún breakpoint después de esas instrucciones y volvemos a ejecutar para tracear qué se hace con esa fecha. Vamos avanzando con F8 y nos damos cuenta de que justo antes de la comparación hace un PUSH EAX, traceamos en la pila EAX y vemos una cadena sospechosa y nuestro serial un poco más arriba. Además si nos fijamos esa cadena es el mes, el año, el dia, guión, la hora y los minutos en un formato concreto. Todo esto es suficiente para hacernos pensar que puede ser un serial válido asique lo probamos, teniendo cuidado de introducir bien el minuto y no estar demasiado lentos. Y sí, funciona! ya hemos crackeado el programa Cheesy.

Espero que a alguie le sirva de algo.

Un saludo.
Nanocity
#1042
Cita de: skapunky en 17 Septiembre 2007, 16:25 PM
... me gustaria que me dieseis vuestra opinión si os ha costado algo mas que el anterior, ya que he intentado hacerlo algo mas complejo, ...

Pienso que la dificultad está en la nag (para los más newbies) y activar el botón. Lo que se refiere a la ID/PASS pienso que sigue siendo muy sencillo. Por eso le he puesto dificultad 2.



Pienso que lo más difícil para cualquier Newbie es eliminar la nag. Si alguien después de darle mil vueltas no consigue eliminarla, que lo pida y le pasaré un tute con un ejemplo de un programa.

Para activar el botón en Crackmes / Tutoriales hay un enlace con un tutorial que hice para modificar programas, en donde pongo un ejemplo de cómo se hace.
#1043
Haremos una cosa...

Cuando alguien resuelva un crackme, que le envíe un mensaje privado al autor y éste como hizo en el anterior, si es correcto pondrá el nombre de los que lo han solucionado al inicio del post.

Después de un tiempo, uno de los que lo han solucionado podrá hacer el tutorial correspondiente que quedará en elhacker. Pondré un enlace a ese tutorial, y lo bloquearé para qu no se pueda modificar.
Todos estos crackmes tendrán su enlace aquí:
http://foro.elhacker.net/index.php/topic,180720.0.html

Así queda todo bien ordenado...
Sugerencias?

Un saludo
karmany
#1044
Ingeniería Inversa / Re: Taller de Cracking desde 0
18 Septiembre 2007, 22:05 PM
Del Código Máquina al Lenguaje Ensamblador

Realmente, ¿qué es lo que entiende un "ordenador"?
Como se ha dicho millones de veces: 0 (ceros) y  1 (unos) --> (bits)

El código o lenguaje máquina consta de cadenas de estos 0 y 1, que el microprocesador entiende directamente. Una y sólo una secuencia de estos 0 y 1 realizará una determinada operación.

Programar directamente en este sistema binario, como se puede uno imaginar, puede resultar muy muy duro y es muy fácil equivocarse.
Por este motivo, para facilitar la escritura de programas, podemos ayudarnos del lenguaje ensamblador (lenguaje de bajo nivel y el que vamos a conocer aquí.), el cual utiliza nemotécnicos (normalmente abreviaturas de palabras en inglés) que se utilizan para definir una determinada instrucción.

Por ejemplo:
ADD A, B. Se suma a A el valor de B y el resultado se guardaría en  (A).

Para los que recién empiezan, imaginemos estos valores de A y B:
A=3
B=2
por lo tanto, tras ADD A, B, nos quedaría:
A=5
B=2


En este punto, alguien podrá pensar:
-Bueno, escribir un programa en lenguaje ensamblador no es que sea tarea fácil, además existen muchos otros lenguajes de alto nivel que nos pueden facilitar enormemente las cosas a la hora de programar... entonces...
¿Por qué en ingeniería inversa hay que aprender lenguaje ensamblador?

Si abrieramos cualquier programa y echáramos una ojeada al código, observaríamos el lenguaje máquina, independientemente del lenguaje de programación con que haya sido programado (compilado). Es lógico, ya que como se ha explicado, es lo que el microprocesador entiende.
Sin embargo, entender esas secuencias de 0 y 1 que hacen realizar determinadas operaciones, es verdaderamente complicado, por este motivo existen muchos programas que a partir del lenguaje máquina obtienen el lenguaje ensamblador, que ya es mucho más entendible al ser humano. Estos programas se denominan desensambladores.

Entendido todo esto, vamos a dar los primeros pequeños pasos en ensamblador, del inglés Assembly.
#1045
Este tutorial ha sido realizado por karmany el 15 de julio de 2006 como solución al crackme1 de frankener1986. Descarga del crackme y más información en:
http://foro.elhacker.net/index.php/topic,180720.msg860578.html#msg860578


TUTE 'Crackme1 de frankener1986' por karmany

Programas utilizados:
   -OllyDBG
   -Numega SmartCheck 6.03.
   -Ultraedit


INTRODUCCIÓN
Al ejecutar el Crackme1 de frankener1986, vemos la siguiente interfaz:


Es decir, se trata de activar el botón Comprobar Serial, introducir un nombre, un serial y pulsar Comprobar Serial.
Quiero hacer algo sencillo y no es mi intención extenderme mucho... Si algo no se entiende, preguntarme en el foro.

QUITAR QUE RECONOZCA AL OLLY
Cuando abrí por primera vez el crackme con el Olly, apareció un messagebox de título: Je, je y que decía buen intento..
Analizando un poco el principio del código se ve claramente que el salto se produce en:
00402E72 --> JE Crackme1.00402F4B
Si salta no reconoce al olly, entonces le quito la comparación y le pongo un salto definitivo:
00402E72 --> JMP Crackme1.00402F4B
00402E77 --> NOP
Y solucionado lo del Olly.

ACTIVAR EL BOTÓN
En VB podemos desactivar el botón de dos formas: una por defecto al diseñar nuestra interfaz, en las propiedades y la otra forma es utilizando código al ejecutar el programa.
Cuando es por defecto, se puede buscar con el Olly por ej. el nombre del botón y unas líneas más abajo uno de los bits 00 se pone a 01 y el botón aparecerá activado: enabled true. Sé que esto así no se entiende, pero hacer lo que hice yo: hice un programa con un botón activado y otro con el botón desactivado y véis el código y modificáis.

En este crackme modifiqué todos los botones que vi (que hay más de uno, no sé si para despistar) y los puse activados. Pero no resultó, así que decidí abrir el programa Numega SmartCheck 6.03. (A partir de aquí NSC).
Abres el crackme con el NSC, lo ejecutas, pulsas en el + del hola_Load y se observa esto:


XDDDDDDDD.Enabled <- False (Boolean)
AQUÍ ESTÁ.. aquí en el Load del form es donde desactiva el botón.. y se ve también que pone "Comprobar Serial" un poco antes.

A la derecha podemos ver: CRACKME1ORIGINAL.EXE!000031F9
Lo de CRACKME1ORIGINAL se lo puse yo.
Bueno lo que interesa es el 31F9. Le sumamos el 400000 y queda:
4031F9 y esta es la dirección a la que voy a ir en el Olly:


Subo un poco para ver los PUSH (pone en la pila los valores) y se ve rápidamente cómo en:
004031E7 --> PUSH 0
Lo sustituyo por PUSH 1 y arreglado lo del botón..

Ahora lo que hice es crear un nuevo crackme donde no reconociera al Olly y donde estuviera activado el botón, para hacerlo todo más cómodamente, como he explicado en los dos apartados anteriores.. Utilizando para esto último el Ultraedit.

Crackearlo es fácil, pues buscando referencias llegamos rápidamente a "Enhorabuena, lo conseguiste etc...". Y de ahí solamente hay que mirar los cuatro saltos que hace el programa y modificarlos...

DESCIFRANDO LA cifrado
No lo he dicho antes pero con el NSC, se ven perfectamente las cadenas encriptadas...así que por este motivo decidí indagar desde el principio con el Olly...

Ejecuté el programa con el Olly, puse
nombre: abcd
serial: karmany
y pulsé en el botón "Comprobar serial" y caí aquí:
00403400
Analicé un poco el código y lo primero que encontré que me llamara la atención fue este código:


00403489 --> PUSH EAX
va a calcular el len de EAX, que es "abcd"

00403492 --> CMP EAX, 3
compara el len con 3

00403495 --> SETG CL
Activa un bit si es mayor..

004034B1 --> JE SHORT Crackme1.004034C5
Salta si el len del nombre es igual o menor que 3.

Es decir que el nombre tiene que tener más de 3 caracteres, y que la cifrado se hace en:
004034B7 --> CALL Crackme1.004038AO
voy a seguir esta CALL.

Me manda a dos subrutinas más y al final a una tercera que es donde lo hace todo:
004039E0 --> PUSH EBP
Este es el comienzo de la tercera subrutina..
Analizando el código llego a esto:


Donde se ve claramente un bucle.
SI toma el valor del len del nombre(lo hace un poco más arriba) y EAX=1. Cuando SI sea =0 saltará..
Este bucle lo que hace es poner el nombre al revés, es decir, abcd lo pone: dcba.
Lo puedes ver poniendo por ej. un BP en 00403BD9 y mira en EAX.

Después de esto hay una nueva llamada. Yo he entrado en ella y la he investigado. Esta llamada se repite también más abajo.
Después de probar también con varios nombres, llegué a la conclusión de que esta CALL lo que hace es codificar una cadena sumándole al valor hex. de un carácter un valor constante, y poner mediante otra call dentro de esta, el primero en mayúsculas, segundo minúsculas.. etc...
En el ej. que he puesto más abajo se entiende todo esto perfectamente.

Esta llamada es esta:
00403C1C --> CALL Crackme1.00403510
Puedes observar el resultado de esta primera CALL poniendo un BP en 00403C27 y mirando en EAX.
La cadena que utiliza es el nombre, al revés.
La constante es el len del nombre.
Me he fijado que aparecen dos cadenas dentro de esta CALL:
abcd
dcba
Después de descifrar todo ya me dí cuenta que la primera cadena abcd se le calcula el len y es la constante. La segunda cadena dcba es la que se utiliza para codificar.

Si el nombre es abcd el resultado que verás en EAX será: HgFe


Razonemos esto hasta aquí:
-Nombre: abcd
1º Le da la vuelta: dcba
2º Lo codifica sumándole el len a cada carácter:
d = 64 hex. + 4(len) = 68 que corresponde a --> h
c = 63 hex. + 4 = 67 --> g
b = 62 hex. + 4 = 66 --> f
a = 61 hex. + 4 = 65 --> e

3º Pone mayúsculas, minúsculas...
Resultado = HgFe

Continuemos...
Luego en 00403C39 Me despistó un montón el "abc". No tenía ni idea de para qué podría servir...

Y después viene otra vez la CALL Crackme1.00403510
Esta vez la constante que le suma es 3, no como antes len del nombre.
Y la cadena que utiliza es el nombre.
Me he fijado también esta vez que utiliza estas dos cadenas:
abc
abcd
Aquí me extrañé al comprobar que aparecía "abc".
(Como comento al final, y en la misma call de arriba, tras descifrar todo, supe que a la cadena abc se le calcula el len y es la constante, y la cadena abcd es la que se utiliza para codificar)

El resultado de esta segunda codificación se puede ver poniendo un BP en 00403CE5.
El resultado es DeFg.
Razonándolo igualmente:
-Nombre: abcd
1º Codifica sumándole 3.
    abcd --> defg
2º Pone mayúsculas, minúsculas.
    defg --> DeFg

Hasta aquí un resumen de lo que logré ver:
-Nombre: abcd
-Dos codificaciones: HgFe, DeFg
-Una cadena: abc

A partir de aquí, aparecen 4 saltos que nos mandan fuera del mensaje: "Enhorabuena, lo conseguiste..."
Entonces se trata únicamente de descifrar qué quieren decir esos saltos y así lograremos saber cómo codifica el serial...

Primer salto:
00403CE4 --> JNZ Crackme1.00403E59

Se ve claramente que en 00403C76 pone en pila el valor EAX, para calcularle el len.
En EAX se ve HgFe. El programa coge 4.
Después pone este 4 en memoria y seguidamente calcula el len a la cadena: DeFg. También 4.

Luego muy atentos, porque en:
00403C9A --> MOV DX, WORD PTR SS...
Lo que hace es poner en DX el valor del primer len que hemos cogido...el de HgFe que puso en memoria.
Es decir quedaría en DX el primer len y en AX el segundo len. Se entiende no?
Después en:
00403CA1 --> ADD DX,AX
Pone el DX la suma de los dos y en:
00403CAD --> ADD DX, 1
Le suma 1 a DX. El resultado de DX es por lo tanto: 9.

En este punto es donde me quedé un poco trabado.. Porque no sabía qué es lo que compara.. Sí, compara DX pero, con qué??
DX es el doble de caracteres del nombre más uno..
El problema es que no sé exactamente qué hace vbalenvar.
Aquí, frankener1986 sin quererlo me resolvió la duda, pero quise buscar la lógica.
Lo único lógico que se puede ocurrir en este momento es que el serial tenga de len=DX.
Es decir para abcd tendrá 9.. Así que volví a cambiar mi serial por: karmany12 y
Perfecto.. ya no salta.. eso era.

Segundo salto:
00403D84 JNZ Crackme1.00403E59
A primera vista se ve que utiliza la función Mid. A ver con qué...!!
Si haces un BP en la dirección 00403D1A, podrás observar que esa función Mid, lo que hace es coger los len(nombre) primeros caracteres del serial..
Ej. Nombre: abcd
      Serial:   karmany12
Cogerá : "karm"

La segunda función Mid, coge los últimos len(nombre) del serial. En este caso, lo puedes ver poniendo un BP en 0043D66. El resultado es:
"ny12"

Después en 00403D78 va a hacer una comparación de String.
Compara EAX con ECX.
Si pones un BP en 0043D78, verás que las cadenas que va a comparar son:
EAX --> "karm"
ECX --> "HgFe"
Es decir, va a comparar los cuatro primeros caracteres del serial con la primera codificación que hizo.. Eso quiere decir que mi serial karmany12 no es correcto.. Reinicio el programa pero esta vez pongo:
Nombre: abcd
Serial:    HgFeany12

Compruebo y veo que no salta!! :-). Vamos bien..

Tercer salto:
00403D96 --> JNZ Crackme1.00403E59

Muy sencillo igual.. La comparación la va a hacer entre los dos valores que ponemos en la pila: PUSH EDX y PUSH EAX.
Si ponemos un BP en 00403D92, podemos ver estos valores en la pila:
DeFg
ny12
Es decir, compara los últimos len(nombre) del serial con la segunda codificación..
Pues voy a probar de nuevo:
Nombre: abcd
Serial:    HgFeaDeFg

Pruebo y... no salta.. sigue la cosa bien, y ya solo queda un salto..

Cuarto y último salto:
Bueno, viendo el resultado del serial y viendo que el len del serial es doble más uno, lo único que se me ocurre es que este salto es para averiguar el carácter que va en medio del serial..
Repasé una y mil veces el código intentando ver  algo que me diera alguna solución, y no encontré nada... ya sólo me quedaba este último paso que es lo que puse en el foro que me quedaba...

Así que, como no sabía qué hacer hice un programa en VB y comparé un carácter utilizando la función Mid..
El programa se basa en un formulario, con un Textbox y un botón. Al pulsar el botón puse este código:

Private Sub Command1_Click()
Dim a As String
a = Text1.Text
a = Mid(a, 2, 1)
If a = "u" Then Stop
End Sub


Sencillo, muy sencillo. Escribo algo en el textbox y si el segundo carácter es una u, se detiene con un stop.
Me fui al Olly y empecé a ver dónde comparaba y dónde aparecía la "u" y por supuesto que la encontré..
Aparece cuando el programa intenta leer un valor en la memoria del programa..
Por ej. cuando pone en la pila el valor:
PUSH Proyecto1.004017D8

Para confirmarlo dumpeé la dirección 004017D8 y modifiqué la u por otra letra y el resultado fue perfecto.

Volví al crackme, e intenté ahora sí buscar dónde lee algún valor en su memoria y el único que hay es este:
00403DDF --> MOV DWORD PTR SS:[EBP-AC], Crackme1.00402930
Dumpeé esa dirección (00402930) y encontré: 2D que corresponde al carácter "-".
Por supuesto lo modifiqué para comprobarlo y fue perfecto..


Con todo esto que acabo de explicar ahora ya es muy fácil hacer el keygen..

PD. Volviendo a leer mi tute, me dije... y qué era esa cadena que había por ahí (abc)??
Viendo la solución parece que no valiera para nada!! Como expliqué más arriba en la segunda codificación la hace sumando 3 que es el len de abc!! Me lo confirmó frankener1986.

Espero que a alguien le sirva de ayuda todo esto...ya que yo lo poco que sé lo he aprendido de leer tutoriales de otras personas..y por supuesto de poner en práctica la lógica..

Un saludo..
#1046
Ingeniería Inversa / Crackmes / Tutoriales
16 Septiembre 2007, 13:33 PM
Crackmes / Tutoriales

En este post se irán añadiendo ordenadamente los enlaces a los distintos crackmes o tutoriales que propongan los usuarios de elhacker.
Los crackmes constarán de tres enlaces: Descarga del crackme,  post original y tutorial con la solución.
Si fallara la descarga, me he guardado una copia de todos los crackmes de este post. No dudar en pedirme cualquiera, que lo volveré a subir.

ROJO: Crackme todavía sin resolver
AMARILLO: Crackme resuelto por algún forero pero todavía pendiente de realizar el tutorial.
VERDE: Crackme resuelto con tutorial incluido.


TUTORIAL: modificar programas
Autor: karmany
Tutorial bastante completo donde se explica principalmente cómo modificar los recursos de un programa. Si estás buscando cómo modificar la interfaz, menús, cadenas de texto, habilitar algún control o modificar sus propiedades y un largo etc.., debes visitar este enlace.
Hay bastantes ejemplos y en distintos lenguajes de programación.
http://foro.elhacker.net/index.php/topic,134513.0.html




CRACKME:  Crackme1 de frankener1986
Autor: frankener1986
Nombre: Crackme1
Fecha: 12 de julio de 2006
Tamaño: 28,0 KB
Compilador y/o Packer: Visual Basic
Objetivos:
   1º parchearlo para encender el boton
   2º encontrar la serial para un nombre, o ir al paso tres directamente xDD
   3º hacer un keygen ^^
Dificultad: 3 (1-10)
Descarga del crackme:
De momento lo descargaremos de aquí, es el crackme1.zip:
http://ricardonarvaja.info/WEB/CONCURSOS%202004-2006/CONCURSO%2095/CONCURSO%2095.rar
Post Original:
http://foro.elhacker.net/index.php/topic,131302.0.html
Tutorial con la solución:
Tutorial hecho por karmany el 15 de julio de 2006
http://foro.elhacker.net/index.php/topic,180728.0.html





CRACKME:  Crackme1 por Nitr0k1ller
Autor: Nitr0k1ller
Nombre: Crackme1
Fecha: 18 de agosto de 2007
Tamaño: 52,0 KB
Compilador y/o Packer: Visual Basic
Objetivos:
    1- Activar un botón
    2- Encontrar un serial válido.
Dificultad: 2 (1-10).
Descarga del crackme:
https://mega.nz/#!HtBiAbqa!eReYrnW3UhG9J2MXtsREEu_wRwjYGdsV7qy7wwCpbJc
Contraseña del archivo zip: elhacker.net
Post Original:
http://foro.elhacker.net/index.php/topic,174863.0.html
(5ª respuesta)
Tutorial con la solución:
Tutorial realizado por Nanocity el 17 de agosto de 2007
http://foro.elhacker.net/index.php/topic,181144.0.html
Tutorial realizado por .:UND3R:.
http://foro.elhacker.net/ingenieria_inversa/tutorialcrackme1_por_nitr0k1ller-t337915.0.html






CRACKME:  Renascense de skapunky
Autor: skapunky
Nombre: Renascense 1
Fecha: 13 de septiembre de 2007
Tamaño: 80,0 KB
Compilador y/o Packer: Visual Basic
Objetivos:
    Encontrar un ID/pass válidos
Dificultad: 1 (1-10) Para todo Newbie
Descarga del crackme:
https://mega.nz/#!L1AHVTjI!dMtiEw8cQJZSDVqIOouBqMcbZXthyGZ4GBIo2353tmw
Contraseña del archivo zip: elhacker.net

http://www.crackmes.de/users/skapunky/renascense_crackme/
Post Original:
http://foro.elhacker.net/index.php/topic,180354.0.html
Tutorial con la solución:
Tutorial realizado el día 20 de septiembre de 2007 por el mismo autor. (Por esta vez lo vamos a permitir...)
http://foro.elhacker.net/index.php/topic,181151.msg862539.html#msg862539





CRACKME:  Skrackme 1 de skapunky
Autor: skapunky
Nombre: Skrackme 1
Fecha: 18 de septiembre de 2007
Tamaño: 32,0 KB
Compilador y/o Packer: Visual Basic
Objetivos:
    1- Eliminar una nag
    2- Activar un botón
    3- Encontrar un ID/pass válidos
Dificultad: 2 (1-10). La mayor dificultad es eliminar la nag. Cualquier duda, preguntar en el post original.
Descarga del crackme:
http://www.megaupload.com/?d=TECBE0N9
Post Original:
http://foro.elhacker.net/index.php/topic,180834.0.html
Tutorial con la solución:
Tutorial realizado por .:UND3R:.
http://foro.elhacker.net/ingenieria_inversa/tutorial_skrackme1-t335509.0.html






CRACKME:  Crack Me If You Can by Karman
TUTORIAL PENDIENTE          -          TUTORIAL PENDIENTE          -          TUTORIAL PENDIENTE          -          TUTORIAL PENDIENTE          -          TUTORIAL PENDIENTE          -          TUTORIAL PENDIENTEAutor: Karman
Nombre: Crack Me If You Can
Fecha: 24 de septiembre de 2007
Tamaño: 32,3 KB
Compilador y/o Packer: Dev-C++
Objetivos:
    Usuario-clave a partir de un serial
Dificultad: 3/4 (1-10) - Crackme curioso, no para recién iniciados, en donde para encontrar la clave correcta hay que analizar antes el código. Como todo... tiene su truco.
Descarga del crackme:
http://h1.ripway.com/karman/Files/crackme.rar
Post Original:
http://foro.elhacker.net/index.php/topic,181724.0.html
Tutorial con la solución:
Pendiente de hacer el tutorial.






CRACKME:  CraCKmE - Molesto por <~>FeRcHu<~>
Autor: <~>FeRcHu<~>
Nombre: CraCKmE - Molesto
Fecha: 04 de octubre de 2007
Tamaño: 20 KB
Compilador y/o Packer: Visual Basic
Objetivos:
    1º Conseguir user-pass (nombre-contraseña)
Dificultad: 2/3 (1-10)
Descarga del crackme:
http://www.gigasize.com/get.php?d=p8dg3hk0bjb
Post Original:
http://foro.elhacker.net/index.php/topic,182810.0.html
Tutorial con la solución:
El miniTutorial ha sido realizado por x4uth el 07 de octubre de 2007, está en el mismo post:
http://foro.elhacker.net/index.php/topic,182810.0.html






CRACKME:  CrackMe04 by x4uth
Autor: x4uth
Nombre: CrackMe04
Fecha: 08 de octubre de 2007
Tamaño: 284 KB
Compilador y/o Packer: Visual C++ 2005
Objetivos:
    Conseguir una combinación user/keycode válida
Dificultad: 4 (1-10) Un buen crackme para usuarios avanzados.
Descarga del crackme:
http://upload2.net/page/download/79CCTbxsbWBB6q1/CrackMe04.rar.html
Post Original:
http://foro.elhacker.net/index.php/topic,183308.0.html
Tutorial con la solución:
Tutorial realizado por karmany el 10 de noviembre de 2007.
http://foro.elhacker.net/index.php/topic,187779.0.html






CRACKME:       Crackmes 1 y 2

Autor: ^STR|DER^
Nombre: CrackMe#1 y CrackME#2
Fecha: 18 de octubre de 2007 (23 de mayo de 2006 en el enlace)
Tamaño: 9,50 KB y 12,0 KB
Compilador y/o Packer: Visual Basic 5
Objetivos:
    1.- Introducir una Contraseña de acceso
    2.- Número Clave - Contraseña de acceso
Dificultad:
    1.- 0 (1-10) Es tan sencillo que todo el mundo tendría que echarle un vistazo.
    2.- 1/2 (1-10) Es muy sencillo pero trabaja con variables Doubles que hacen utilizar los registros ST0-ST7 y puede despistar un poco.
Descarga de los 2 crackmes:
http://s7r1d3r.blogcindario.com/2006/05/00008-crackme.html
Post Original:
http://foro.elhacker.net/index.php/topic,184596.0.html
Tutorial con la solución:
Crackme#1: Solucionado por sempus y Vingilot el día 23-24 de diciembre de 2007, en el mismo post original.
Crackme#2: Solucionado por JSHN el día 17 de octubre de 2008:
http://foro.elhacker.net/ingenieria_inversa/resuelto_el_crackme2_de_strder-t231760.0.html;msg1149370#new





TUTORIAL: Mis trece tutoriales por AmeRiK@nO
Autor: AmeRiK@nO
Trece interesantes tutoriales, que explican de forma clara y sencilla cómo el autor ha conseguido vencer las limitaciones de varios programas.
PostOriginal:
http://foro.elhacker.net/index.php/topic,186599.0.html
Descarga (doc):
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/942-Trece%20Tutoriales_AmeRiK@nO_(.doc).rar



#1047
Claro, porque estás intentando acceder a una librería que tu programa todavía no ha cargado con Import Table. Me imagino que estás intentando acceder a MessageBoxA en user32.dll..

Carga primero la librería user32.dll.

PD. Por cierto, es posible que si pones una dirección fija (7E3D058A) sólo funcione bien en tu ordenador.

Editado después:
Y llamas mal a la API: Sólo con que pongas Call EAX ya compilará bien.

Éste código te funcionará bien:
.386
.model flat, stdcall



include kernel32.inc
includelib kernel32.lib

.stack
.data
txt db "owned you", 0
cap db "p**a", 0
librery db "user32.dll", 0

.code
Inicio:
          invoke LoadLibrary, addr librery
  push 00h
          push offset cap
          push offset txt
          push 00h
          mov eax, 7e3d058ah
          call eax
          pop eax
          pop ebx
          leave
          ret
         
end Inicio
#1048
Gracias por la aportación skapunky.
A ver si en un tiempo junto con Shadow, conseguimos tener el foro un poco más ordenado. La idea es que estos crackmes no se pierdan con el tiempo, que la gente que se inicia se anime a resolverlos y que en un tiempo alguien pueda hacer un simple tute...para que la gente que aún así tiene dudas, sepa resolverlo.

Editado: Es muy fácil, a ver si se anima algún iniciado
#1049
Hilo actualizado el día: 10 de mayo de 2013

CrackSLatinos:
Gran Grupo dedicado al arte de la Ingeniería Inversa.  Se habla lengua hispana y actualmente está en continuo desarrollo. Yo particularmente aprendí aquí todo lo que sé.
Google Groups:
http://groups.google.com/group/CrackSLatinoS


Ricardo Narvaja:
Él mismo se presenta:
http://ricardonarvaja.info/#QUIENES
Autor de "Introducción al cracking con OllyDBG desde cero", cuya lectura es indispensable para toda persona. Su página contiene muchísima información, es de obligada visita.
Páginas:
http://ricardonarvaja.info/
http://ricardonarvaja.googlepages.com/


NoxSoft
Excelente página sobre el arte de la ingeniería inversa, actualizada periódicamente y con nuevos y originales artículos que no debes perderte.
http://www.noxsoft.net/


karmany.NET
Una web, donde se puede hablar de lo que quieras: de ingeniería inversa, protección de software, programación (software y web), opinión personal y cualquier cosa etc...
Enlace:
http://www.karmany.net


Karpoff:
Página actualmente desactualizada y cerrada que hace unos años tuvo muchísimo éxito. Fue una página con un grandísimo número de visitas. Gracias a personas que no quieren que quede en el olvido podemos acceder a parte de su contenido de entonces:
http://karpoff.galeon.com/


yashira.org:
Página interesante con descargas de herramientas, tutoriales etc... y foro.
http://www.yashira.org/


crackmes.de:
Sitio cerrado temporalmente.
Los usuarios realizan crackmes y cuando alguien lo resuelve realiza un tute en inglés que se pondrá junto al crackme resuelto. Hay muchísimos crackmes y tutoriales en inglés. Intenta resolver alguno...
http://www.crackmes.de/


ARTem:
Una página en inglés con muy buena información y tutoriales. Muy buen material.
http://www.accessroot.com/arteam/forums/index.php
En este enlace que encontré de casualidad, podemos acceder a todas sus herramientas, tutoriales... etc:
http://xchg.info/ARTeam/Tutorials/


quequero.org:
Página Italiana sobre cracking con bastante material. Se preocupan y está actualizada a día de hoy.
http://quequero.org/

kania.evilgirls.net:
Aunque desactualizada, página con bastantes herramientas, algunas difíciles de conseguir, y algunos tutoriales. ESET lo cataloga como sitio no seguro.
http://kania.evilgirls.net/inversa/index.html


darkfall.demon.co.uk:
Página en inglés sobre cracking. Creo que no se actualiza desde 2004.
http://www.darkfall.demon.co.uk/fallen/crack/index.htm


exetools.com:
Página con bastante material, en inglés. Última actualización: 17-agosto-2002
http://www.exetools.com/index.htm


sleepersbrains.com:
Actualmente está caida. Saccopharynx's es un fuera de serie.
Interesantísima página. Digo lo de interesantísima porque en ella  Saccopharynx's (admiro verdaderamente sus tutes) nos enseña el mundo del anillo0 (ring0). Un tema muy difícil. Lástima que los últimos tutoriales sean en inglés.
Tiene también otros muy buenos sobre cracking, destacando el inline patching a un armadillo. Muy bueno.
Saccopharynx's y Shoulck hicieron hace unos años un difícil crackme basado si no me equivoco en un driver que todavía sigue sin tener su merecido tutorial, por si alguien se anima.
http://ricardonarvaja.info/WEB/OTROS/TUTES%20SACCOPHARYNX/

Nota (Shaddy): Pensaba que no estaba y la iba a poner, incido en ésta página porque Saccopharynx es un cracker al que respeto muchisimo, y al que admiro verdaderamente. Creo que es una fuente muy importante de conocimientos, algo increíble.


Mr Silver:
El día 09 septiembre de 2001 dijo adiós a la ingeniería inversa para "dedicar su tiempo a recuperar su vida", como él mismo dice. Dejó unos fantásticos tutoriales que antes de que desaparezcan hay que guardar. También habla sobre ring0. Lástima pero su página no funciona y he tenido que borrar el link. Me gustaría que quedara aquí por todo lo que contribuyó.


elhacker - Curso de cracking por ratón:
Hace unos años "ratón" hizo unos tutoriales interesantes sobre ingeniería inversa. Con el paso del tiempo son difíciles de conseguir, así que el-brujo los subió a elhacker para compartirlos.
Este es el enlace de material sobre ingeniería inversa en elhacker.
http://www.elhacker.net/hacking-programas-hack.htm#crackmes


Foro hackhispano.com:
Foro de ingeniería inversa en hackhispano.com.
http://foro.hackhispano.com/f9/


The Decompilation Page:
Una página curiosa que habla sobre descompiladores para distintos lenguajes.
http://www.program-transformation.org/Transform/DeCompilation


RDG Packer Detector - RDG Tejon Crypter:
Esta es la página web del archiconocido programa RDG Packer Detector del autor  RDGMax. Un programa indispensable, actualizado y muy fiable.
Como este programa usa una protección particular, muchos antivirus dan falso positivo.
Enlace RDG Packer Detector:
http://www.rdgsoft.net/


Tuts4You:
Página en inglés muy interesante con bastante información y herramientas. Es una de las webs sobre ingeniería inversa que más viva está.
http://www.tuts4you.com


VXCHAOS FILE SERVER
Buenísima página con muchísimo material, creo que a nivel de contenido es la más extensa que se conoce.
http://vxchaos.6x.to/
(Enlace a veces disponible, otras no)


reversengineering
Página en inglés. Destaco la gran cantidad de OllyDBG modificados que podemos descargar. Las descargas por contra, son de Rapishare.
http://reversengineering.wordpress.com/


RCE Forums
Interesante página en Inglés. Los enlaces corresponden al foro de OllyDBG y plugins.
Podemos descargar plugins para OllyDBG muy bien ordenados y actualizados.
Foro:
http://www.woodmann.com/forum/forumdisplay.php?f=37
Plugins OllyDBG:
http://www.woodmann.com/forum/forumdisplay.php?f=38


BeatriX - Reverse Engineering
Gran página francesa de Ingeniería Inversa. BeatriX, autor de la misma, nos deleita con unos fantásticos tutoriales y ejemplos muy bien explicados. Toca también temas de ring0. Tienen foro y distintos enlaces:
http://beatrix2004.free.fr/index.html


Web de Stomper
Made in Spain. Tiene información bastante desactualizada.
http://www.angelfire.com/de2/Stomper/index.htm


Página de Alan Moreno
Página del peruano ^A|An M0r3N0^. Tiene muy buena información.
Nuevo enlace, gracias a apuromafo y Иōҳ:
http://apuro.net23.net/alanm/


ech2004
Excelentísima página con muchísima información y material. Es un lugar de obligada visita. Además en español y el autor/es se preocupan de tenerla bien actualizada. Una de mis preferidas.
http://www.ech2004.net/


La página de Erwin
Ésta página es una de las que puedes sacar muchos frutos, tiene una información muy completa y unos trabajos muy laboriosos, desde luego un gran tipo.
http://erwin.ried.cl/


nodongle.biz (mochilas-dongles-llaves USB)
Actualmente, y cada día más, los softwares comerciales prefieren proteger sus aplicaciones con dongles (mochilas). A veces, teniendo incluso la licencia lícita, nos encontramos con problemas a la hora de ejecutar dichas aplicaciones en otros ordenadores, ya que necesitamos de la mochila para poder ejecutarlas.
Esta página, muy interesante, tiene distintos programas para intentar emular dichas dongles.
http://nodongle.biz/


WASM.RU
Página en ruso con bastante información. Tendréis que traducir la página para entender algo... :-P
http://www.wasm.ru/


Página web de Colin Wilson's
Buena página de Colin Wilson donde podemos encontrar componentes gratuitos para Delphi:
http://www.wilsonc.demon.co.uk/index.htm

Dicho autor es también el creador del fantástico programa editor de recursos: XN Resource Editor que podemos descargar del siguiente enlace, incluído el código fuente:
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm
http://www.wilsonc.demon.co.uk/index.htm


CrRaCkInGlAnDiA
Página web de +NCR/CRC! [ReVeRsEr]. Tiene muy buena información sobre ingeniería inversa. Me ha hecho ilusión ver que está actualizada:
http://crackinglandia.blogspot.com/


Página web de stzwei
Página web de stzwei, CrackSLatinoS.
Tiene muchísimos tutoriales propios y de muy buen nivel. Un gran "ingeniero inverso" del que se puede aprender muchísimo:
http://stzwei.comze.com/


NTCore's Homepage
Muy buena página que contiene distintos programas gratuitos enfocados a la ingeniería inversa en NET.
Destaco el programa CFF Explorer que es "en principio" un editor de encabezado (editor de PE header) pero tiene la particularidad de que es capaz de leer en el PE header lo concerniente a programas en NET.
http://www.ntcore.com/index.php


ClS | AbsshA [Reverse Engineering]
Página de ingeniería inversa, análisis de malware, Vulnerabilidades y Exploits (creación), retos, etc... en castellano. Poco a poco actualizándose, incluye todos los tutoriales de AbsshA.
Su página web:
http://abssha.blogspot.com


Mirror página Karpoff
Como ya se ha comentado, hace unos años exístía una página con mucho material relacionado con la ingeniería inversa. Gracias a foreros como ojady podemos disfrutar de toda esa información.
Su página web:
http://www.mirrorkarpoffespanishtutor.comxa.com/


Protector y Crytor de Yoda
Yoda es un excelente programador y cracker. Dejó muchísimas utilidades que a día de hoy son muy útiles, simplemente con nombrar el programa LordPE sobra. Mucha gente está interesada en crear sus propios packers y en este enlace se pueden descargar los packers que creó Yoda con su código fuente.
Yoda parece ser que dejó todo este mundo aparcado porque no ha sido visto por este mundo...
Enlace packers:
http://yodap.sourceforge.net/


Página de sequeyo
Un excelente CrackSLatino que nos obsequia con unos tutoriales propios que no tienen desperdicio. Trata en bastantes tutoriales el tema NET.
Enlace:
http://www40.brinkster.com/sequeyo/PaginaSequeyo/index.htm


La Web de Guan de Dio
Otra persona archiconocida en el mundo de la ingeniería inversa que cada vez que saca algo nuevo nos facilita enormemente las cosas.
http://guandedio.no-ip.org/
http://guandedio.reversingcode.com/

P32Dasm VB5/VB6 PCode Decompiler
P32Dasm es un excelente descompilador para Visual Basic 5 y 6. Es una buena herramienta sobre todo para compilados en p-code. Tiene incluso un plugin para IDA.
http://progress-tools.x10.mx/p32dasm.html


Hay muchos enlaces para elegir, esperamos que los disfrutéis.
#1050
Viendo que a día de hoy, el foro de ingeniería inversa está algo desordenado, desactualizado y sin una idea clara, ShadowDark y yo solicitamos hace un tiempo, poder moderar el mismo e intentar ordenar todo este desbarajuste.

Por este motivo, estamos analizando cómo estructurarlo y en breve y poco a poco será modificado, actualizado y ordenado.

Por mi parte espero cualquier comentario, sugerencia o crítica.

Un saludo.
karmany