Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Mad Antrax en 20 Enero 2013, 22:16 pm



Título: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax 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:

(http://i.imgur.com/o4NACV1.png) (http://i.imgur.com/as0rP8O.png)

(http://i.imgur.com/OxE2bHv.png)



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

(http://i.imgur.com/62ptZwW.png)

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


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Danyfirex en 21 Enero 2013, 17:10 pm
Gracias viene joya.  ;D

saludos


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Tinkipinki en 21 Enero 2013, 18:01 pm
Muy bueno.... ;-)
Saludos


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax en 21 Enero 2013, 18:19 pm
Gracias, lo habéis probado? El parche ha parcheado el crackme de ejemplo? Los efectos y la musica se reproducen bien?


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Tinkipinki en 21 Enero 2013, 18:26 pm
Hola ||MadAntrax||
El patcher da error de runtime 75    Patch / File acces error
Corriendo en Win XP

Saludos


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax en 21 Enero 2013, 18:45 pm
Hola ||MadAntrax||
El patcher da error de runtime 75    Patch / File acces error
Corriendo en Win XP

Saludos

fffuuuuu que dices...

Te da error al ejecutar el parche o al aplicar el parche? Tienes el crackme.exe cerrado?


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Tinkipinki en 21 Enero 2013, 18:50 pm
Ok, problema solucionado, tenia el crackme minimzado.. :rolleyes: , al cerrarlo todo perfecto.

Saludos y felicidades por el proyecto


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax en 21 Enero 2013, 18:53 pm
Ok, problema solucionado, tenia el crackme minimzado.. :rolleyes: , al cerrarlo todo perfecto.

Saludos y felicidades por el proyecto

jajaja normal que te diera error, no se puede escribir en un fichero locked (abierto)


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: .:UND3R:. en 23 Enero 2013, 04:28 am
MadAntrax no he tenido el tiempo para poder felicitarte, ya que se nos es de gran ayuda alguien que tiene tanto interés en aprender Ingeniería Inversa y que por sobre todo nos puede ayudar con un lenguaje de programación, excelente herramienta, felicitaciones Mad  ;-)


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax en 31 Enero 2013, 18:53 pm
woow, acabo de ver que salimos en el boletín :)


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: aixeiger en 31 Enero 2013, 19:16 pm
ManAntrax, vas a poner el tute aqui?, digo para que los newbies jeje como yo ademos pendientes del hilo!
saludos.


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Mad Antrax en 31 Enero 2013, 19:31 pm
ManAntrax, vas a poner el tute aqui?, digo para que los newbies jeje como yo ademos pendientes del hilo!
saludos.

??? esta subido en #1 al principio del hilo


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: aixeiger en 31 Enero 2013, 19:34 pm
ohhh disculpe jeje pense que era un reto, es que ando medio bruto en la mañana!!


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Hackkemate en 1 Febrero 2013, 03:18 am
Hola soy nuevo por aqui este es mi primer mensaje, funcionaria tu patcher para un programa en C++, por ejemplo un simple "Hola mundo" ??


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: SaGaRaS en 1 Febrero 2013, 04:21 am
Hola soy nuevo por aqui este es mi primer mensaje, funcionaria tu patcher para un programa en C++, por ejemplo un simple "Hola mundo" ??

Porsupuesto, pero debes actualizar o mejor dicho ajustar los offsets a los de la aplicacion "Hola Mundo" Dependiendo posupuesto de los numero de addresses que necesites editar y extraerles los offsets  ;D


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Naybi en 23 Mayo 2013, 00:00 am
Hola:  Soy nueva en este sito y talvez ustedes puedan resolver un problema ya que yo   no se programacion, y tengo un programa que compre, y la compañia que lo vendio no me notifico que solo podia utilizarlo en una solo maquina y solo tres instalaciones, y ya cambie de maquina y hoy no puedo utilizarlo, alguno de ustedes tiene el comocimiento de como alterar el programa para que pueda siguir utilzandolo en mi nueva maquina,  espero seme pueda apoyar, es todo gracias.


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: MCKSys Argentina en 23 Mayo 2013, 00:05 am
Hola Naybi!

Si quieres plantear un problema en particular, te recomiendo crear un nuevo post para hacerlo.

Saludos! (y Bienvenida!   :))


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: Naybi en 23 Mayo 2013, 00:10 am
Hola: hhuuuuyyyyyy ¡Como!


Título: Re: [Tutorial] Programar un patcher/crack con estilo
Publicado por: apuromafo CLS en 23 Mayo 2013, 02:16 am
Hola: hhuuuuyyyyyy ¡Como!

http://foro.elhacker.net/post.html;board=26.0

respecto a lo que hablas, es mejor que sea nuevo tema, por otro lado si instalaras en una máquina virtual, siempre podrias ejecutar desde ahi cuando lo necesites, y llevarte la imagen del disco en caso de emergencias, por otro lado que tengan limitaciones es algo denso...siempre es necesario practicar ingenieria inversa leyendo el faq para llegar a cosas mas concretas, asi como lo tienes, puede pasar de todo y actualmente no llegaras a nada que te puedan orientar

1) no se sabe que proteccion tiene
2) no has analizado los exes que tienes
3) no se sabe si hay dongle o hardcoded relacionados
4) no se ven avanzes que hayas leido del faq,
5) realmente es necesario seguir mejorando algunos detalles ^^

todo es con tiempo, sin ello, realmente es como este texto, a lo más orientaciones para mejorar, pero con tiempo aveces se logran secuenciar tutoriales que llevan años esperando que se pueda lograr

saludos Apuromafo