elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6 7 8 9 10
31  Programación / Ingeniería Inversa / Easy Serialme by MadAntrax en: 26 Agosto 2013, 21:48 pm
Buenas a todos (de nuevo)

Os dejo otra de mis creaciones para que podáis practicar, jugar, destripar y aprender. Ésta vez os dejo una versión modificada de mi ultimo crackme, se trata de un sencillo serialme o keygenme. Se ha añadido una pequeña comprobación anti-debug y un pequeño packer bastante conocido.



  • No se puede parchear
  • Hay que encontrar un serial válido a partir de un username
  • Se puede programar un Keygen si lo deseas

El método anti-debug es conocido y sencillo, incluso con plugins de Ollydbg podrás saltarlo sin problemas.
La compresión (packer) usado también es sencillo y bastante conocido. No obstante si no logras desempackar el ejecutable te puedo postear una versión "normal" para que trabajes el algoritmo directamente
La rutina principal del serialme no utiliza las funciones típicas de MSVBVM60.DLL (rtcMsgBox, .__vbaStrCmp, etc).

Podéis usar el hilo para postear info si lo deseáis, disfrutad: http://www.mediafire.com/?yvr756x7x44nm4b
32  Programación / Ingeniería Inversa / Crackme: Easycrackme by MadAntrax en: 24 Agosto 2013, 18:27 pm
Hola a todos

Después de unos aburridos días de Agosto, he decidido programar un nuevo crackme para la gente del foro, se llama easycrackme



  • Autor: MadAntrax
  • Tipo: Keygen Me
  • Packed: NO
  • Programado: VB6 (Native + P-Code + ActiveX DLL)
  • Protección: Ofuscación de Strings

No se hacen referencias a __vbaStrCmp ni MSVBVM60.rtcMsgBox :)

INSTRUCCIONES PARA QUE EL CRACKME FUNCIONE

Como has podido observar, el crackme tiene un fichero DLL llamado madantrax.dll, para que funcione todo correctamente hay que registrar la DLL en el sistema, sigue los siguientes pasos:

  • Descomprimir el crackme
  • Copiar en fichero madantrax.dll en la carpeta C:\
  • Ejecuta una ventana de comandos CMD
  • Ejecuta el comando regsvr32 C:\madantrax.dll



Es una DLL ActiveX de VB6 y se tiene que registrar en el sistema para poder utilizarla. A partir de ahí podréis ejecutar el easycrackme.exe sin problemas.

El crackme es muy sencillo, tienes que encontrar el serial code correcto que se corresponde el hardware fingerprint generado.

No se puede parchear

Para lograr susperar el crackme necesitas encontrar el serial code correcto. Si lo consigues puedes programar un keygen. Si no sabes programar un keygen o no tienes tiempo, envíame tu fingerprint y el código correcto. Si puedes escribe un tutorial explicando como resolviste el crackme.

http://www.mediafire.com/?jb1idzxb2268qe2
33  Programación / Ingeniería Inversa / Como comprobar si mi código asm ha cambiado? en: 27 Febrero 2013, 12:03 pm
Hola, vengo con una pregunta un tanto rara.

Me gustaría saber, si existe alguna forma para comprobar X offsets de un ejecutable.

Es decir, un programa que se auto-desensamble y compruebe si parte de su código ha sido modificado o no (una simple comprobación CRC de un array de bytes o comprobar byte por byte, por ejemplo)

Supongamos que conozco exactamente el offset de mi ejecutable que contiene un salto condicional crítico. Dicho offset debería tener un JE, ejemplo:

013B1CE5  74 0C         JE SHORT Bioshock.013B1CF3

Que API's debería utilizar para leer el offset 013B1CE5 y comprobar si tiene el byte 74 o 75?

Digamos que la comprobación no la quiero hacer en el propio ejecutable, si no cuando está ejecutándose (en memoria).

34  Programación / Programación Visual Basic / [Source] Efectos para una bonita interfaz GUI en: 21 Febrero 2013, 15:58 pm
Hola a todos

Desde hace un tiempo estoy dedicado a la creación de crack's, kaygen's, trainers y demás utilidades. Dichas utilidades se suelen diseñar con una interfaz gráfica algo trabajada y particular, añadiendo música, colores y efectos.



