PDA

Ver la versión completa : Msgbox



proteo1
30-08-2011, 21:54
Que opinan de realizar un propio MSGBOX lo mas identico posible para no llamar al tipico del sistema

¿Creen que podria lograrse confundir un poquito mas al momento de querer crakear el programa?

Ya que gracias al Olly se buscan las librerias y uno de ella smuy solicitadas son las llamadas a los cuadros de dialogo.

se agradece cualquier comentario para comprender mas, gracias.

chewarrior
30-08-2011, 22:26
Pues lo veo dificil, tendria que accederse con un lenguaje de bajo nivel al modo de video y desde hay ya morirte de hastio xd.

Podrias llamr a la libreria directx, yo no lo utilize nunca pero dado q se utiliza para procesar imagenes etc.. tambie podria servir.



¿Creen que podria lograrse confundir un poquito mas al momento de querer crakear el programa?


Depende de la habilidad del cracker.

Atreides
30-08-2011, 22:40
Pues lo veo dificil, tendria que accederse con un lenguaje de bajo nivel al modo de video y desde hay ya morirte de hastio xd.

Un código que no se ejecuta en el kernel (o sea, que no es un driver) no puede hacer eso.


Podrias llamr a la libreria directx, yo no lo utilize nunca pero dado q se utiliza para procesar imagenes etc.. tambie podria servir.

:confused:

Puedes usar varias alternativas, pero dependiendo de la habilidad del cracker, la verdad es que se las va a saltar como Pedro por su casa. Aquí tienes algunas ideas:

http://msdn.microsoft.com/en-us/library/ms632679%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms645434%28v=vs.85%29.aspx

Obviamente no dejan de ser funciones de la API y, como tales, se les puede poner un breakpoint.

chewarrior
30-08-2011, 22:58
Conclusion y visto lo visto, me parece perder el tiempo, pues ni siquiera las compañias grandes con sus DRM pueden impedir que cracken sus aplicaciones.


Que si se puede nene http://es.wikipedia.org/wiki/DirectX xd.




Un código que no se ejecuta en el kernel (o sea, que no es un driver) no puede hacer eso.


Yo me referia a utilizar las interrupciones de la bios....

Atreides
31-08-2011, 00:19
Yo me referia a utilizar las interrupciones de la bios....

Madre mía.

proteo1
31-08-2011, 01:36
No me refiero a utilizar un DirectX o API sino a crearla desde cero (en mi caso desde Visual Basic), mañana les pongo un ejemplo y me dicen que tan facil seria, solo me resta ocultar los textos de los dialogos y/o botones.

y tbm muy cierto si a las grandes compañias las quebran que mas da a un pequeño usuario, aun que podria pasar mas desapercibido.

Pd. alguien sabe si existe algun lugar del registro de windows porque no encontre ahi los textos para tomar, aceptar, cancelar, reintentar, si, no, para que el programa de ahi los tome, asi no pondria texto fijo y no lo tengo que ocultar.

chewarrior
31-08-2011, 01:43
DirectX es una api, yo creo k con ella podrias hacer tu propio msgbox de otra manera la veo muy dificil.

Y si vas hacer lo que yo pienso que vas hacer, te dire que tambien estas utilizando varias apis... osea no lo creas de 0....

Otra cosa aqui de visual basic no tenemos mucha idea(Atreides tampoco xd), yo una vez hice una calculadora y hice algunos scripts con vbscript pero ya esta.

proteo1
31-08-2011, 01:48
DirectX es una api, yo creo k con ella podrias hacer tu propio msgbox de otra manera la veo muy dificil.


Ya lo hice, pero ahorita no estoy en la oficina en donde deje el codigo,y utilizo cero apis o directx solo lo que me proporciona visual basic y sus herramientas 1 etiqueta, 3 botones, 1 picture y 1 timer (este ultimo para un efecto si es que desea animarse), si mal no recuerdo :)

chewarrior
31-08-2011, 02:02
A ver coje a nuestro amigo ollyDbg, (Search for)(Name (label) in current module) igual te sorprende lo que puedes ver alli.

Atreides
31-08-2011, 02:08
Los textos "Aceptar", "Cancelar" etc están posiblemente entre los recursos de shell32.dll

proteo1
31-08-2011, 02:09
A ver coje a nuestro amigo ollyDbg, (Search for)(Name (label) in current module) igual te sorprende lo que puedes ver alli.

