martes, 26 de marzo de 2013

HackShield Pro K.O. ¡A la caza del Cheto!


¡Vuelvo a la carga con ganas de jugar!, y es que si después del tostón laboral… volvemos a casa a leer enelpc y nos encontramos con una angustiosa entrada hablando de problemas personales, ¡moriríamos de estrés! Relax hermanos… ¡la crisis se irá! O si no… ¡nos iremos nosotros! 

Esta vez se me ocurrió dar la última pincelada a mi herramienta EnelDLL Injector, ahora sí, contando con una librería en C++ que inyectar al proceso del juego WarRock. Entre mil y una prueba, con noche incluida, dimití este fin de semana a seguir utilizando Windows7, para realizar el volcado de la memoria del proceso del juego. Y es que por defecto, WarRock.exe viene empaquetado con Themida, esto hace del reversing, una tarea ardua y tenebrosa. Así que me monté una máquina virtual de cero, con Windows XP a la antigua usanza y copié todo el contenido de la carpeta del juego en su escritorio, para tratar de realizar el dumpeo del ejecutable con un famoso software llamado Kernel Detective, el cual no es funcional en Windows7.

¿Cómo no? Tenía que encontrarme con problemas, después de todo, lo más importante es que en la máquina virtual se ejecutase WarRock.exe… ¡Pues no! Error 207 arrancando HackShield Pro. Ya tenía que empezar a darme guerra sin pincharle si quiera.

Así que buscando información sobre el error, me topé con lo siguiente:


¿Recuerdan la entrada de los Antis? Pues simplemente Themida se encargaba de realizar su tarea, evitando la ejecución del proceso en un entorno virtualizado. Así que era imposible ejecutar Warrock en un VMware ¿eh?

Nada más sencillo, como modificar el fichero de arranque de la máquina virtual, incluyendo unas instrucciones para deshabilitar los controles de copiado y pegado de las Isolations Tools. ¡Bypass al Themida!


Arrancando el juego y Kernel Detective, ahora sí, podremos disponernos a realizar el volcado del proceso…


Guardé como WarRock.exe y me lo llevé de nuevo a mi querida máquina real con Windows7.

Paso siguiente, sería buscar las direcciones de memoria, donde realizar las modificaciones para nuestros super-poderes. Así que tirando de foros, me hice con unos listados sencillos de los tipos de cheats que podría realizar, siendo inteligentes, si queremos realizar trucos sin ser detectados, deberíamos de utilizar aquellos en los que no se nos vea volando o matando a 20 a la vez… ya saben, ¡dos dedos de frente!

Uno de los chetos más interesantes para mí, sería el que me diera la posibilidad de hacer las paredes transparentes, así vería a todos los contrincantes venir. ¡Pero claro! o bien activo y desactivo el cheto constantemente, o bien me conozco el mapa mentalmente para no chocarme con las paredes transparentes. ;)

El truco es conocido como GlassWall, nada que ver con WallHack, lo último es atravesar paredes jejej. Según palabras textuales de los foros de MPGH.net:

-[GlassWalls]-

Now we are going to find the addie for Glasswalls so search "Frustum.FarDistance". You will see:

___:004960D0 push offset flt_9E23F4

So it's #define Glasswalls 0x9E23F4

¿Sería posible encontrar Frustum.FarDistance en mi volcado? Nada mejor que utilizar IDA Pro, para estos casos. Así que buscando la dirección actual, me encontré fácilmente con el PUSH.


Otra de las direcciones necesarias para realizar el cheto, es el puntero del jugador, con lo que realizando la búsqueda, esta sí un poco más compleja, la encontré.
Cogí mi proyecto y fui directo a Dev C++ 32 Bits para compilarlo, un simple IF a la espera de la tecla F6, con la función GetKeyState, sería la encargada de poner el valor en 1 ó 0 para activar/desactivar.


Aunque conseguí hacerlo funcionar, otro problema apareció en la sombra de HackShield Pro. Al rato de jugar con la librería cargada en memoria, aparecía el siguiente mensaje que cerraría mi actividad.


Después de ofuscar el código manualmente y no encontrar solución, decidí darle vuelta a la tortilla y actualizando mis Service Packs, descargué Visual Studio C++ 2010 para realizar otra compilación.


No contento con esto, se me ocurrió buscar uno de los softwares punteros en protección de librerías DLL desarrolladas en C++. Nada como VMProtect Professional v2.05, con controles Anti-Debuggin a nivel de usuario y Kernel, protecciones al Entry Point


Con el consiguiente resultado, desde RDG Packer Detector, se necesita de sus métodos heurísticos para detectar el Packer.


EnelDLL Injector en automático y…


SPAM! SPAM! SPAM! SPAM! SPAM! SPAM!


ANTES…


DESPUÉS…


PD1: La tecla para activar la última compilación del cheto es Insert.

PD2: Un enorme abrazo a los grandes de Flu Project, Juan Antonio Calles y Pablo Gonzalez. Vuestro proyecto Flu-AD, sí que es una muestra del auténtico étical injection.

PD3: Cabrones, que vergüenza pasé con mis atuendos en el escenario de RootedCon jajajaj

11 comentarios:

  1. y la foto de los atuendos en el rooted? ;-P
    jeje buenos trucos pero a mi me matarían hasta con todos los trucos del mundo :(

    ResponderEliminar
    Respuestas
    1. Vamos poco a poco... ya he puesto la del esquimal en el perfíl! jajaj

      No creo que te matasen tan rápido, inclusive yo me dejo morir para que vean que no quedo 15-0 en todas xD

      Saludos!

      Eliminar
  2. Me apunto a la petición de los atuendos !

    ResponderEliminar
  3. bro mandame el Kernel Detective ya entendi el truco

    ResponderEliminar
  4. disculpa amigo tengo una gran duda existencial, cual es que juego un mmorpg cual usa hackshield pro y quería saber si se puede aplicar lo mismo en el, de lo que tu haces en WarRock

    ResponderEliminar
    Respuestas
    1. yo tengo la misma duda, espero que puedan ayudarnos :)

      Eliminar
    2. yo tambien tengo la misma duda :/

      Eliminar
  5. Buenas Brother, ya se que tu publicacion es del 2013 pero por si ves este comentario quisiera preguntarte como puedo hacer un hack en un juego que tiene HackShield Pro y Nexon Security y cuando abro un programa como Cheat engine a los 10 segundos me cierra todo y nose como hacerlo, si me podrias ayudar amigo,
    Saludos

    ResponderEliminar
  6. el GLASSBALL FUNCIONA EN TODO LOS JUEGOS ?

    ResponderEliminar
  7. una consulta man espero que me respondas por favor , en caso de no lograr desenpaquetar themida . con tan solo un dump ya puedo buscar address con el IDA y asi hacer hackz/trainer del juego que estoy atacando ?

    ResponderEliminar