En algunos casos, encontrar los códigos de trucos o hacks fue más interesante que el juego en sí. Mientras estaba jugando un par de juegos flash y encontré un artículo en Privsec, volví a encontrar el error y esta publicación es el resultado. Es de esperar que esto te intriga para probar las aplicaciones que tu empresa utiliza y que pueden ser vulnerables a un ataque del lado del cliente (con permiso, por supuesto). Mis ejemplos a continuación son de naturaleza inocente, pero hay algunos escenarios muy reales que no lo son.
Nota de responsabilidad: Esto, junto con toda la información encontrada en mi blog, tiene fines educativos solamente. Por favor, no use esta información para ganar insignias, ser colocado en tablas de clasificación, hacer trampa para obtener ganancias monetarias o cometer actividades ilegales. No solo en la mayoría de los casos está en contra de los términos de uso, sino que en algunas situaciones es flagrantemente ilegal.
ToolsNota de responsabilidad: Esto, junto con toda la información encontrada en mi blog, tiene fines educativos solamente. Por favor, no use esta información para ganar insignias, ser colocado en tablas de clasificación, hacer trampa para obtener ganancias monetarias o cometer actividades ilegales. No solo en la mayoría de los casos está en contra de los términos de uso, sino que en algunas situaciones es flagrantemente ilegal.
Cheat Engine
Burp
JPEXS Free Flash Decompiler - FFDec
Flash game of your choosing
Proceso
Opción 1 - Memory
Download Cheat Engine
Attach Cheat Engine to process
Find memory location
Modify memory location value
Opción 2 - Static Code
Obtain SWF file
Load SWF file in Decompiler
Modify SWF file
Verify Changes
Optional: Replay in session
Opción 1 - Memory
Sería negligente si al menos no mencionara Cheat Engine en un artículo sobre la modificación de juegos. Hay una plétora de tutoriales sobre cómo operar y usar Cheat Engine, así que no hablaré más de lo que ya lo ha hecho. He tenido varios grados de éxito con esto, pero en general, creo que es una herramienta impresionante para tener en tu arsenal. Puede descargarlo aquí y encontrar tutoriales y tablas de trucos aquí y aquí. Proporcionaré algunos puntos destacados para que sepa dónde encaja esto en todo el gran esquema de esta publicación y para que no sea demasiado largo. En lugar de descompilar la aplicación y hacer modificaciones, es posible que pueda modificar la aplicación sobre la marcha en la memoria. Esta es una forma rápida de modificar juegos y puede resultar fructífero cuando te apresuras. Esencialmente descarga Cheat Engine, adjúntalo al proceso de juegos, encuentra la ubicación de memoria del valor que deseas cambiar y cámbialo. Como todo esto fue una experiencia de aprendizaje para mí, no puedo garantizar la fiabilidad de esto, pero en mi caso pude hacerlo fácilmente con algunos juegos y no tanto con otros. Sin embargo, la opción de descompilación he tenido mucho éxito hasta el momento.
Opción 2 - Decompiling Obtain SWF file
Primero, necesitaremos obtener el archivo SWF para la manipulación. Puede hacer esto de varias maneras, como navegar directamente al archivo del juego flash, extraerlo del caché de su navegador o usar un proxy web para encontrar su ubicación si no puede hacerlo naturalmente. En este ejemplo, usaremos Burp como nuestro proxy web para identificar el archivo SWF. Configura tu navegador para que se ejecute a través de Burp, puedes encontrar instrucciones detalladas aquí. Debe borrar la memoria caché de su navegador para asegurarse de que se descargue el archivo. Navega hasta el juego con "Intercepción" activada. Es probable que tenga que reenviar varias solicitudes debido a anuncios y cosas de esa naturaleza, pero lo que en última instancia está buscando es una solicitud GET para un archivo SWF. Su solicitud se parecería al ejemplo siguiente.

Burp Interception
Con esto tienes dos opciones:
Vaya a la pestaña "Respuesta"> "Encabezados" y verá varios caracteres extraños, simplemente haga clic derecho y elija "Copiar en archivo" y asígnele el nombre que desee, más ".swf"

Burp Response Header
O simplemente puede navegar directamente al archivo swf (la ubicación está resaltada en verde) y puede hacer un "Archivo"> "Guardar como"
Nota lateral: Si omite la solicitud y necesita volver, siempre puede revisar las solicitudes anteriores en la pestaña Historial de HTTP.
Cargar archivo SWF en Decompiler
Cuando instale FFDec, asegúrese de incluir la "Descarga PlayerGlobal.swc", ya que esto será necesario; los otros artículos son a su discreción.

