Conversión de código de MazarD a C#

Iniciado por DaasCook, 15 Marzo 2011, 23:45 PM

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

[Zero]

Cita de: Daas Cook en 17 Marzo 2011, 20:44 PM
Eh ostia ¿Qué os pasa?. Calma, calma... ;D

Dije que correría con privilegios de ring0, más no dije cómo se los daría.

He estado hojeando algunos artículos (si si más que esto)... Como MS Windows Internals, y... Rootkits - STWK, con lo cual terminé entendiendo que mi driver debería ser hecho en C/C++, de hecho mi driver está completo, tan solo necesitaba un buen GUI para mi inyector (por ende elegí C#)... y saber si aquel código se podía convertir (que por lo visto se puede).

Tan imbécil (?), no soy para creer que con código administrado podría crear un driver :laugh:, Lo que sí es posible, es iniciar el servicio de mi driver, y ¡Zasca! que funciona.

Prost, OS! y espero no hayan más extrañas respuestas.

Ya decía yo jaja. Me alegro que te funcione  ;D.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

Arkangel_0x7C5

una pregunta, para que necesitas inyectar código para iniciar el servicio del Driver.
La unica razon que se me ocurre es por cuestiones de sigilo. Porque no puedes aprir un proceso con permisos de administrador desde uno que no los tenga (Excepto en caso de algun bug).


Saludos

DaasCook

Cita de: Arcangel_0x7C5 en 17 Marzo 2011, 22:15 PM
una pregunta, para que necesitas inyectar código para iniciar el servicio del Driver.
La unica razon que se me ocurre es por cuestiones de sigilo. Porque no puedes aprir un proceso con permisos de administrador desde uno que no los tenga (Excepto en caso de algun bug).


Saludos

:laugh:... No estoy inyectando código para iniciar mi controlador... de hecho, es todo lo contrario; Inicio mi controlador, para poder inyectar código sin problema alguno... :xD.
for (int i = Trolling.MaxVal; i > Trolling.MinValue; i--) {
    Forum.Answer = "Don't feed the troll"; }

Arkangel_0x7C5

Cita de: Daas Cook en 17 Marzo 2011, 22:39 PM
:laugh:... No estoy inyectando código para iniciar mi controlador... de hecho, es todo lo contrario; Inicio mi controlador, para poder inyectar código sin problema alguno... :xD.
Entonces no necesitas portar ese código para inyectar, porque el propio driver puede inyectarte en el proceso que quieras. En Ring0 tiene Acceso al Espacio de memoria de todos los procesos. Pero el código de Ring3 no tiene porque funcionar en el 0.

DaasCook

Cita de: Arcangel_0x7C5 en 17 Marzo 2011, 23:18 PM
Entonces no necesitas portar ese código para inyectar, porque el propio driver puede inyectarte en el proceso que quieras. En Ring0 tiene Acceso al Espacio de memoria de todos los procesos. Pero el código de Ring3 no tiene porque funcionar en el 0.

Hmm entiendo tu punto, y no es una mala idea, pero...

Es un inyector controlado por X usuario en Ring3, no lo hago para un fin específico (no para lo que te imaginas), por tal, el usuario debe seleccionar su(s) .dll(s) y proceso(s) a inyectar.

Por eso necesito el GUI en Ring3, y un controlador en Ring0 para darme los permisos y hooks que necesito...

¿Será que te quedó claro o vendrás con más "recomendaciones"?... :-\
for (int i = Trolling.MaxVal; i > Trolling.MinValue; i--) {
    Forum.Answer = "Don't feed the troll"; }

Arkangel_0x7C5

Con DeviceIoControl  puedes comunicarte con el driver desde la GUI.

y recomendaciones....
Solo expreso mi punto de vista. Pero cada uno es libre de hacer las cosas como mejor vea.

Saludos

DaasCook

#16
Cita de: Arcangel_0x7C5 en 17 Marzo 2011, 23:55 PM
Con DeviceIoControl  puedes comunicarte con el driver desde la GUI.

y recomendaciones....
Solo expreso mi punto de vista. Pero cada uno es libre de hacer las cosas como mejor vea.

Saludos

De hecho ya la usaba, como dije mi duda era la factibilidad en cuanto a la conversión de código, no al manejo/comunicaciones entre GUI y controladores.

Y respeto el punto de vista de todos, Pero no entiendo porqué se tienen que desviar del tema original.
for (int i = Trolling.MaxVal; i > Trolling.MinValue; i--) {
    Forum.Answer = "Don't feed the troll"; }