Si claro que lo haré, pero como voy iniciando en esto bueno aun no tengo tantos trucos o atajos como muchos de ustedes así que por eso pido opiniones y quedo de ustedes en sus consejos y créanme que todos son considerados conforme a lo que voy entendiendo :)

proteo1
31-08-2011, 02:11
Los textos "Aceptar", "Cancelar" etc están posiblemente entre los recursos de shell32.dll

Muchas gracias lo buscare ahi para ver que tengo que hacer para extraer los textos, aun que lo mas probable es abrirlo como binario para buscar en el ciertos codigos que me den la respuesta como en los SCR tienen un nombre antes del nombre completo del protector de pantalla.

hystd
31-08-2011, 02:18
Que opinan de realizar un propio MSGBOX lo mas identico posible para no llamar al tipico del sistema

¿Creen que podria lograrse confundir un poquito mas al momento de querer crakear el programa?

Ya que gracias al Olly se buscan las librerias y uno de ella smuy solicitadas son las llamadas a los cuadros de dialogo.

se agradece cualquier comentario para comprender mas, gracias.

Te lo crees con una API, con DirectX, o como un nuevo Form, o con la supertécnica que quieras, si se ejecuta en Windows, la ventanita de tu msgbox quedará identificada con un handle y ya será vulnerable.

Solución1: encriptación (evitas un ataque al código estático). Fácil de implementar. Existen herramientas que te realizan la labor de manera automática (packers, cyphers, etc...).

Solución2: polimorfismo (evitas un ataque al código estático y al código en tiempo de ejecución). Esta técnica no es nada sencilla.

Con respecto a lo que dicen de "interrupciones de la bios", observa el "Access Violation" que recibes si en el código llegas a llamar a un int xxh, desde una arquitectura windows, basada en anillos (rings).
En este caso, sería necesario implementar un driver, y allí puedes llamar a todas las interrupciones que quieras. Si así lo deseas, además puedes implementarte tu rutina I/O, que atienda las funciones IRP's que quieras, para así servirte de interfaz para tu aplicación. Tal es el caso del famoso driver inpout.sys, para acceder a los puertos, más concretamente "direcciones de memoria" del PC con acceso protegido en modo usuario.

Un saludo.

proteo1
31-08-2011, 02:30
Te lo crees con una API, con DirectX, o como un nuevo Form, o con la supertécnica que quieras, si se ejecuta en Windows, la ventanita de tu msgbox quedará identificada con un handle y ya será vulnerable.

Solución1: encriptación (evitas un ataque al código estático). Fácil de implementar. Existen herramientas que te realizan la labor de manera automática (packers, cyphers, etc...).

Solución2: polimorfismo (evitas un ataque al código estático y al código en tiempo de ejecución). Esta técnica no es nada sencilla.

Con respecto a lo que dicen de "interrupciones de la bios", observa el "Access Violation" que recibes si en el código llegas a llamar a un int xxh, desde una arquitectura windows, basada en anillos (rings).
En este caso, sería necesario implementar un driver, y allí puedes llamar a todas las interrupciones que quieras. Si así lo deseas, además puedes implementarte tu rutina I/O, que atienda las funciones IRP's que quieras, para así servirte de interfaz para tu aplicación. Tal es el caso del famoso driver inpout.sys, para acceder a los puertos, más concretamente "direcciones de memoria" del PC con acceso protegido en modo usuario.

Un saludo.

1.- No utilizo APIS o DIRECTX :( y me refiero a dificultar un poquito mas las llamadas a mensajes de error de registro o registro exitoso.
2.- Lo que hago es llamar la ventana como funcion.
3.- si encripto u oculto los textos aparte de que empaqueto la aplicacion.
4.- Polimorfismo no he logrado encontrar algo contreto para estudiar o al menos para comprender aun.

creo que bastara un ejemplo chiquito para ver si ocupo quebrarme mas la cabeza o que :(, por el ejemplo me refiero no a que me pongan el código, por eso me preocupo yo, sino que me refiero a subirlo y lo rompan, para buscar mas cosas y seguir mejorando, claro si desdicen ayudarme.

chewarrior
31-08-2011, 02:43
Con respecto a lo que dicen de "interrupciones de la bios", observa el "Access Violation" que recibes si en el código llegas a llamar a un int xxh, desde una arquitectura windows, basada en anillos (rings).


Es verdad eso que dicen (no te acostaras sin saber algo nuevo).

Atreides
31-08-2011, 14:37
Es verdad eso que dicen (no te acostaras sin saber algo nuevo).

O sea que reconoces haber contestado (y no sólo contestado, ¡me has echado huevos además!) desde el desconocimiento.