FFDec Installation
Abra FFDec y dentro de él abra el archivo SWF que guardó anteriormente. Este próximo proceso variará según el juego flash que estés intentando manipular y exactamente qué estás tratando de lograr. A modo de ejemplo, intentaremos modificar la cantidad de efectivo que comenzamos en el juego. En mi experiencia, la información más interesante se puede encontrar en el directorio "scripts" que se puede expandir en el panel de la izquierda.

FFDec Game Directory
Normalmente busco a través de los diversos parámetros y archivos ubicados dentro de ese directorio hasta que encuentro algo interesante. En este caso estoy buscando una variable llamada dinero / efectivo / moneda o algo así. La siguiente captura de pantalla muestra un ejemplo de lo que puedes encontrar dentro del juego (línea 4).

Game 1 Example
Sin embargo, algunas aplicaciones tienen estas variables enterradas dentro de un código adicional que no sobresale tan obviamente (ver línea 370)

Game 2 Example
Nota: si comienza el juego con una cierta cantidad de dinero en efectivo, entonces puede buscar ese valor también. Si no puede ubicar la variable que está buscando, podría intentar alterar otras variables que tendrán un efecto similar, como reducir el costo de todo para liberar o aumentar las caídas de botín para recursos adicionales.
Modificar archivo SWF
Para modificar el valor deseado, haga clic en el botón "Editar ActionScript" en el panel central. Haga la modificación necesaria y haga clic en "Guardar" en la parte inferior. Una vez que se hayan realizado todas las modificaciones, asegúrese de hacer clic en "Guardar" en la barra de herramientas superior también.


Edit Action Script
FFDec Save
Si encuentra múltiples variables y no está seguro de cuál tendrá el resultado deseado, entonces es prudente probar cada una individualmente. Si elige cambiar varias variables a la vez, para mantenerlas separadas, normalmente uso una cadena única para facilitar la identificación. Un ejemplo sería, cambiar variable1 a "88888" y variable2 a "99999". Si encuentra que su resultado deseado es igual a "99999", entonces sabe que variable2 es lo que querrá modificar.
Verificar cambios
Antes de cargar el juego, elimine la memoria caché de su navegador o utilice una opción de navegación privada, como el modo incógnito para Chrome o la exploración InPrivate para Internet Explorer. Dependiendo del flujo de juegos y de la variable que se modificó, puede recibir dinero después de una pantalla de bienvenida, se ha completado una determinada acción o simplemente al comienzo. Comprender el flujo del juego puede abrir muchas oportunidades para dictar cómo se comporta la aplicación, así que si estás luchando, entonces te recomendaría pasar tu tiempo allí.
En este ejemplo, el primer nivel debe completarse antes de tener acceso a su efectivo

Resultado 1
En este ejemplo, inmediatamente se te presenta tu dinero en efectivo

Resultado 2
Nota: si experimenta errores, es posible que tenga un número que sea demasiado grande y que lo reduzca para ajustarse a las restricciones de la aplicación, o elimínelo por completo si puede hacerlo.
Opcional: reproducción dentro de la sesión
Si la repetición dentro de la sesión es en última instancia el objetivo (recuerda, no hagas esto para cumplir con las insignias / tabla de clasificación ... simplemente no seas uno de "esas" personas ...) entonces regresaremos a Burp. Deberá reiniciar su navegador y borrar el caché. Esté atento a la misma solicitud que utilizó para recuperar el archivo SWF. Haga clic derecho en el espacio en blanco y seleccione "Hacer interceptar"> "Respuesta a esta solicitud"

