Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - byebye

#241
CitarOtra cosa, en 64 bits hay que olvidarse de los hooks (al menos el software comercial).

respecto a esto, no ngo ni idea pq noe leido nada, pero porcasualidad si di con un tema que explicaban algo de eso y creo q dijeron que si se podia, de otra forma pero llegaban a lo que se queria.

repito no recuerdo dnd lo vi y no se que tendra de cierto.


y para hendrix, el tema de desargar el driver siempre hablando de el tuyo. tienes que especificarle la rutina de salida y ahi tienes lo que necesitas. intenta descargarlo sin rutina de salida a ver que pasa.

mirate en ntddk.inc la estructura DRIVER_OBJECT
#242
Citarel PEPROCESS?? En google no me sale eso

En windbg dt _EPROCESS
#243
es exportada por ntoskrnl


import ntoskrnl,DbgPrint,'DbgPrint',\
                IoGetCurrentProcess,'IoGetCurrentProcess',\
                KeServiceDescriptorTable,'KeServiceDescriptorTable'
               


PD: mirate en el ddk ntosrnl.inc y veras que sorpresa jeje, no estan todas pero las puedes ir añadiendo a mano.

#244
mira a ver si con tsearch te deja ver el valor de los registros, con cheat engine se puede y personalmente me gusta mas.  entonces reg+reg+n = direccion donde estan los datos, escribe ahi directamente. aunque lo suyo es que anotes esa direccion pilles el depurador yverifiques ue esta pasando en esa direccion. volviendo al tema del cheat engine te viene con un programa tutorial donde te enseña lo mas basico hasta el problema de la DMA y como solucionarlo.

saludos.
#245
claro, si te fijas la base del kernel era 80XX pues tiene que esta dentro de, si no es que esa funcion esta hookeada. uso windbg, kernel debug > pestaña local.
#246
CitarAsi de simple nos cepillariamos el hookeo a la zwopenprocess???

no, asi de simple hookeas el kernel. pero claro si kav ya a hookeado tb lo jodes a el ya que no se llamara a su funcion. en español no hay nada almenos publico o esta muy escondido. pero vamos te explico yo aqui en un momento como hookear la ssdt.

localizamos la base de el kernel:

Citar
lkd> dc nt
804d4000 00905a4d 00000003 00000004 0000ffff  MZ..............

OK,804d4000h

Citar
lkd> dd KeserviceDescriptorTable
8054c540  80502da8 00000000 0000011c 805033c4

OK, 80502da8h =KiServiceTable vamos a ver que nos espera aqui.



lkd> dd 80502da8
80502da8  80596d42 8057f565 8057d419 805c281a
80502db8  805754d4 806188d8 8061aa48 8061aa85
80502dc8  8056c5ec 806272c6 806183d4 8057c753
80502dd8  806123bb 8057d77a 80577729 8060bd61
80502de8  8057d532 8058feb9 805617f0 805536d3
80502df8  805100c5 8060fd31 8056720f 804e9362
80502e08  8057ac7a faa87818 8057d3e4 8062be5e
80502e18  8061b5a9 80597234 8062c08a 805759e6



lo ves? un array de punteros a funciones, de ahi que en la funcion que puse multiplicase por 4 para llegar a la posicion de la funcion (4 bytes por elemento). pues solo tenemos que escribir ahi la direccion de nuestra funcion, y si te fijas todas las direcciones empiezan por 80XXX como vimos antes la base, entonces se puede verificar que funciones estan hookeadas. antes de escribir verifica el registro CR0 no tenga el bit de proteccion de escritura y te de un pantallazo.

y eso es todo, no es nada complicado lo malo es la escasa o nula informacion. pero tocando se aprende jeje.

saludos.
#247
CitarMek, para finalizar el driver del Kav tengo que usar el IoDeleteDevice, no es asi??? Pero en este caso necesitaria el DeviceObject del Kav, como lo saco???

eso yo le veo problemas pq a saber donde tiene ese metido el morro lo cierras y despues pantallazo. lo mejor es y lo probe con el sxe que no dejaba injectar, es hookear las funciones que el hookea y no darle a el el control. y no todas las funciones con matar el proceso y poco mas yo creo que bastaria.

saludos.

PD: te dejo una funcion par hookear la funcion que le pases por argumento

proc GetAddr n
     mov eax, 4
     mov ecx,[n]
     mul ecx
     mov ecx,[KeServiceDescriptorTable]  ;LocaLizar KiServiceTable
     mov ecx,[ecx]                       ;KierviceTable
     add eax,ecx
     ret
endp         



despues la uss asi:

push 7ah    ; Numero de la funcion
     call GetAddr
     mov ecx, _NtOpenProcess  ;Direccion de la funcion que remplaza a la original
     mov [eax], ecx   ; y la escribes en la direccion que toca (que nos devolvio la funcion)



se me olvido ponerte que era el numero de la funcion. si desensamblas zwopenprocess veras esto:

77F65E55 >  B8 7A000000     MOV EAX,7A
77F65E5A    BA 0003FE7F     MOV EDX,7FFE0300
77F65E5F    FFD2            CALL EDX
77F65E61    C2 1000         RET 10



ves el numero? pues eso es lo que interesa de cada funcion. este numero no es fijo pero se puede leer en runtime.
#248
CitarPD2: No insistan matar al KAV es muy dificil  por no decir imposible

imposible seguro que no es. ya esta claro lo que el hace y es por ejemplo en openprocess if pid=pid_del_kav return ERROR_ACCESS_DENIED y cositas asi. lo que hay que hacer es lo que hay que hacer.
#249
feo swamp

Citarya que no sabia que IoGetCurrentProcess estubiese en ntoskrnl, mi pregunta es: estan todas hay??

mirale la export a ntoskrnl
#250
Citarpero me dice que para depurarlo tienes que estar en otro PC y conectarse a ese PC para depurarlo, no hay otro modo???

No, esta es la unica forma que hay. lo puedes hacer de otra forma, para saber si los resultados que esperas son los correctos. bajas dbgview y usas DbgPrint para tu ver que todo esta correcto. por ejemplo yo uso esto:


     push eax
     push msg3
     call [DbgPrint]


msg3    db 'NTOSKRNL: %Xh',0

para ver si realmente encuentro la base de ntoskrnl, si te fijas DbgPrint es como printf le puedes especificar el formato. te dejo una imagen y veras que aunque no lo depures puedes saber perfectamente que esta pasando.


tb es bueno que configures win para que en caso de darte un pantallazo vuelque toda   la memoria asi despues podras depurar eso y sabras dnd a fallado.

saludos.