KERNEL LAND hooking para hackear el sxe injected antichit

Iniciado por CCA, 11 Enero 2008, 19:58 PM

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

CCA

buenas, tengo una duda con kernel land hooking estuve viendo qye ciertos cheats para sxe la mayor cantidad digamos se hacen con  SSDT hooking en modo kernel, y el sxe injected usa un driver para hookear en system service descriptor table, entonces supongo que el cheat hookea primero y luego el anticheat o sino visceversa lo cuaol no entinedo muy bien, el tema es que esta forma de hook a ssdt es muy documentada dicen, y se puede lograr, con vistas a poder hookear ssdt sin que el anticheat me detecte.

la otra cosa es que otras formas de hook en modo kernel hay aparte de ssdt hooking para poder usar todas las funciones que necesito y que no puedo usar en modo de usuario porque ese anticheat hookea en modo ring 0 y me las deniega de hookearlas en modo usuario no...... alguien seria capaz de tirarme algunos codigoz o sino algo de informacion seria para empezar a realizar estos hooks en modo kernel y tratar de que no me chape este anticheat,,, aprecio links, textos, y si viene algun ejemplo de codigo en ensamblador, c++, pascal bienvenido para empezar a entender como hacer esto saludos


CCA

hola como nadie me responde  :-\ estuve buscando por mi propia cuenta y he encontrado este libro que ya lo estuve mirando y creo que me puede servir mucho, sin embargo me agradaria que me respondieran alguna ayuda, gracias

Microsoft_Windows_Internals - the book you must read



Microsoft® Windows® Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000
By Mark E. Russinovich, David A. Solomon
...............................................
Publisher: Microsoft Press
Pub Date: December 08, 2004
ISBN: 0735619174
Pages: 976

OVERVIEW

The premier guide to the Windows kernel now covers Windows Server 2003, Windows XP, and Windows 2000, including 64-bit extensions. Get the architectural perspectives and insider insights needed to unlock the power of Windows.

------------------------------

http://rs250.rapidshare.com/files/74779556/Microsoft_Windows_Internals.rar


CCA


WHK

Mas vale tarde que nunca
http://coco-guagua.blogspot.com/2009/08/protocolo-del-sxe-injected.html

a mas de alguno le va a interesar.




Protocolo del sXe injected.

Protocolo sXe Injected

Bueno despues de pensarlo bien decidimos hacer publico el protocolo de sXe Injected, podeis crear vuestros propios emuladores o para la gente que quiera hacer una implementacion para sistemas operativos oficialmente no soportados (linux,sistemas de 64 bits y todo aquel SO donde cs pueda ser ejecutado).

Protocolo base: Esta es la forma que el cliente se comunica con el servidor y se verifica que tengas el sXe injected y la version requerida en el servidor.

Lo primero es hookear el mensaje de usuario "sXe-I", este mensaje de usuario consta de un char que es la version (actualmente seria 7.8 lo que nos enviaria el servidor) y una variale de tipo DWORD (time_t), yo personalmente tengo un struct para manejar todo esto, ya es cosa de cada cual adaptarlo a su manera. Esta ultima variable es lo que hace que el hash de validacion sea dinamico y no sea siempre el mismo.

Ahora que ya sabemos que es lo que se nos envia, tenemos que ver que hacemos con estos datos. Tenemos que montar una cadena exactamente de este estilo:

sprintf(tmp,"%s%s.%s.%s.%s.%d",rep.version,t2,t,t4,t3,rep.num);

siendo rep.version la version que nos envia el servidor, t2,t,t4 y t3 son las partes de la direccion ip del servidor ordenadas de esta forma:

si la ip fuese 10.11.12.13 nos quedaria de esta forma: 11.10.13.12.

y rep.num es la una variable del tipo DWORD (time_t) que como mencionamos antes es variable siempre (mirar la funcion time).

De este modo y con la ip ficticia nos quedaria la cadena de esta forma:

7.811.10.13.12.DATOS-VARIABLES

Solos nos queda sacar el hash md5 de la cadena y mandarle la respuesta al servidor de esta forma:

[sXe-I-Reply] %s CLEAN 32 , siendo %s el hash md5 anterior. De esta forma el servidor nos toma como un cliente que realmente esta usando sXe injected y con 32 bits.

En la nueva version se implemento un protocolo aparte, que es la validacion por Hwid. Un pequeño consejo..... no useis algoritmos publicos porque nada mas ver el desensamblado se pudo determinar "al vuelo" que usabais RC4, ese bucle incial.... Es muy cantarin.

Bueno al lio, el mensaje de usuario que nos interesa en esta ocasión es "sXe-I-H", y solo nos llegaran otra vez datos del tipo DWORD (time_t) "aleatorios". Esta vez la cadena a montar es esta:

sprintf(Buffer,"%dSTART%dTREK",Time,Time);

esta cadena es usada como clave para la encriptacion RC4 del HWID, para asi poder enviarsela al servidor de esta forma:

[sXe-I-H-Reply] 22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D

Este HWID es falso, ya que siempre uso HWIDS falsos. ¿de donde sale esta cadena? Es el resultado de la encriptacion RC4 del HWID pasada a hexadecimal, supongo que por confundir o por comodidad a la hora de manejarla mediante comandos. Lo que mas llama la atencion despues de observar un par de veces la cadena que generaba el sXe injected es que siempre empezaba por 0x22.... Tiremos del hilo.

Un HWID sin cifrar:

1059-54A8-2B01-341D-76C8-845B-7435 = 34 caracteres

Un HWID cifrada:

22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D = 70 caracteres.

Ummmmmmm que cosas, 70 de longitud y 24 la otra 70 / 2 = 35.... Joder que casualidad, 34 sin cifrar y cifrada me da 35... y hay un carácter fijo, descontemos ese 22 y tenemos exactamente esto: 70 /2 -1 = 34 demasiada casualidad es todo esto. pero mas aun si pasamos el 34 a hexadecimal.... Veamos 34 decimal 0x22 en hexadecimal. Esta mas que claro lo que es ese 22 inicial, no es mas que la longitud del HWID sin cifrar.

Una vez tenemos esto claro nos queda bien poco, en mi caso uso un fichero de texto para cargar HWIDS falsos, montar la clave de la forma que mostramos antes , cifrar el HWID y enviarlo al servidor cuando nos lo pida. Bueno pues ya llegadoa a este punto nos queda enviar este reply al servidor:

[sXe-I-H-Reply] 22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D

Con esto nos validamos como usuarios de sXe injected y encima enviamos datos falsos para que no puedan banearnos, ya tenemos nuestro propio cliente para sXe injected 100% funcional, valido para cualquier sistema y con la seguridad de no ser baneados localmente por el anticheat.

Fue divertido revertir completamente el anticheat, publico esto sin codigo fuente por evitar la oleada de chetos en todos los servidores, esto es todo con fines educativos y para que el que entienda pueda portar sXe injected a su sitema favorito.

Si alguien esta interesado en portar el anticheat y le quedan dudas puede ponerse en contacto conmigo atraves de sicheats y sin problemas hablamos sobre el tema.

Ahora unas lineas para mis queridos frikis, topos y insectos varios que pululan por la red. Los topos ya les he tomado cariño, y la verdad entiendo que gente que quiera jugar sin cheats hagan según que cosas para evitarlos..... esta gente no tengo mayor problemas con ellos y poco mas tengo que decir de ellas.... A excepcion de WEILAND este moderador psicopata que me banea todas las cuentas cuando me comporto correctamente en sus foros.

Los que realmente me dan asco son los que formaron parte del staff de sicheats para sacar tajada de ello, no voy a nombrarlos porque todos sabemos quien son. ¿solo queriais cheats? Jaja que pena dais, pues no teniais cheats no frikis. Ahora a alguno de vosotros piensa que soys necesarios para algo ... de cara a los cheats ¿alguna vez me ayudasteis en algo? Porque todas las sesiones que me he pegado de ollydbg y herramientas varias nunca vi a ninguno de vosotros ¿aun pensais que soys necesarios para sacar cheats? Jajajaja. Con esto no me retiro de los cheats, pero si paso pagina, y cuando sXe injected cambie o actualice el protocolo volvere a revertirlo pero ya como diversion que es lo que siempre he buscado. ¿Qué mas deciros? Poco mas, disfrutar de los cheats publicos (esos que sacais vosotros ¿Cuándo?) que sicheats continua trabajando duro como siempre.

Saludos Cocodrilo, www.sicheats.com