elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Evitar que te borren los Debug registers en un debugger ring3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar que te borren los Debug registers en un debugger ring3  (Leído 3,286 veces)
biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Evitar que te borren los Debug registers en un debugger ring3
« en: 18 Junio 2009, 04:14 am »

He googleado bastante y nada,

Alguien sabe como hace el olly esto? estoy intentando integrarlo en pydbg y no doy con ello.
Poniendo el bit GD a 1 del Dr7 supuestamente tendria que saltar una excepcion si se hace un mov Dr7, eax pero creo que stoy confundido y solo sirve para modo privilegiado. Creo que es el SO el que se encarga de poner los debug registers despues de una excepcion pero como puedo evitar que el so haga eso desde ring3?
Espero haber sido claro, cualquier ayuda es bienvenida :)


En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: Evitar que te borren los Debug registers en un debugger ring3
« Respuesta #1 en: 18 Junio 2009, 04:25 am »

no estoy muy informado sobre el tema pero me parece que eso se hace desde el ring0  :-\

encontre esto puede te sirva puede que no

http://blog.48bits.com/?p=60
http://support.microsoft.com/kb/121093/es


« Última modificación: 18 Junio 2009, 04:30 am por x0ʎu » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Evitar que te borren los Debug registers en un debugger ring3
« Respuesta #2 en: 18 Junio 2009, 08:36 am »

"The debug registers are privileged resources; the MOV instructions that access them can only be executed at privilege level zero. An attempt to read or write the debug registers when executing at any other privilege level causes a general protection fault."

http://en.wikipedia.org/wiki/X86_debug_register#DR7_-_Debug_control


PERO existen APIs de depuracion y con SetThreadContext lo podes hacer, el hilo tiene que estar suspendido.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: Evitar que te borren los Debug registers en un debugger ring3
« Respuesta #3 en: 18 Junio 2009, 16:41 pm »

Solucionado, razon aqui: http://foro.elhacker.net/ingenieria_inversa/pydbg_el_no_va_mas_que_opinais_ayuda_con_funcion_de_carga-t258419.0.html;msg1255082#msg1255082

gracias por las molestias, al final sí se puede hacer en ring3 y sin SetThreadContext! jeje ahi viene explicado

El problema de hacerlo con SetThreadContext es que *creo*(porque lo probe y no ruló) que el so coge el context_record DESPUES del retorno de la excepcion, claro, es logico, a ver si me explico, quedaria asi:
Código:
<salto excepcion>
<manejador excepcion>
<mi controlador SetThreadContext>
<el so actualiza el contexto y por tanto los Debug registers con la estructura del contexto en memoria>
<Dr7 borrado>

solucion que me sirvióí:
Código:
<salto excepcion>
<poner breakpoint A en rutina SEH del programa>
<vuelta al so>
<salto breakpoint A, poner breakpoint B en la dir de retorno del manejador de la excepcion, borrar bp A>
<manejador excepcion>
<salto breakpoint B, restaurar el context record con los DrX, borrar BP B>
<vuelta al so>
<victoria>

Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
rootkit ring3 all windows
.NET (C#, VB.NET, ASP)
StevenKhooks 1 1,984 Último mensaje 15 Junio 2014, 22:29 pm
por kub0x
Hay forma de evitar que borren los mensajes de WhatsApp, pero no está a tu ...
Noticias
wolfbcn 0 1,565 Último mensaje 7 Noviembre 2017, 02:05 am
por wolfbcn
Reusing registers in VHDL FSM
Electrónica
Darian 0 4,871 Último mensaje 3 Julio 2019, 17:22 pm
por Darian
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines