Evitando Olly al cargar

Iniciado por x64core, 14 Mayo 2012, 01:11 AM

0 Miembros y 2 Visitantes están viendo este tema.

x64core

Hola a todos, bueno quisiera saber si alguien sabe como evitar el olly al cargar un programa...
veran estoy programando un app y quiero agregarle un poco de proteccion nada más, yo e visto
por experiencia que algunas aplicaciones que tienen proteccion al abrirlas con olly y empieza a cargar este genera una exception
y cuando esa app corre sin debugger, se ejecuta normal :P

como es implementado eso?

alguien sabe? y seguramente tambien saben la solucion pero solamente quisiera saber como hacen eso, porque no quiero
agregarle una masiva proteccion a mi app solo por curiosidad y para poder aprender :P gracias cualquier respuesta

tincopasan

Hay muchas formas de implementar protecciones antidebug, y formas de vencerlas! si lees tutoriales de unpack, muchos de ellos las tienen, es más, mirá el plugin ollyadvanced y allí con solo un tilde las evita, lo bueno es que está el nombre de muchas! busca en google o msdn y verás como se implementan. Las más conocidas y fáciles son IsDebugPresent y FindWindow

x64core

si amigo yo conozco varias formas de proteccion basicas seguramente, y algunas ideas que e aprendido aquí en el foro y
me han enseñado usuarios de aquí mismo, pero mi pregunta es algo especifica porque por lo menos de las formas que sé
ninguna hace eso que quiero hacer :P

y como nosé como se le llama a esa proteccion que quiero ( nose si es dificil :P ) nose como buscarla en google
si me dan el nombre o alguna referencia claro que buscare :)

$Edu$

Pero si estas diciendo que quieres que haga algo tu programa si detecta que esta siendo debuggeado.. ya te dijieron para eso.. usas la api IsDebugPresent o FindWindow. Hacen eso que queres, si no te sirven esas entonces deci que queres hacer eso con un metodo mas dificil de burlar.

Fijate que IsDebugPresent en el tutorial de Ricardo lo usa como ejemplo cuando tienen esa api que se cierra la aplicacion, pero si sos vos el programador podes hacer que en vez que se cierre que haga otra cosa

tincopasan

busca api GetTickCount devuelve el valor en milisegundos que ha pasado desde que ejecutas la aplicación, la implementas en tu code y si hay demora seguro te estan debugeando la app, como dije antes IsDebuggerPresent es la más fácil, implementala y ejecutala en olly sin plugins y verás que la aplicación no corre.
Con un poco más de experiencia instala un SEH (structured Exception handler).
Como hacerlo depende del lenguaje de programación que uses, ahí no puedo ayudarte porque solo programo en visual basic y soy malisimo.
En todo caso deberías ser más preciso en que queres hacer sino son esas las funciones que pueden servite.

Flamer

otra cosa puedes hacer para que no pongan break point en dicha api que finalise si intentan poner uno pero para eso ya hay plugins se me hase

x64core

Gracias chicos a todos pero parece que me e dado mal a entender, joder que no encuentro el bicho
que hacia lo que quiero :P

aver explico el metodo que quisiera aprender consiste en esto, yo tenia al bicho ( el programa malware ) cuando lo habría el olly y
seleccionaba el malware mientras cargaba el malware el olly buscando referencias y todas esas cosas que hace el olly
llegaba a un punto donde generaba la exception SIN haber terminado la carga osea no llegaba al entrypoint y estar listo
para empezar a debuggear como una app normal, antes de que terminara de cargar el olly el malware se detenia el olly
por que habia una excepcion y ya no podia continuar :| me entiendo? :D
en cambio cuando lo ejcutaba sin depurador el bicho se ejecutaba sin problemas

tincopasan

sino me equivoco te referis a que tenía funciones tls callback, se ejecutan antes de llegar al oep! execriptor trae ese tipo de funciones

$Edu$

Ah, vos decis mucho antes entonces, ni cargar te deja.. eso ni idea tengo. Pero si no se ha ni ejecutado como es posible que pase eso? no creo que sea "codigo malicioso" del malware que haga esto, sino que talvez olly no puede debuggear algunos programas, como si no los reconociera, alguien con experiencia hablara xD

Tincopasan.. estas seguro que se puede hacer eso que dices? con el uso de esa api GetTickCount.. mientras esta parado el programa.. no se pararia el conteo? siguiendo luego que le des a Play y entonces cuando llegue a tu verificacion en el codigo, el conteo sera el mismo de siempre, sin que se de cuenta que fue parado en algun momento.

x64core

Gracias tincopasan por la informacion parece que sí es esa :D CREO :P
si logro implementarla en algun lenguaje revivo el post y publico el codigo, cualquier otra respuesta ayudaria  ;-)

@$Edu$, si era malware :P sucede que de enojado los elimine porque no los podía depurar xD