¿Qué sería de este
blog sin mi kit de Inspector Gadget? ¡Pues eso! absolutamente nada. Si no
viniera de higos a brevas, a marearos con mis paranoicas montañas rusas de
pensamientos posiblemente superfluos, ¡aquí no quedaba ni Dios!
Esta entrada ¡cómo no!,
venía labrándose desde aquellos tiempos, en los que mimetizado con lo que sería
la esquina de la clase de redes, en aquella corta estancia de mis andanzas
colegiales, encontraba un pasatiempos que hoy me daría algo que contar.
Por internet, hemos visto información muy interesante sobre cómo
realizar modificaciones en las direcciones de memoria de juegos online, aunque
en ninguna de ellas, se vio información de cómo evadir aplicaciones
Anti-Hackers conocidas como PunkBuster o HackShield Pro.
Pues bien, en aquellos tiempos nocturnos de viciadas sin
fin, o de clases aburridas… siempre terminé topándome con un juego llamado WarRock. Entre nosotros podemos decir,
que es una fusión entre el conocido Counter Strike y el gigantesco Battlefield,
aunque por suerte este juego es gratuito, o al menos su adquisición.
Hace varios años, la seguridad del juego estaba en manos de
PunkBuster, una aplicación que evitaba que los usuarios malintencionados,
modificasen las direcciones de memoria, desde ciertas aplicaciones externas
conocidas. Lo más parecido al funcionamiento de una antivirus. Aplicaciones
como Cheat Engine, valían de mucho para realizar este tipo de “Chetos”.
Actualmente, el motor Anti-Hackers, está en manos de HackShield Pro, algo más potente en el
momento de su salida y con nuevas tecnologías para evitar a ese tipo de
personas, que se dedican en juegos online, a incluir ciertos super-poderes en
juegos bélicos. Tales como tener munición ilimitada, atravesar paredes, ver a través
de las mismas o incluso a realizar saltos de más 3000 metros… nada, lo normal.
Sin más royo que contaros, he vuelto a ser el niño de antes,
ahora sí, tratando de investigar de qué manera HackShield Pro, detecta
las aplicaciones que proveen de "super-poderes" a los personajes. He montado un
pequeño recuadro con tres simples pruebas con mis aplicaciones en Visual Basic 6, intentando
zurrar al proceso WarRock.exe.

A modo Fucker, me he dado cuenta de que a HackShield Pro, no
le gusta un pelo el Visual Basic 6, algo que veo normal, ya que hace años
absolutamente toda la información para realizar este tipo de modificaciones,
estaba escrita con este lenguaje… así que fue una forma de forzar a los
usuarios “hackers”, a migrar su sabiduría a otros lenguajes. Cosa que no
cayeron, es en la utilización de Packers/Crypters. Con lo que demuestra que
HackShield Pro se basa en detecciones por firmas y no mediante métodos
heurísticos avanzados, como por ejemplo, el tipo de librerías que cargan los
binarios atacantes. Nada nuevo… visto el funcionamiento de ciertos antivirus,
esto debe de ser peor.
Algo que se le ocurrió a las comunidades de foreros, que
realizan este tipo de trucos, es la idea de que mediante Inyecciones DLL, podrían cargar el contenido del “main“ de una
librería dinámica, con el objetivo de que las aplicaciones que modifiquen la
memoria, procedan directamente del proceso el cual vigila HackShield Pro.
¿Y cómo inyectar la librería con HackShield Pro delante de las mismísimas narices del juego?
Pues nada tan sencillo como hacerlo antes de que el
Anti-Hackers, se cargue por completo, ya que su motor no monitoriza posibles
inyecciones de código, si no se ha cargado en su totalidad. En este corto
transcurso de tiempo, es posible inyectar en memoria sobre el proceso del juego.
Así que para no dejar de lado como hicieron todos los
foreros a mi querido Visual Basic 6, he preparado una aplicación que permite
realizar inyecciones de librerías compiladas en C++ y la he cifrado con un Crypter
Runtime compilado en Delphi. La he bautizado con el nombre de EnelDLL Injector.
La aplicación muestra los procesos existentes y permite
seleccionarlos, para realizar inyecciones manuales en los mismos, incluyendo
previamente la ruta de la librería a inyectar.
Por otro lado, he incluido un modo automático el cual
monitoriza en que momento el proceso es lanzado, para automáticamente inyectar
la librería y cerrarse el programa. Este es cerrado de forma
rápida, para evitar futuras detecciones basadas en firmas de parte de
HackShield Pro.
Después de pegarme a palos con tasklist…
Y con ListDlls de sysinternals…
Salí de dudas en que la lectura de las librerías, estaba siendo
protegida por HackShield. Pero si existía algo de lo que no podían escapar,
es de Process Monitor.
No obstante, algunos desarrolladores de chetos dejan claro
que el “main” de la librería pasó por el proceso.
Y nada como lucir un nivel 100 con tan solo un click… aunque
en este caso todo quede entre nosotros... :)
Nada tan basto como, tirar una granada a una marabunta de
texturas sobre un mismo punto, y matar a 20 de un golpe.
Ver con poderes infrarrojos, el escondite de cada enemigo.
Descarga:
Pass: 4n0nym0us
PD: El ejecutable es altamente detectado por los antivirus, debido al Crypter. Pero no se asusten... está limpita :)
Saludos 4n4les! ;)