Modify Burp Response
Reenvíe las solicitudes hasta que vea una "Respuesta desde http: //". En la pestaña "Encabezados", desplácese hasta la parte inferior donde verá los caracteres aleatorios y elimine todo lo que se encuentre allí. Haga clic derecho y seleccione "Pegar desde archivo" en el que carga el archivo SWF que modificó y presiona "Reenviar". En este punto, puedes desactivar la interceptación y disfrutar del juego dentro del navegador.
Send Modified Burp Response
Primero, necesitaremos obtener el archivo SWF para la manipulación. Puede hacer esto de varias maneras, como navegar directamente al archivo del juego flash, extraerlo del caché de su navegador o usar un proxy web para encontrar su ubicación si no puede hacerlo naturalmente. En este ejemplo, usaremos Burp como nuestro proxy web para identificar el archivo SWF. Configura tu navegador para que se ejecute a través de Burp, puedes encontrar instrucciones detalladas aquí. Debe borrar la memoria caché de su navegador para asegurarse de que se descargue el archivo. Navega hasta el juego con "Intercepción" activada. Es probable que tenga que reenviar varias solicitudes debido a anuncios y cosas de esa naturaleza, pero lo que en última instancia está buscando es una solicitud GET para un archivo SWF. Su solicitud se parecería al ejemplo siguiente.
Burp Interception
Con esto tienes dos opciones:
Vaya a la pestaña "Respuesta"> "Encabezados" y verá varios caracteres extraños, simplemente haga clic derecho y elija "Copiar en archivo" y asígnele el nombre que desee, más ".swf"
Burp Response Header
O simplemente puede navegar directamente al archivo swf (la ubicación está resaltada en verde) y puede hacer un "Archivo"> "Guardar como"
Nota lateral: Si omite la solicitud y necesita volver, siempre puede revisar las solicitudes anteriores en la pestaña Historial de HTTP.
Cargar archivo SWF en Decompiler
Cuando instale FFDec, asegúrese de incluir la "Descarga PlayerGlobal.swc", ya que esto será necesario; los otros artículos son a su discreción.
FFDec Installation
Abra FFDec y dentro de él abra el archivo SWF que guardó anteriormente. Este próximo proceso variará según el juego flash que estés intentando manipular y exactamente qué estás tratando de lograr. A modo de ejemplo, intentaremos modificar la cantidad de efectivo que comenzamos en el juego. En mi experiencia, la información más interesante se puede encontrar en el directorio "scripts" que se puede expandir en el panel de la izquierda.
FFDec Game Directory
Normalmente busco a través de los diversos parámetros y archivos ubicados dentro de ese directorio hasta que encuentro algo interesante. En este caso estoy buscando una variable llamada dinero / efectivo / moneda o algo así. La siguiente captura de pantalla muestra un ejemplo de lo que puedes encontrar dentro del juego (línea 4).
Game 1 Example
Sin embargo, algunas aplicaciones tienen estas variables enterradas dentro de un código adicional que no sobresale tan obviamente (ver línea 370)
Game 2 Example
Nota: si comienza el juego con una cierta cantidad de dinero en efectivo, entonces puede buscar ese valor también. Si no puede ubicar la variable que está buscando, podría intentar alterar otras variables que tendrán un efecto similar, como reducir el costo de todo para liberar o aumentar las caídas de botín para recursos adicionales.
Modificar archivo SWF
Para modificar el valor deseado, haga clic en el botón "Editar ActionScript" en el panel central. Haga la modificación necesaria y haga clic en "Guardar" en la parte inferior. Una vez que se hayan realizado todas las modificaciones, asegúrese de hacer clic en "Guardar" en la barra de herramientas superior también.
Edit Action Script
FFDec Save
Si encuentra múltiples variables y no está seguro de cuál tendrá el resultado deseado, entonces es prudente probar cada una individualmente. Si elige cambiar varias variables a la vez, para mantenerlas separadas, normalmente uso una cadena única para facilitar la identificación. Un ejemplo sería, cambiar variable1 a "88888" y variable2 a "99999". Si encuentra que su resultado deseado es igual a "99999", entonces sabe que variable2 es lo que querrá modificar.
Verificar cambios
Antes de cargar el juego, elimine la memoria caché de su navegador o utilice una opción de navegación privada, como el modo incógnito para Chrome o la exploración InPrivate para Internet Explorer. Dependiendo del flujo de juegos y de la variable que se modificó, puede recibir dinero después de una pantalla de bienvenida, se ha completado una determinada acción o simplemente al comienzo. Comprender el flujo del juego puede abrir muchas oportunidades para dictar cómo se comporta la aplicación, así que si estás luchando, entonces te recomendaría pasar tu tiempo allí.
En este ejemplo, el primer nivel debe completarse antes de tener acceso a su efectivo
Resultado 1
En este ejemplo, inmediatamente se te presenta tu dinero en efectivo
Resultado 2
Nota: si experimenta errores, es posible que tenga un número que sea demasiado grande y que lo reduzca para ajustarse a las restricciones de la aplicación, o elimínelo por completo si puede hacerlo.
Opcional: reproducción dentro de la sesión
Si la repetición dentro de la sesión es en última instancia el objetivo (recuerda, no hagas esto para cumplir con las insignias / tabla de clasificación ... simplemente no seas uno de "esas" personas ...) entonces regresaremos a Burp. Deberá reiniciar su navegador y borrar el caché. Esté atento a la misma solicitud que utilizó para recuperar el archivo SWF. Haga clic derecho en el espacio en blanco y seleccione "Hacer interceptar"> "Respuesta a esta solicitud"
Modify Burp Response
Reenvíe las solicitudes hasta que vea una "Respuesta desde http: //". En la pestaña "Encabezados", desplácese hasta la parte inferior donde verá los caracteres aleatorios y elimine todo lo que se encuentre allí. Haga clic derecho y seleccione "Pegar desde archivo" en el que carga el archivo SWF que modificó y presiona "Reenviar". En este punto, puedes desactivar la interceptación y disfrutar del juego dentro del navegador.
Send Modified Burp Response
No hay comentarios:
Publicar un comentario