Tocando un poco las narices al oscuro vengador...

Hacer trampas en un videojuego modificando la memoria no es algo nuevo. Los niños de los 80 ya lo conocíamos de forma similar con los POKES de Spectrum y hoy se siguen utilizando estas trampas o cheats en cualquier plataforma. Incluso hay mil y un foros donde se debaten y comparten distintos "trucos".

El caso es que llevo unos días de baja y el teclado que más he podido tocar ha sido el de la pantalla táctil de mi Nexus, así que empecé a jugar a un juego de mazmorras o RPG bastante chulo llamado Dark Avenger. Como podéis imaginar después de tostarme los ojos casi una hora decidí empezar a trastear para ver que se podía hacer con editores de memoria como GameCIH, GameGuardian o HaXplorer. Al ejecutarlo en segundo plano una "agradable" pantalla me advertía:



¡Tenemos un desafío!


Bien, podría bajarme cualquier mod del juego
para jugar off-line y tener dinero o vidas infinitas, pero sabéis que ese no es el objetivo, al menos en este blog. Tendremos por tanto que crear nuestro propio APK para eliminar el anti-cheat.

Comienzo como siempre descargando el paquete del juego con Real APK Leecher:

 

Ahora extraigo y decompilo las fuentes con apktool, esto incluye recursos (res), manifiesto (AndroidManifest) y fuentes decompiladas:

d:\> java -jar apktool.jar d "Dark Avenger.apk" salida
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\vmotos\apktool\framework\1.apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Done.
I: Copying assets and libs...

Después de echar un vistazo a las actividades de la aplicación dentro del AndroidManifest.xml y husmear el directorio de salida mi objetivo es la función
OPT_CIH_CHECK en .\salida\smali\com\gamevil\lib\GvActivity.smali:
sget v2, Lcom/gamevil/lib/profile/GvProfileData;->OPT_CIH_CHECK:I

    invoke-static {v2}, Lcom/gamevil/lib/profile/GvProfileData;->isDisabled(I)Z

    move-result v2

    if-nez v2, :cond_1

    .line 238
    iget-boolean v2, p0, Lcom/gamevil/lib/GvActivity;->isFirst:Z

    if-nez v2, :cond_2

Sin entrar en mucho detalle (recordar que estoy malito) modifico las condiciones (cond_3) en el código smali y recompilo el paquete:

D:\>java -jar apktool.jar b salida avengercracked.apk
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs...
I: Building apk file...

Después de lo firmo:

java -jar signapk.jar certificate.pem key.pk8 avengercracked.apk avengercracked2.apk
 
Subo avengercracked2.apk a mi Google Drive, lo reinstalo en mi móvil y vuelvo corriendo al sillón a probarlo con GameCIH ;)

14 comentarios :

  1. interesante... yo estoy jugando al Dungeon Hunter 4 y esto podría valerme }:)

    ResponderEliminar
  2. los pokes, que tiempos aquellos... jajaja

    ResponderEliminar
  3. Se ve genial, lástima ke no entendí nada de lo ke hiciste...
    Si hicieras un video tutorial, te haría un altar y te prendería una veladora...

    ResponderEliminar
  4. El articulo es interesante pero no se entiende casi nada si hicieras un video como dice george rodriguez seria mejor

    ResponderEliminar
  5. jejej... este juego hace tiempo que lo dejé... aunque me algo de pereza hace videos, quizás para el próximo... ;)

    ResponderEliminar
  6. viejo y si lo haces con el dark avenger 1.2.8 y lo subes ya listo. por que la verdad no te entendi ni j.

    ResponderEliminar
  7. sera que puedes hacerlo con el 1.3.0 ya que es la version mas reciente? asi no te molestamos mas :P

    ResponderEliminar
    Respuestas
    1. no verificado: http://pro-hacks.org/dark-avenger-hack-tool-cheats/

      Eliminar
  8. Dime podrias hackear monster warlord por favor

    ResponderEliminar
  9. this work for 1.3.2 ???

    ResponderEliminar
  10. que es lo que modificas en el codigo smali amigo??????????

    ResponderEliminar
  11. Por favor quiero aprender y no entiendo nada T-T ¿puedes explicar un poco mas detalladamente cada cosa? o hacer un vídeo te amare para toda la vida :33

    ResponderEliminar
  12. oye entendi que modificas un salto a una condicion, segun los opcodes dalvik, es cierto que lo modificas o modificas la condicion completa?, mira estoy en proceso de hacer lo mismo q hiciste tu pero tengo una duda, encontraste la referencia al troast(texto) que aparece y despues modificaste el salto para no tomarlo??? estoy haciendo lo mismo con una apk dif y no encuentro la referencia al texto que aparece.

    ResponderEliminar
  13. Entiendo mejor el chino antiguo, parece funcionar pero no poderia con tanto, si pudieras cambiar clash of clans te agradeceria

    ResponderEliminar