Inicio > C/C++, Game-Hacking, GNU/Linux, Hacking y Cracking, Programación, Sistemas Operativos > Programando un Trainer para el BlackJack (Linux)

Programando un Trainer para el BlackJack (Linux)

Un trainer es una aplicación que modifica un valor en la memoria de un videojuegos, como ya expliqué anteriormente.

En el post anterior vimos un código que utilizaba las APIs de Windows para modificar el tiempo en el buscaminas de Windows, ahora veremos un código que utiliza APIs de Linux para modificar un juego perteneciente a este S.O.: el BlackJack (viene por defecto con Ubuntu).

Para esto utilizaremos ptrace, que es una función que nos proveen las librerías de Linux para programar en C, y que permite “debuggear” o “tracear” cualquier aplicación. Permite tomar el control de un proceso para modificarlo, ver sus resultados y su funcionamiento. En este caso lo utilizamos para “tomar el control de un proceso” y luego escribir en una dirección de memoria un valor, o cambiar un valor ya declarado.

ptrace is a system call found in several Unix and Unix-like operating systems. By using ptrace (the name is an abbreviation of “process trace”) one process can control another, enabling the controller to inspect and manipulate the internal state of its target. ptrace is used bydebuggers and other code-analysis tools, mostly as aids to software development. [Wikipedia]

Sinopsis

#include 

long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);

El código

#include 
#include 
#include 

int main()
{
ptrace(PTRACE_ATTACH, 3895, NULL, NULL);
wait(NULL);
ptrace(PTRACE_POKEDATA, 3895, 0x8070bd4, 1111111111);
ptrace(PTRACE_DETACH, 3895, NULL, NULL);

return 0;
}

Explicación

PTRACE_ATTACH: con esto nos “atachamos” al proceso, es decir, tomamos su control..cabe destacar que el proceso al que nos atachamos ya está en ejecución. Es como si abriera el proceso para modificarlo.

3895: es el PID (Process ID), es decir, un identificador que identifica a cada proceso, es único y diferente para cada proceso. Para poder ver los PIDs de todos los procesos en ejecución ejecutamos “ps aux” (sin las comillas) en una terminal y nos saldrá una lista con todos los procesos que se están ejecutando en nuestro sistema y en la segunda columna llamada “PID” nos sale el PID de cada proceso..cabe destacar que los PIDs son números. Este PID es el que colocamos aquí.

PTRACE_POKEDATA: esto nos permite introducir valores en la memoria del proceso al que nos atachamos anteriormente.

0x8070bd4: esta es la dirección de memoria en donde modificaremos y almacenaremos el valor que especificaremos a continuación. Esta dirección se puede obtener mediante scanmem que es un editor de memoria como Cheat-Engine, pero para Linux.

1111111111: este es el nuevo valor que se introducirá en la dirección de memoria que especificamos anteriormente. Lo pueden cambiar por los nuevos valores que quiera…cabe destacar que es un valor long en este caso, así que intenten probando este número por si el valor que quieren cambiar no cambia…

PTRACE_DETACH: dejamos seguir corriendo al proceso normalmente ya que hicimos las modificaciones que quisimos en el mismo.

 

Este código lo que hace es modificar al “Balance” en el Blackjack (juego que viene por defecto con Ubuntu). Acuerdensen que tienen que introducir el PID correcto del proceso para abrirlo y modificarlo, el PID una vez que finalizan y vuelven a abrir el proceso cambia, así que estén atentos.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: