Proyecto: DbgDetections (Testea la dureza de tu OllyDbg)

Iniciado por Mad Antrax, 18 Enero 2013, 21:02 PM

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

Mad Antrax

Bueno, tras investigar un poco he decidido recopilar las principales funciones para detectar si un programa está siendo debuggeado. Lo he programado todo bajo VB6 ya que es el único lenguaje que domino para éste tipo de cosas, así que estoy algo limitado, ahí va:



Hay programados 17 métodos para detectar a OllyDbg, la idea del proyecto es la siguiente:


  • Ejecutar DbgDetection.exe bajo Windows, sin debugger: Probar todos y cada uno de los botones, deberían detecter que NO hay debugger
  • Ejecutar DbgDetection.exe bajo un debugger OlyDbg sin plugins ni protecciones. Probar todos y cada uno de los botones y ver las funciones que detectan tu OllyDbg
  • Ejecutar DbgDetection.exe bajo un debugger OlyDbg con plugins y protecciones. Probar todos y cada uno de los botones y ver las funciones que detectan tu OllyDbg

La idea es ver como y cada uno de éstos métodos puede llegar a detectar un Debugger, así como comprobar si tu selección de plugins/protecciones mantienen a tu OllyDbg invisible.




Como yo lo he programado, he sido el primero en probarlo :P En un OllyDbg "limpio" he conseguido detectarlo en todas las funciones.
En mi OllyDbg con un par de pluguins he conseguido ocultarlo bastante, pero seguía siendo visible con algunas funciones.

Al final he terminado usando éstos plugins:



Con todos esos plugins activos, he conseguido poner invisible a OllyDbg en todas las funciones EXCEPTO en los Timming Methods.

Espero a ver si lo podéis probar para hacer entre todos un report sobre que funciones de detección son más eficaces. Si eso ya publicaré la función de algún método que queráis usar para vuestros crackme's

DOWNLOAD: http://www.mediafire.com/?r6j87t5ddac156m
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Mad Antrax

Ojo, éste proyecto no lo he creado para que lo intentéis debuggear "a mano", no está pensado para eso. Las strings están puestas a pelo, las apis no están ocultas, no hay ningún método para finalizar el debugg (solo detecta), etc...

La idea es añadir alguna función como RaiseException o provocar un BSOD al saltar una de esas funciones en nuestros programas, para protegerlos. El proyecto es solo para testear el nivel de "invisibilidad" con el que trabajas cuando Debuggeas.
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

MCKSys Argentina

Cita de: ||MadAntrax|| en 18 Enero 2013, 21:05 PM
La idea es añadir alguna función como RaiseException o provocar un BSOD al saltar una de esas funciones en nuestros programas, para protegerlos.

Un BSOD??? No es "algo" extremo???

:xD :xD :xD
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Mad Antrax

#3
Cita de: MCKSys Argentina en 18 Enero 2013, 21:09 PM
Un BSOD??? No es "algo" extremo???

Que va! por el momento las Timming Methods no he conseguido detenerlos con ningún plugin. Así que lanzamos BSOD al saltar el evento y ya verás como al cracker s ele pasan las ganas de seguir debuggeando xD

Por cierto, has probado el proyecto? Alguna de las funciones detecta tu debugger?

RtlSetProcessIsCritical + TerminateProcess / PostMessage WM_CLOSE / End / etc... = BSOD
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

apuromafo CLS

#4
actualmente en el depurador que uso, me detecta solo en 1 debido al combo
RaiseException , mas otros, no he probado en cambiar ningun codigo a mano, solo ir tildando o destildando opciones...


---------------------------
DbgDetection
---------------------------
Function: timeGetTime

Return value: 51

Debugger detected: YES
---------------------------
Aceptar  
---------------------------


Es el evo_dbg  con ciertas opciones de poison y otras marcadas.

saludos Apuromafo

Mad Antrax

Acabo de actualizar el programa, ahora se pueden testear todos los métodos de golpe, muestra en una ventana si el programa ha detectado un debugger en el entorno.

Y para zanjar este proyecto, dejo el source completo. Solo el plugin Phantom.dll y StrongOD.dll puede poner el OllyDbg invisible, a excepción de los timing methods, que no he logrado hacerles el baypass de forma automatizada. Si alguien conoce algún metodo para evitar la detección por timming, agradeceré que lo comparta.

De todas formas, no viene mal mirar estos metodos y aplicarlos a nuestros crackme's, ya que un cracker novatillo no sabrá saltarselos.



DOWNLOAD + SOURCE: https://mega.co.nz/#!I0gUARxa!HyYJ42pMteq9lRwgAsqTI0-qIpgH0XP6sPT5mSBmMtE
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

EscritoEstáSatanás

Aunque yo no soy de esto de la ingenieria inversa, me gusta mucho ese proyecto y lo probare.

XD Solo con descargarme ese programa ollydbg 1.10.

Иōҳ

#7
Le de "Run All Test" y me detectó QueryPerformanceCounter, el problema es que era la primera ejecución y ni el olly tenía abierto... ni ningún otro depurador.

Edit:
Lo que se me ocurre ahora, con sueño dolor de cabeza y todo la fiaca del mundo, es hacerle un hook (plugin para olly) a las funciones  de timming y devolver 0 o un valor bajo.

Nox.

Eres adicto a la Ing. Inversa? -> www.noxsoft.net

x64core

#8
Un programa derrotando todos esos plugins, testearlo con sus depuradores:
http://www.sendspace.com/file/7csso8

Si ningun depurador es detectado se mostrara un mensaje confirmandolo, de lo contrario no se mostrara nada.

-
Lo intente con todos los plugin publicos que conozco y todos fueron derrotados  :rolleyes:
Dan ganas de hacer un plugin para olly...


MCKSys Argentina

No sé qué plugines probaste, pero Olly pelado sólo con StrongOD no es detectado:


Quizás no probaste todas las configs?

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."