Resumen (clasificación de seguridad del juego)
Seraph abrirá tres betas el 22 de noviembre de 2023. El equipo de Damocles realizó un análisis y una evaluación de seguridad del juego el 24 de noviembre, pero los resultados de la evaluación no fueron satisfactorios. La primera es que la parte del proyecto retiene una gran cantidad de información de registro en el código, y de la información de registro se puede inferir que la parte del proyecto no es un equipo coreano, sino un equipo chino, y el juego usa Unity para cargar Lua. , sin proteger el código Lua, o utilizando Lua JIT y otros medios para mejorar la dificultad de la ingeniería inversa para proteger el código fuente, lo que hace que el código fuente quede completamente expuesto. Solo se necesita la función de carga de gancho para volcar el juego. código fuente de la memoria. Sin embargo, este juego es un juego ARPG. Este tipo de juego tiene una ventaja natural contra las trampas, es decir, la mayoría de los datos se sincronizan a través del servidor, lo que alivia los problemas de seguridad del juego hasta cierto punto.

Fondo del juego
Ø Versión del juego para evaluación: v0.0.0.6
Ø Tipo de juego y motor de juego: ARPG, Unity
Ø Posibles problemas con el juego:
Teletransportarse
Aceleración (acelerar el movimiento, acelerar la liberación de habilidades)
Colgar automáticamente
modificación de aumento
Modificación de la mejora de invencibilidad (que permite al personaje conservar mejoras que aumentan la producción de cristales de alma u otros
Análisis de seguridad del juego.
Protección del código del juego
1. Dado que diferentes motores tienen diferentes modos de análisis, después de obtener el EXE del juego, primero debes determinar el motor utilizado por el juego. Al identificar la información básica del juego, podemos determinar que el juego se desarrolló usando Unity.

2. A través de GameAssembly.dll y global-metadata.dat en el directorio del juego, se puede determinar que el juego usa el modo de compilación il2cpp, por lo que el código fuente se restaura a través de iL2Cppdumper.


Sin embargo, no se encontró ninguna lógica de código relacionada con el juego en el archivo dump.cs, por lo que supuse que el juego no se desarrolló en C#, sino que se cargó a través de lua, por lo que conecté las funciones relacionadas con loadbuff del juego a través del código para obtener The Ha llegado el código fuente real del juego.


Y encontré algunos comentarios interesantes en el código fuente del juego:



Conclusión del análisis:
Seraph obtuvo una puntuación de 0 en protección del código del juego, lo que significa que no hay protección alguna. En los juegos tradicionales desarrollados con Lua, a menudo se usa un intérprete de Lua personalizado y LuaJit se usa para un cierto grado de protección del código. Dado que Seraph no tiene un mecanismo sólido de protección de código, el umbral y el costo para que los jugadores malintencionados analicen el código son muy bajos. Si aparecen trampas, es injusto para los jugadores normales y puede tener un impacto en el modelo económico del juego.
Conceptos básicos del juego anti-trampas
1. En términos de detección básica anti-trampas, juzgamos principalmente si el juego carga y ejecuta lógica externa reemplazando el archivo Lua.
2. Después de inyectar la DLL de la herramienta a través de CE, verifique si el registro de terceros está impreso en el archivo de registro del juego.

3. Modifique la tasa de golpes críticos y otros datos en el juego modificando la lógica de Lua y descubrió que puede surtir efecto y no hay verificación en el juego. (La modificación de los datos de atributos es solo para una visualización más intuitiva. Este campo generalmente se almacena en el servidor y no tiene ningún efecto cuando se modifica localmente).


Conclusión del análisis:
Seraph tiene una puntuación de 0 en términos de capacidades anti-trampas. Si hay usuarios malintencionados, pueden hacer trampa a voluntad. 2. La razón principal para probar únicamente la recarga de Lua en el juego es que este comportamiento es la base para hacer trampa en los juegos de Lua. Si este punto no se puede hacer bien, otros aspectos del anti-trampas solo serán peores.
problemas de lógica del juego
Dado que se obtuvo el código fuente del juego, realizamos análisis de seguridad en la capa lógica durante el proceso de análisis y no analizamos la capa de protocolo. En términos de la capa lógica, realizamos pruebas de seguridad principalmente en los siguientes puntos, a saber:
Manipulación de atributos durante la inicialización del personaje: (Se descubrió que no hay muchos atributos sensibles en esta parte y no puede aumentar los ingresos)

El segundo es alguna manipulación relacionada con las habilidades durante los ataques activos: (descubrí que esta parte es solo para visualización y en realidad no participa en la verificación de daños)

Finalmente, está la modificación lógica cuando el monstruo es atacado (se descubre que esta modificación no tiene significado práctico. Se supone que el objetivo principal del desarrollo de este módulo es activar eventos para el registro y no hay participación real en el cálculo)

Conclusión del análisis:
Seraph no tuvo efecto en los tres puntos que manipulamos aleatoriamente, lo que demuestra que su cálculo y visualización de daños se realizan por separado, o que el cálculo lo realiza el servidor y su seguridad aún está garantizada. La puntuación es 3 puntos y 0. .
Sin embargo, parte de su determinación de daños se almacena localmente y todavía hay margen para hacer trampa.
Análisis RPC del juego
El juego utiliza protobuf para la interacción de protocolo, y las interacciones relacionadas con Web3 también utilizan esta solución. En la actualidad, esta parte no se ha probado en detalle y es posible que la parte de ProtoBuf se pruebe en detalle en el futuro.

Análisis de seguridad WEB3:
descripción general:
Actualmente, Seraph no emite tokens. El contrato Mint es un contrato NFT721 convencional que utiliza un contrato de agencia. El suministro total es 3225. Ya sea Mint o cross-chain, tiene control de roles y la seguridad en la cadena es controlable.

Seguridad del sistema económico en el juego:
En la actualidad, el método principal de extracción de oro en Seraph todavía se basa en cristales de alma. Ya sea construir una caja de alma o abrirla, el servidor solo juzga la solicitud y la inicia, y la seguridad está controlada principalmente. por el servidor, por lo que su seguridad La evaluación no está dentro del alcance de la evaluación de seguridad del cliente. Posteriormente, Damocles puede clasificar todas las solicitudes y realizar pruebas de caja negra.

Acerca de Damocles
Damocles Labs es un equipo de seguridad establecido en 2023 que se centra en la seguridad de la industria Web3. Su contenido comercial incluye: auditoría de código de contrato, auditoría de código comercial, pruebas de penetración, auditoría de código GameFi, minería de vulnerabilidades de GameFi, análisis de complementos de GameFi y. GameFi anti-trampas.
Continuaremos trabajando duro en la industria de la seguridad Web3 y generaremos tantos informes de análisis como sea posible para mejorar el conocimiento de la seguridad de GameFi entre las partes del proyecto y los usuarios, y promoveremos el desarrollo de la seguridad de la industria.
Gorjeo: https://twitter.com/DamoclesLabs
Discordia: https://discord.gg/xd6H6eqFHz