Os dejo un ejemplo propio, es un trainer para un videojuego, cosas a destacar:

- GUI sin controles
- El formulario se puede mover usando drag-drop en cualquier zona de la ventana
- Uso de hotkey's para controlar el trainer (telcas F1, F2, F3 y ESC)
- Efecto starfield durante la ejecución del programa
- Efecto de "maximizado" al iniciar el programa
- Música de fondo, hay 10 canciones distintas que suenan de forma random
- Formulario que muestra un scrolltext de un fichero NFO con fadein de colores

F1: Play / Pause música
F2: Cambio de canción (hay 10 en total)
F3: Muestra el scrolltext NFO con colorines
ESC: Cierra el programa
_________________________________________

El source lo he intentado comentar lo máximo. Los efectos de starfield y scrolltext NFO son sacados de pscode.com. El trainer y los demás efectos son propios.

http://www.mediafire.com/?2au6h8cmnikalrl
35  Programación / Ingeniería Inversa / [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 1 Febrero 2013, 11:46 am
Hola a todos, os traigo un completo tutorial para que aprendáis a utilizar Cheat Engine (a partir de ahora CE). Algunos quizás conozcan ésta herramienta para hacer trampas en algunos juegos, lo que a lo mejor no sabían es que es una herramienta MUY completa, con un debbuger genial, comparador de estructuras e inyección de código.

Para enseñar como funciona CE, he programado una especia de "video juego" en VB6. Lo he programado especialmente para éste tutorial, así que no esperéis que sea un juego divertido, jajaja.


DESCARGA EL JUEGO: http://www.mediafire.com/?ucuhy8ebun71s8j
DESCARGAR CHEAT ENGINE 6.2: http://cheatengine.org/

El juego es muy sencillo y he añadido las típicas características que podéis encontrar en el 90% de los juegos actuales: Tiempo, Vida o Magia, Objetos en un inventario, etc...

Nuestro objetivo será aprender a usar CE de forma básica para modificar la memoria de un proceso. Cuando tengáis algo de soltura, os enseñaré a inyectar código en un juego para conseguir mejores "trucos". Os iré enseñando paso por paso con capturas de pantalla lo que debéis hacer.

1. Primero abrimos el juego y cargamos la partida, a la derecha tendréis vuestra salud y magia, así como el tiempo del juego. A la izquierda vuestra mochila de objetos (vacía) y abajo los controles del juego. En la parte central aparecen los eventos, a modo de información.

2. Abrimos CE y pulsamos el primer botón situado en la esquina superior izquierda, es para abrir el proceso que queremos debuggear o trucar. Está remarcado con un recuadro coloreado.


2. Ahora aparece una ventanita mostrando los procesos en ejecución, por norma general, los procesos abiertos en último lugar a parecen al final del listado. Buscamos el nombre del juego y hacemos doble-click (OPEN)


3. Ahora ya tenemos el proceso abierto, volvemos al juego y empezaremos a "trucar". Nos vamos a centrar en el tiempo. Abajo tienes un botón para poder pausar el juego, esto facilita un poco las cosas. Pulsamos pausa y miramos que valor tenemos en el tiempo, en mi caso lo he pausado en 81


4. Vamos a la ventana del CE, en la parte central hay 3 recuadros, son los más importantes y ahí especificaremos la búsqueda que queremos realizar. Empezaremos poniendo:

Value: 81
Scan Type: Exact Value
Value Type: All

En "Value" ponemos el valor de la variable que queremos modificar/trucar. En mi caso es 81, ya que es el valor que hay en el juego. Como he puesto pausa, el tiempo no decrece y por eso es más fácil buscarlo.

En "Scan Type" ponemos "Exact Value", ya que en mi caso conocemos el valor exacto que queremos buscar (81). Si por casualidad quisieramos buscar un valor desconocido usaríamos "Unknow initial value" (este ejemplo lo veremos al hackear la saludo o maná del jugador, más adelante)

En "Value Type" ponemos "All". Normalmente el 90% de los juegos usan variables de tipo 4-byte, es lo más común, pero en mi juego de ejemplo, las variables son de 2-byte. Por eso, si tienes dudas y no sabes que valor tiene una variable, lo mejor es poner All y CE buscará todas las posibilidades.

Pulsamos el botón FIRST SCAN


CE hará una búsqueda muy rápida y me mostrará TODAS LAS DIRECCIONES DE MEMORIA que contengan en valor exacto 81, en mi caso han salido 438 direcciones. Que significa eso?

Esas 438 direcciones contienen el valor 81 en su interior, lo que significa que 1 de esas 438 será la dirección encargada de almacenar el tiempo del juego. La verdad que 438 son demasiadas así que deberíamos reducir ese número, como lo hacemos? Muy fácil.

1. Quita la pausa en el juego y deja que el valor siga decreciendo, en mi caso dejo que llegue hasta 79 y pulso de nuevo pausa para dejarlo ahí quieto.

2. Volvemos al CE (sin cerrar nada) y cambiamos los valores:

Value: Quitamos el 81 y ponemos 79 (en tu caso por el valor que salga en tu pantalla)
Scan Type: Exact Value (Al ser un número conocido, ponemos un valor exacto)
Value type: All

Y ahora pulsamos el segundo botón que pone: NEXT SCAN. Ojo y no pulses NEW SCAN, ya que borrarías las anteriores 438 direcciones encontradas y tendrías que empezar de nuevo:


En mi caso CE ha devuelto solo 2 direcciones encontradas

60EAFC:1
60EAFC:2


Los número de :1 y :2 significan el tipo de dirección, es decir de 1-byte y de 2-byte. Si nos fijamos es la misma dirección de memoria solo que nos da la posibilidad de trabajar con 1-byte o 2-bytes. Hacemos doble click sobre 60EAFC:2 para mandar la dirección encontrada a la parte inferior.


Ahora que tenemos la dirección en la parte inferior hacemos doble click en su valor, se nos abrirá una ventanita donde podemos cambiar el valor de la dirección, ponemos 99 y damos aceptar. Hacemos lo mismo en la descripción y ponemos la palabra "TIEMPO" (ésto es solo a nivel interno y nos ayudará a ser más ordenados). Por ultimo marcamos la casilla. Lo que hace esta casilla es forzar a que esa dirección contenga SIEMPRE ese valor:


Así es como debería quedar, ahora vuelve al juego y quita la pausa, verás como el tiempo ya no decrece, se queda congelado en un mismo valor. Posiblemente te aparezca 98, eso es debido a que el juego coge el valor (99) le resta -1 y lo muestra, pero CE vuelve a escribir 99 consiguiendo un Cheat/Truco de tiempo ilimitado :D

=========================================

Bueno, hasta aquí la primera lección, es lo más fácil y sencillo de CE, supongo que la mayoría ya domináis éste tipo de función. Si veo que el hilo ha tenido buena aceptación me animaré a hacer las siguientes partes:

1. Uso básico de CE
1.1 Buscar una variable y modificar el valor/frezee
1.2 Buscar una variable de valor desconocido
1.3 Buscar una variable de valor desconocido (difícil)
2. Inyección de código
3. Creación de un trainer
4. Comparar estructuras

Por el momento hemos llegado al 1.1 :D Prueba de realizar este sencillo tutorial y comenta en el hilo como te ha ido, si tienes problemas o dudas. Para los más animados, os podéis avanzar e intentar trucar vuestra salud/vida, haciendo que la barra roja no decrezca. Os dejo una pista: Trabajar con Unknow initial value y usar los tipos Decreased value o Increased. Si no os sale no pasa nada, ya que lo explicaré en la próxima lección :D
36  Programación / Ingeniería Inversa / [Tutorial] Programar un patcher/crack con estilo en: 20 Enero 2013, 22:16 pm
Bueno, la idea de éste hilo es poder crear un patcher/crack para una aplicación, dando un toque profesional como hacen los principales teams de cracking. Como algunos ya sabréis, yo programo en VB6, así que el ejemplo que os traigo es en dicho lenguaje. El proyecto se puede usar también para hacer un keygen.

Éste Patcher/Crack tiene lo siguiente:

- Custom GUI fuera de lo normal
- Fondo psicodélico efecto rainbow
- Música chiptune de 8-bits (hay 10 distintas)
- Scrolltext al pulsar el botón [?]
- Se puede cambiar la música a gusto
- Visor de fichero NFO con efecto degradado
- Parchea un ejecutable de forma sencilla

Os dejo unas screens:







A partir de aquí, modificarlo es muy sencillo. Lo único que necesitas es generar un ejecutable parcheado y usar WinHex para compararlos y sacar los offsets y valores modificados. En el fichero adjunto hay un crackme compilado y su patcher correspondiente. Podrás probar como el patcher escribe los offset's correctos y deja el crackme completamente parcheado y resuelto.

Para sacar los offsets modificados entre 2 ficheros lo mejor es usar WinHex, os adjunto foto de la opción que hay que utilizar



Al comparar los ficheros se genera un informe, tal que así:

Código:
Buscar diferencias

1. C:\Users\usuario\Desktop\crackme patch.exe: 24.576 bytes
2. C:\Users\usuario\Desktop\crackme.exe: 24.576 bytes
Offsets: hexadec.

2757: 0F 90
2758: 85 90
2759: 19 90
275A: 01 90
275B: 00 90
275C: 00 90
27F1: 84 85

7 diferencia(s) encontrado.

Una vez se tienen los datos, en el código fuente se modifican los arrays y los datos siguiendo el informe de WinHex:

Código
  1.    'Load the patch data
  2.    pOffset(1) = &H2757
  3.    pOffset(2) = &H2758
  4.    pOffset(3) = &H2759
  5.    pOffset(4) = &H275A
  6.    pOffset(5) = &H275B
  7.    pOffset(6) = &H275C
  8.    pOffset(7) = &H27F1
  9.  
  10.    pData(1) = &H90
  11.    pData(2) = &H90
  12.    pData(3) = &H90
  13.    pData(4) = &H90
  14.    pData(5) = &H90
  15.    pData(6) = &H90
  16.    pData(7) = &H85

También hay que modificar y añadir el tamaño en bytes del fichero a parchear, a modo de comprobación. Y YA ESTÁ!!

Bueno, ahora solo queda que os descarguéis el source, hay incluido un crackme con su parche, para que podáis comprobar todos los efectos y musicas de la GUI, así como de la efectividad del patcher/crack.

Espero que os sirva: http://www.mediafire.com/?1x0x4din5b52xhn
37  Programación / Ingeniería Inversa / Proyecto: DbgDetections (Testea la dureza de tu OllyDbg) en: 18 Enero 2013, 21:02 pm
Bueno, tras investigar un poco he decidido recopilar las principales funciones para detectar si un programa está siendo debuggeado. Lo he programado todo bajo VB6 ya que es el único lenguaje que domino para éste tipo de cosas, así que estoy algo limitado, ahí va:



Hay programados 17 métodos para detectar a OllyDbg, la idea del proyecto es la siguiente:

  • Ejecutar DbgDetection.exe bajo Windows, sin debugger: Probar todos y cada uno de los botones, deberían detecter que NO hay debugger
  • Ejecutar DbgDetection.exe bajo un debugger OlyDbg sin plugins ni protecciones. Probar todos y cada uno de los botones y ver las funciones que detectan tu OllyDbg
  • Ejecutar DbgDetection.exe bajo un debugger OlyDbg con plugins y protecciones. Probar todos y cada uno de los botones y ver las funciones que detectan tu OllyDbg

La idea es ver como y cada uno de éstos métodos puede llegar a detectar un Debugger, así como comprobar si tu selección de plugins/protecciones mantienen a tu OllyDbg invisible.



Como yo lo he programado, he sido el primero en probarlo :P En un OllyDbg "limpio" he conseguido detectarlo en todas las funciones.
En mi OllyDbg con un par de pluguins he conseguido ocultarlo bastante, pero seguía siendo visible con algunas funciones.

Al final he terminado usando éstos plugins:



Con todos esos plugins activos, he conseguido poner invisible a OllyDbg en todas las funciones EXCEPTO en los Timming Methods.

Espero a ver si lo podéis probar para hacer entre todos un report sobre que funciones de detección son más eficaces. Si eso ya publicaré la función de algún método que queráis usar para vuestros crackme's

DOWNLOAD: http://www.mediafire.com/?r6j87t5ddac156m
38  Programación / Ingeniería Inversa / Crackme V3 Colmena de CheckBox en: 17 Enero 2013, 19:35 pm


Bueno, ya ha quedado bastante claro que los Hardcoded en VB6 son pan comido, así que he programado ésta protección a ver si alguno le toca las cosquillas.

- El crackme está protegido con un compresor
- El crackme usa rutinas anti-debugg, pero creo que los plugins del OllyDbg se los saltan, así que no tendréis problemas en éste punto.
- Se genera un ID único de 4 cifras (hardware fingerprint)
- La combinación correcta de checkbox va relacionada con el ID



Prohibido parchear, ya se que podemos forzar el ID a un número tipo 1111 para solventar, así que no lo aceptaré como una solución válida.
Prohibido parchear, también, el salto condicional que comprueba la colmena.

En definitiva, tienes que destripar el algoritmo que he inventado para saber que checkbox's hay que pulsar, la relación la tenéis en el ID único.

El algoritmo es muy sencillo

DOWNLOAD: http://www.mediafire.com/?1pbhn4b4wj4a8d2
39  Programación / Ingeniería Inversa / Que versión de Olly necesito? en: 17 Enero 2013, 15:32 pm
Buenas, desde hace días me estoy iniciando en el mundo de la Ing. Inv, estoy leyendo todos los tutoriales de Ricardo Narvaja, por el momento es el más completo y sencillo que he visto. (Voy por la lección 21 de 58)

El problema me viene al intentar resolver algunos crackme's con protecciones, me detectan el OllyDbg y cierran el proceso y terminan de forma inesperada. Conozco la existencia de plugins o como hacer baypass manual a las típicas API's de isDebuggerPresent y EnumWindow. Tambien conozco que existen versiones modificadas de OllyDbg 1.10 con una selección de plugins y configuraciones óptimas, bien, sabiendo esto... aquí va mi pregunta:

He oido maravillas sobre Shadow Olly, OllySND y similares. Pero por más que los intento descargar, los links son muy antiguos y ya no funcionan. Alguien puede pasarme un link funcional?

Y ya de paso, si me recomendáis alguna versión distinta a Dark o SND, pues también me vale :P Solo quiero tener un Olly en condiciones para trabajar
40  Programación / Ingeniería Inversa / Crackme v2 (6 en 1) Intenta resolverlos todos en: 16 Enero 2013, 22:57 pm
Bueno, os dejo mi segundo y último crackme por el momento. En realidad son 6 crackme's en 1, tendréis que resolverlos uno por uno a modo de prueba.

Dificultad (4/10) sencillo

Prueba 1: Nag Screen



No es necesario resolver la nag, el crackme te deja continuar pasados unos segundos. Tu decides en parchear o no, pero si lo haces demostrarás tus dotes de cracker.

Prueba 2: Enable it



El botón que te permite pasar a la siguiente prueba está deshabilitado, encuentra la función/API que lo activa para continuar.

Prueba 3: Serial it



El típico serialme, hay 3 versiones de éste tipo de crackme en el programa, aquí el nivel es MUY sencillito

Prueba 4: Serial it v2



Similar al anterior, se han suprimido los mensajes de alerta para añadir algo de dificultad.

Prueba 5: serial it v3



Última prueba del tipo 'serialme', dificultad añadida. Pero sigue siendo fácil

Prueba 6 final: Code inyect



Prueba final, aquí solo aceptaré una forma de solventar el crackme. El programa te quita "vida" cada vez que golpeas. Tienes que modificar el programa para que tu vida aumente en lugar de disminuir. Soy conciente que puedes parchear el salto condicional, pero lo que pido es que la vida aumente.



Consideraré el crackme resuelto si superas las pruebas 2,3,4,5 y 6. Teniendo en cuenta que en la prueba 6 NO se puede parchear el salto condicional, tendrás que modificar el código y hacer que la vida aumente.

Si además, resuelves la prueba 1, te ganarás mi respeto y lo haré constar en éste hilo :D

DESCARGAR: http://www.mediafire.com/?xsei66uiqxb74ek
Páginas: 1 2 3 [4] 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines