Anti-Cheating Measures
TERA Arise has a number of security features to combat botting and illegitimate modding.
When connecting to a TERA Arise server, the server sends a serialized .NET assembly called the 'security module'. In order to communicate with the server, the client must load and execute this module. Among other things, the module dictates the packet operation code mappings for the session, and provides the key and initialization vector for decrypting the client's data center file. (The encryption parameters for the data center file are randomly generated for every TERA Arise release.)
Loading the module causes it to periodically scan for modifications to the client's code, as well as look for reverse engineering tools that are attached to the client process. A watchdog component also periodically lets the server know if it spots something suspicious (e.g. a known bot program). Anything out of the ordinary causes the game process to terminate.
A security module is only valid for a certain time period; attempting to execute it outside of this validity period causes the module to terminate the calling process. Additionally, the server has many different security modules in play at any given time, and generates new ones periodically. The module picked for a given session is random.
To prevent the client from executing a malicious security module from an imposter server, the client and server employ mTLS. This lets the client be certain that the server is, in fact, a legitimate TERA Arise server, and it gives the server a high degree of confidence (though not absolute) that the client is also legitimate. Every TERA Arise release ships with new certificates generated from a new certificate authority, meaning that only a matching client/server pair can actually talk to each other.
Last updated