Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: x64core en 14 Mayo 2012, 01:11 am



Título: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 01:11 am
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


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 02:03 am
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


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 02:07 am
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 :)


Título: Re: Evitando Olly al cargar
Publicado por: $Edu$ en 14 Mayo 2012, 02:17 am
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


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 02:19 am
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.


Título: Re: Evitando Olly al cargar
Publicado por: Flamer en 14 Mayo 2012, 02:26 am
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


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 03:01 am
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


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 03:07 am
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


Título: Re: Evitando Olly al cargar
Publicado por: $Edu$ en 14 Mayo 2012, 03:12 am
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.


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 03:25 am
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


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 03:40 am
$EDU$ estoy seguro! busca sobre armadillo, muchas versiones la implementan


Título: Re: Evitando Olly al cargar
Publicado por: Flamer en 14 Mayo 2012, 03:45 am
si hay programas asi ya me toco una ves un crackme asi pero en algun formateo que ledi ami pc se fue.
no cargaba el olly para cuando me marcaba terminate no cerraba el olly finalisaba el crackme  pero entonces como seria reverseado
no me acuerdo si era crackme o malware pero asia eso
por otro lado los malware me atocado hecharles un vistaso y bienen en (los  hechos en vb6) pcode 


Título: Re: Evitando Olly al cargar
Publicado por: TruenoCaos en 14 Mayo 2012, 03:46 am
Yo me acuerdo de haber leido hace tiempo un articulo que hablaba de esto mas o menos, y lo que hacian (si no lo entendi mal) es un hook a las apis del windows que suelen usar los debuggers, y lo que hacan ahi es no dejar ejecutarlos (se basaban en que primero se ejecuta el programa y luego se ejecuta el debgger) pero puede que una version modificada de esto puede servir:

Por ejemplo la primera vez que se ejecuta deja el hook y no lo libera, o cualquier otra idea


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 04:16 am
hey encontre una referencia, hace exactamente lo que mencionaba:

http://pastebin.com/raf7K6AF


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 04:20 am
ok! era tlscallback nomás, si revisas tutoriales de unpack de execryptor verás que no es dificil de evitar para los que debugean.


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 04:23 am
ok! era tlscallback nomás, si revisas tutoriales de unpack de execryptor verás que no es dificil de evitar para los que debugean.

nomás? xD
pero que más hay? :P
creí que era algo dificil xD


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 04:32 am
lo de díficil es siempre dependiendo del cracker (o el que debugea) en mi caso sería imposible saltar el tls pero los que saben lo pasan hasta con los plugins de olly y a mano cambian hasta el oep jeje.


Título: Re: Evitando Olly al cargar
Publicado por: $Edu$ en 14 Mayo 2012, 04:38 am
Pero entonces una cagada el Olly xD o tal vez son todos los debuggers asi.. no se, digo porque pensaba que el olly solamente leia el ejecutable, sin ejecutar nada, traduciendo el codigo maquina a ASM y organizando todo ahi, pero nada de ejecutar. Digo esto porque no puede que pase esto que dicen si no se ejecuta nada, una cosa es leer y otra ejecutar. Es como que me estan diciendo que Papa Noel existe de verdad xD Que alguien me explique por favor xD


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 04:55 am
a ver, el olly no ejecuta nada solo, tratando de ser claro te diré que el olly se detiene en el oep porque pone solo un bp en esa dirección, los tls estan antes del oep! si sabes donde comienzan los tls pones un bp y tampoco se ejecutan solos! es que el olly viene por defecto para detenerse en el oep, pero el plugin ollyadvanced le agrega la función para que se detenga en los tls.
Sino analiza el archivo con lordpe por ejemplo y tambien sabras las direccion antes del oep donde estan los tls


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 05:03 am
ah y me olvide con el propio olly modificas donde queres que se detenga! en la opción debuggins options > events  hay tres opciones 1) system (para tls por ejemplo) 2(entry point) la más usada y Winmain (se usa en algunos packers)


Título: Re: Evitando Olly al cargar
Publicado por: $Edu$ en 14 Mayo 2012, 05:05 am
Ah ah pero entonces ejecuta algo si, solo que hasta el OEP (hablo de los programas en general), ta ahora si entiendo.. Y una cosa.. no hay metodos para que no se puedan poner BP? si se mezclan estos 2 metodos que pasa? jajaj


Título: Re: Evitando Olly al cargar
Publicado por: tincopasan en 14 Mayo 2012, 05:08 am
Claro que hay métodos anti bp! pero más vale que también se pueden saltar! te diría que leas tutoriales de unpack execryptor, trae tls y detecta los bp! sin embargo le sacan el packer jeje


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 05:15 am
@TruenoCaos:
talvéz puede compartirnos alguno de esos manuales o tutoriales que dices :P
Buena info tincopasan, sé nota el conocimiento que tines :)


Título: Re: Evitando Olly al cargar
Publicado por: x64core en 14 Mayo 2012, 05:23 am
Bueno encontre este magnifico tutorial y lo e subido, nos viene de perlas parece hahaha
trae algunas tacticas :D seguramente les sirva mejor a ustedes que a mi porque por ahora estoy
solo programando y pido ayuda de vez en cuando por aquí para que no pirateen mis APPs hahaha

http://www.mediafire.com/?n9vjmoq4i32rpf8


Título: Re: Evitando Olly al cargar
Publicado por: Иōҳ en 14 Mayo 2012, 17:12 pm
The Swash, hizo un paper sobre la tabla TLS, y sí se ejecuta antes de que llegue al OEP.


pd: Malformación en el Formato PE, si es que el Olly no está preparado para soportar una Struct PE no standar, no lo abrirá, todo lo digo teóricamente claro está :P, aunque... creo que si lo soportará... sería cuestión de probar.


Saludos,
Nox.


Título: Re: Evitando Olly al cargar
Publicado por: alhevar en 14 Mayo 2012, 18:40 pm
Pero esto es la pescadilla que se muerde la cola. Mas de uno ha querido hacer lo que tu quieres, y si las grandes empresas no consiguen evitar al Olly, tu tampoco.

Vamos que creas una forma de evitarlo y al poco tienes un pluging que pasa de el. Puedes ponerle protecciones que solo servirán para los no entendidos.

Solo que llegue un entendido y te haga un patch y ya es publico, o si no diselo a los de.....,eset, adobe, microsoft.....

Lo que quieres no lo conseguirás, ahora, ponerle las cosas dificiles a los cracker, pues es a lo máximo que puedas aspirar.

Un saludo