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:
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:
Sin entrar en mucho detalle (recordar que estoy malito) modifico las condiciones (cond_3) en el código smali y recompilo el paquete:
Después de lo firmo:
Subo avengercracked2.apk a mi Google Drive, lo reinstalo en mi móvil y vuelvo corriendo al sillón a probarlo con GameCIH ;)
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 ;)
interesante... yo estoy jugando al Dungeon Hunter 4 y esto podría valerme }:)
ResponderEliminarlos pokes, que tiempos aquellos... jajaja
ResponderEliminarSe ve genial, lástima ke no entendí nada de lo ke hiciste...
ResponderEliminarSi hicieras un video tutorial, te haría un altar y te prendería una veladora...
El articulo es interesante pero no se entiende casi nada si hicieras un video como dice george rodriguez seria mejor
ResponderEliminarjejej... este juego hace tiempo que lo dejé... aunque me algo de pereza hace videos, quizás para el próximo... ;)
ResponderEliminarviejo 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.
ResponderEliminarsera que puedes hacerlo con el 1.3.0 ya que es la version mas reciente? asi no te molestamos mas :P
ResponderEliminarno verificado: http://pro-hacks.org/dark-avenger-hack-tool-cheats/
EliminarDime podrias hackear monster warlord por favor
ResponderEliminarthis work for 1.3.2 ???
ResponderEliminarque es lo que modificas en el codigo smali amigo??????????
ResponderEliminarPor 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
ResponderEliminaroye 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.
ResponderEliminarEntiendo mejor el chino antiguo, parece funcionar pero no poderia con tanto, si pudieras cambiar clash of clans te agradeceria
ResponderEliminar