Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Krnl64 en 19 Julio 2006, 20:13 pm



Título: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 19 Julio 2006, 20:13 pm
Hola a todos.

Veran, me preguntaba la forma de proteger 1 programa de VB contra el crackeo. No quiero usar programas externos porque aumenta el tamaño del ejecutable.

Les cuento lo que hasta ahora aplico:

 * Uso la API IsDebuggerPresent

 * Uso la API GetTickCount haciendo llamadas entre procedimientos para cronometrar el tiempo de la aplicacion y salirme despues si el programa es debuggeado

 * Uso Strings cifrados

 * Meto codigo muerto para engañar

 * Le pongo CheckSum

 * Le pongo proteccion Anti-Desensamblaje

 *Uso algun compresor


Alguien puede darme mas ideas o consejos ?

Si son desde el codigo mejor, aunque si es editar el exe tampoco pasa nada

Gracias


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Hans el Topo en 19 Julio 2006, 21:53 pm
¿tu que preparas los programitas para lanzar bombas nucleares? .... xD

usa varios compresores... uno sobre
yo para los programillos tiñosillos que hago solo le paso el aspack


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 19 Julio 2006, 22:04 pm
Pero hombre pasarle varios compresores es una bestialidad.

Ademas, apenas le mete protecciones nuevas.

No quiero usar el themida.

Gracias.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Hendrix en 19 Julio 2006, 22:39 pm
Una tecnica facil es esta:

supongamos que tenemos esto:

sub From_load
Dim ap as string
Dim time as integer
Dim timer2 as Integer

time = Second(Now)

....
....
....

timer2 = Second(Now)

If timer2 <> timer then
Msgbox "Nos estan debuggeando!!!!"
goto bukleinfinito
End If

Es una idea, hay una api para contar el timepo que esta desde que la iniciamos hasta otro punto, si vemos que el tiempo es grande es que nos estan debuggeando, si pekeño kiere decir que todo sigue su kurso.....

A esto lo e puesto en el Curso de Worms en VB II, que alomejor lo sacare y alomejor no...depede del tiempo y las ganas de escribir... ;) ;) ;)

Agur amigo!!!



Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 19 Julio 2006, 22:49 pm
Hendrix, esa API para cronometrar es GetTickCount.

Gracias de todas formas.

A ver si alguien sabe otras formas.

Cuando alcance mis objetivos publicare 1 tutorial

Salu2



Título: Re: proteger un programa de VB contra el crackeo
Publicado por: byebye en 19 Julio 2006, 23:19 pm
por mas cosas que le pongas si lo quieren crackear lo van a crackear. la tecnica esa al final vas a morir a un if, con cambiar la condicion proteccion saltada.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Red Mx en 19 Julio 2006, 23:34 pm
Y que programa tan importante es que no quieres que te lo crakien :huh:




Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 20 Julio 2006, 00:20 am
Citar
1º Casi todo se puede crackear, pero con mas o menos trabajo.

2º Alguna forma anti-cracking habrá (y tengo mis ideas) aunque en VB no xDD


No es ningun programa en especial.

Solamente es 1 estudio de protecciones que se le pueden aplicar a 1 programa.

Estoy hablando desde el codigo.

Por ejemplo en ASM, usaba SEH recursiva para llenar la pila de basura. Pero en VB no se hacer eso. Ojala se me ocurriera la forma.

Ademas, estoy a ver si puedo averiguar como manejar las puñeteras APIS VirtualProtect, VirtualLock, etc

Si alguien sabe no estaria mal que lo explicase con ejemplos sencillos.

Salu2



Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Hans el Topo en 20 Julio 2006, 20:27 pm
aligual en el foro de seguridad te pueden dar más soluciones o ideas...xD


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: BenRu en 20 Julio 2006, 20:39 pm
La palabra clave es: Themida

No le den mas vueltas xd  ;D


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: LuckyMonkey en 20 Julio 2006, 21:06 pm
Yo creo que todo lo que has nombrado vienen a ser las técnicas básicas y creo que poca cosa más puede quedar, a partir de aquí sería qüestión de meterte en el mundillo del polimorfismo


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 20 Julio 2006, 23:30 pm
Citar
Themida

Gracias BenRu pero no es lo que buscaba.

Buena idea LuckyFox


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Kizar en 20 Julio 2006, 23:55 pm
Me gustaria crackearlo para demostrarte k con eso no aces nada... si me puedes pasar el programa...
Hay bastantes mas protecciones...


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Krnl64 en 21 Julio 2006, 00:39 am
Kizar me gusta tu propuesta.

Si puedes nombrarme otras protecciones, te lo agradeceria.

Salu2


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Kizar en 21 Julio 2006, 01:05 am
Pues en crackmes he visto por ejemplo k busken la ventana de el ollydbg y si la encuentra k cierrre el programa y cosas asi por el estilo, pero en el fondo eso no vale para nada
porke eso se kita con la gorra...
Salu2


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: LuckyMonkey en 21 Julio 2006, 20:34 pm
Citar
Hay bastantes mas protecciones...
por ejemplo k busken la ventana de el ollydbg

Buscar la ventana del olly o de cualquier otro programa de ing inversa no es un método genérico cómo todos los nombrados por krnl64 no lo consideraría ni un método. Y cómo lo busque por título, cambiando el nombre del exe del olly solucionado xD

Aparte de las que has nombrado muy poca cosa queda.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: karmany en 21 Julio 2006, 21:23 pm
"muy poca cosa queda"
no estoy de acuerdo...

En VB puedes complicarle la vida a un cracker de muchas formas..
Siempre parto del hecho de que el cracker que va a destripar el programa sabe programar en VB y tiene conocimientos medios.
La primera es no utilizar el evento click al pulsar el botón, porque esto está explicado en la mayoría de los tutes.

Una forma que veo difícil de crackear es crear un programa con bastante código ,utilizar muchos eventos, utilizar constantes y engañar con string, pues es lo primero que se mira. De este ej. ya lo comenté, podéis intentar crackear mi crackme 3.0 en ingeniería inversa y ya veréis que es muy complicado:
Crackme 3.0 (http://foro.elhacker.net/index.php/topic,130538.0.html)

Pero otra forma aún más complicada (es mi opinión) es hacer un programa como he comentado en el párrafo anterior y además modificarle el código con un editor hexadecimal para que salte a una determinada dirección de memoria dependiendo del código que le introduzcas.. hace tiempo hice un crackme muy sencillito de esto último que si te interesa lo subo..

Yo el problema que veo a todo esto es que puedes complicarte mucho la vida y hacer un programa de difícil crackeo, pero y luego qué??
Me explico: si vendieras el programa tendrías que ponerle varias contraseñas, y si poner una cuesta...
pero ya estamos ante el hecho de que si das la contraseña a una persona esa persona ya puede copiar tu programa 1000 veces y con un serial válido.!!
Lo ideal para el mercado es crear un programa que genere una protección a tu programa..ejemplos como asprotect etc, que así pueden ser distribuidos rápidamente. Al mercado no le interesa que compliques crackear un programa manualmente modificando el código como te he comentado.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: LuckyMonkey en 24 Julio 2006, 00:26 am
Citar
Una forma que veo difícil de crackear es crear un programa con bastante código ,utilizar muchos eventos, utilizar constantes y engañar con string, pues es lo primero que se mira.

Esto ya lo abarca lo de "Código muerto" que ha puesto en el primer post, lo qual interpreto como código basura. Lo de las cadenas tambien lo ha puesto en "cifrar cadenas" que es mas importante que despistar con cadenas extrañas.
Así que reitero que muy poca cosa queda.

En cuanto al mercado la tendencia yo diria que es verificar contraseñas a través de internet, de éste modo te aseguras que una contraseña sea usada para un sólo programa.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Kizar en 25 Julio 2006, 21:17 pm
@LuckyMonkey
Cuando alguien se refiere a buscar el nombre de una ventana se refiere a el Caption "lo k ves en la barrita azul del programa" o a la clase de la ventana, la clase es SIEMPRE la misma a no ser k la cambies y eso es mas dificil de lo k parece.
En todo caso la clase de el ollydbg es OLLYDBG y va a ser siempre la misma en cualkier ordenador.

En el fondo ustedes pueden enterrar el serial y hacer casi imposible encontrarlo, pero tengan en cuenta k si parchean el programa se puede usar igual y eso es muy facil de hacer ;)

Lo mejor para autentificacion es internet, fijense en steam, a k nadie regala cuentas del counter ? xD

Salu2


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: LuckyMonkey en 27 Julio 2006, 00:06 am
En realidad es muy sencillo kizar, copias la clase con otro nombre cierras y creas.
Incluso existe un programa muy senzillito para manejo de ventanas que te permite eso en dos clicks, ni los 5 minutos de programarlo gastas. Windows Baddreams o algo asi se llama.

Saludos


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: Kizar en 27 Julio 2006, 00:09 am
Tardas menos en poner un par de '90', como para todo.
Tambien tienes un monton de plugins para el olly k te lo pasan todo.


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: _Sergi_ en 27 Julio 2006, 11:30 am
Opino lo mismo que Kizar, lo mejor es la autentificación via HTTP; a no ser que accedan a tu servidor, crackear el programa se hace difícil.

Un saludo
Sergi


Título: Re: proteger un programa de VB contra el crackeo
Publicado por: LuckyMonkey en 27 Julio 2006, 18:13 pm
Citar
Tardas menos en poner un par de '90', como para todo.
También, porque no? xD el ejemplo intentaba demostrar que incluso sin saber asm puedes saltarte esa protección xDD

Entonces tengo razón y no se puede considerar método y mucho menos método genérico?
xD

Bueno ese es el unico ejemplo que has puesto de tantos dices hay de más.

Repito otra vez, métodos BASICOS los ha nombrado casi casi todos en el primer post.