Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.
Autor
|
Tema: [SRC][FASM]Deteccion de Debugger utilizando ReadTimeStampCounter (Leído 2,902 veces)
|
[L]ord [R]NA
Desconectado
Mensajes: 1.507
El Dictador y Verdugo de H-Sec
|
Autor: R.N.A. Descripcion: La funcion de esta pieza de codigo es comparar los ciclos del reloj del procesador en dos tiempos diferentes, entendiendo que si sobrepasa una cantidad de ciclos entre los dos intervalos de tiempo es posible que el codigo este siendo debuggeado. Esta funcion se utilizara en el proyecto AthenaBot (Claro esta con algunas mejoras). TimingDebug: ;Verificando si estamos siendo Debuggeados usando el Ciclo del Reloj del procesador. pushad ;Empujamos a la pila el valor de los registros. rdtsc ;Devuelve el numero de ciclos totales del reloj del procesador en EDX:EAX) xchg ecx, eax ;Movemos el valor de EAX a ECX xchg ebx, edx ;Movemos el valor de EDX a EBX push ecx ;Desde aqui agregamos una cierta cantidad de codigo basura o el codigo que no deseamos ;que sea debuggeado. inc esi dec edi xchg edi, esi pop ecx nop push eax pop eax nop ;Aqui terminamos el codigo basura. rdtsc ;Tomamos nuevamente el numero de ciclos del reloj del procesador. cmp edx, ebx ;Comprobamos que EDX y EBX tengan el mismo valor. ja _ifoundit ;Si EDX es mayor que EBX estamos siendo Debuggeados. sub eax, ecx ;Restamos ECX a EAX. cmp eax, $200 ;Comparamos eax con 200h (En el caso de esa pequeña porcion de codigo... el valor puede variar) ja _ifoundit ;Si EAX es mayor que 200h estamos siendo Debuggeados. jmp __$end ;Saltamos al final. _ifoundit: ;Etiqueta a la que se saltara si estamos siendo Debuggeados. mov dword[esp+$1c],$1 ;Movemos el valor 1 a 1ch bytes con respecto a ESP. __$end: ;Etiqueta para el fin de la funcion. popad ;Retomamos de la pila el valor de los registros. ret ;Retornamos el programa a despues de la llamada a la funcion.
|
|
|
|
|
En línea
|
|
|
|
☺BADMAN
Desconectado
Mensajes: 51
Este es un Moderador de CPH
|
Perpicaz e inmaginativa manera de detectar el olly jeje 
|
|
|
|
|
En línea
|
Experto en Biefrost. Subseven User. Especialista en crypters. Tifa FAN Batch Programer XD 
|
|
|
|
Karcrack
|
No es un método muy buena la verdad... Dependiendo del ordenador, de la cantidad de procesos que estén trabajando todo esto puede fallar... Ademas que un Cracker con algo de practica al ver que le detecta el Olly simplemente se fijara un poco mas... vera el rdtsc y simplemente pondrá un BP un poco mas adelante de la comprobación... Para el Athena curraros algo mejor! 
|
|
|
|
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.507
El Dictador y Verdugo de H-Sec
|
En mi ordenador personalmente termina de hacer las instrucciones antes de los 50ciclos con varias aplicaciones abiertas (2WLM, FireFox, VLCMedia, FASM  , Olly, IDA y el OpenOffice Writer), por lo tanto no creo que exista un problema por los ciclos, ademas las tecnicas de anti-debugging no son 100% efectivas ninguna... la tarea de estas es complicar el analisis.  estoy preparando algo con una idea que me dio Arkangel.
|
|
|
|
|
En línea
|
|
|
|
|
Karcrack
|
El problema de esta técnica es que necesitas que el Cracker este ejecutando el fichero instrucción por instrucción, y si ve el rdtsc y sigue con el F8 es que es un poco imbécil  Lo mejor para saltarse el Olly es usar técnicas que se lo cargan, hay varios errores algunos públicos otros no... lo mejor es que hace muchisimo que no sacan actualizaciones 
|
|
|
|
|
En línea
|
|
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
hay plugins para saltarse la deteccion con rdtsc y tb para el TLS CallBack.
|
|
|
|
|
En línea
|
|
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
esta claro que 100% no existe nada, pero es menos evidente creo dejar codigo erroneo aproposito que genere una excepcion y asi controlar el flujo de ejecucion del programa. por ejemplo este pequeño codigo bajo un depurador ejecuta todo el rato las mismas instrucciones, sin depurador su ejecucion es correcta. push TodoBien push dword [fs:0] mov [fs:0],esp db 0F1h ; generar single step Mareo: ;Desde aqui push 0 push msg push msg push 0 call [MessageBox] test eax,eax jz $ jmp Mareo ; Hasta aqui, es basura. no vale para nada el codigo y solo se ejecuta bajo un depurador. TodoBien: push 0 push t push t push 0 call [MessageBox] push 0 call [ExitProcess]
|
|
|
|
|
En línea
|
|
|
|
|
[Zero]
|
Tampoco es poco evidente, cuando en un virus ves un fs:[0] ya ves automáticamente que es lo que hay que hacer. Además el Olly te lo marca automáticamente como SEH Installation. El mejor método es el que no está documentado, pues sea cual sea, si no es nuevo, con una búsqueda en google encuentras como saltártelo. Pero bueno, el objetivo de los antidebug no es principalmente saltarse que analicen tu software con un debuger (que tambien), sinó más bien lo que se quiere evitar es el análisis heurístico de los AV, y es ahí en donde hay que probar si funciona  . Saludos
|
|
|
|
|
En línea
|
“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.” Nietzsche
|
|
|
bizco
Desconectado
Mensajes: 698
|
claro, pero eso es un ejemplo, se puede complicar mas la cosa. tb se puede descifrar zonas de codigo "a peticion", solo cuando necesiten ser ejecutadas mientras esa zona pude tener basura o simplemente nada. todo es imaginacion.
|
|
|
|
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.507
El Dictador y Verdugo de H-Sec
|
Eso que propones seria otro tema, ya hablariamos de encriptacion.
|
|
|
|
|
En línea
|
|
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.507
El Dictador y Verdugo de H-Sec
|
Ingenioso el metodo pero recordad recordad que existen mas debugger que el olly   lo recuerdo cada dia de mi vida
|
|
|
|
|
En línea
|
|
|
|
☺BADMAN
Desconectado
Mensajes: 51
Este es un Moderador de CPH
|
Despues que el Bot caiga en las garras de los Crackers de Panda necesitaran mas que magia para que no saquen hasta la ultima cadena de caracter escondida ..... Con seis programadores del proyecto athena se tendra que trabajar en turnos dobles las 24 horas del dia sacando parches y actualizando zombies para mantenerla ..
|
|
|
|
|
En línea
|
Experto en Biefrost. Subseven User. Especialista en crypters. Tifa FAN Batch Programer XD 
|
|
|
|
|