Takaisinmallinnus peleissä ja uudelleentoteutus
Kilpeläinen, Emil (2024)
Kilpeläinen, Emil
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052917349
https://urn.fi/URN:NBN:fi:amk-2024052917349
Tiivistelmä
Tässä opinnäytetyössä tutkittiin videopelin takaisinmallinnusprosessia ja sen käyttöä pelipalvelimen luomiseen. Työn tarkoituksena oli laajentaa lukijan tietoa takaisinmallinnuksesta ja kuinka sitä voi käyttää peleihin. Erityisesti keskityttiin projektiosuudessa siihen, kuinka takaisinmallinnettua peliä voidaan käyttää oman palvelimen kehittämisessä. Tutkimuksen intohimo syntyi aiemmista kokemuksista takaisinmallinnuksen kanssa ja tahdosta syventää osaamista.
Aluksi käytiin läpi takaisinmallinnuksesta: mikä on takaisinmallinnus, millaista se on videopeleissä, sen laillisuutta, estämismenetelmiä ja projektiosuuden toteutukseen käytettyjä sovelluksia, kuten Visual Studio, Ghidra, Wireshark ja kohdepeli PwnAdventure 3. Nämä antoivat hyvän perustan takaisinmallinnuksen toteuttamiselle. Työssä käsiteltiin myös palvelimia ja palvelinarkkitehtuureja, minkä tarkoitus oli auttaa ymmärtämään niiden roolia ja toimintaa peliympäristössä. Projektiosuudessa takaisinmallinnettiin kohdepeliä ja sen pohjalta kehitettiin omaa pelipalvelinta.
Projektin tulokset osoittivat, että takaisinmallinnuksen avulla voidaan luoda oma pelipalvelin sekä syventää ymmärrystä takaisinmallinetun pelin rakenteesta ja sen sisäisistä toiminnoista. Oma palvelin kykeni emuloimaan alkuperäisen pelipalvelimen toimintoja onnistuneesti, myös mahdollistaen soveltamisen. Tulokset myös osoittivat takaisinmallinnuksen potentiaalin pelien turvallisuuden parantamisessa.
Tutkimuksella sai paremman käsityksen takaisinmallinnuksen hyödyistä sovellusten kehityksessä. Se auttoi ymmärtämään eri tapoja, kuinka estää pelien väärinkäyttöä sekä peleissä huijaamista. Toiminnallisessa osuudessa näki, että takaisinmallinnus on myös hyödyllinen taito ja voimakas työkalu ohjelmoijalle. Työn olisi pystynyt myös tekemään hyödyntäen pääomaisesti Wiresharkia ja takaisinmallintamalla pelin alkuperäisen palvelimen pelin sijasta, mutta pelin takaisinmallintaminen kokeutui monikäyttöisemmäksi ja mahdolliseksi ilman pyörivää palvelinta. This thesis examined the process of reverse engineering video games and its use in creating a game server. The purpose of the work was to expand the reader’s knowledge about reverse engineering and how it’s applicable to video games. The project part of the thesis specifically focused on how a reverse-engineered game could be used in the development of one’s own server. The idea for this research came from previous experiences with reverse engineering and the desire to deepen the knowledge with it.
Initially, the study covered the basics of reverse engineering: what it is, how it applies to gaming, it’s legality, prevention, and the applications used in the work, such as Visual Studio, Ghidra, Wireshark and the target application PwnAdventure 3. These provided a solid foundation for starting to reverse engineer. The thesis also covers servers and server architectures, aiming to help the reader understand the server’s role and functionality in a gaming environment. In the project part of the thesis, the game was reverse-engineered and used for the development of a custom game server.
The project results showed that reverse engineering can be used to create own servers and deepen the understanding of the reverse-engineered game’s structure and internal functions. The custom server was able to successfully emulate the functionality of the original server, also allowing for modifications. The results also showed the potential of reverse engineering in enhancing games’ security.
The research provided a better understanding of the benefits of reverse engineering in application development. It provided insight into different methods for preventing misuse and cheating in video games. The project’s implementation showed that reverse engineering is also a useful skill and a powerful tool for a programmer. The project could have been implemented using Wireshark and by reverse engineering the original server instead of the game, but reverse engineering the game proved to be more versatile and feasible without a running server.
Aluksi käytiin läpi takaisinmallinnuksesta: mikä on takaisinmallinnus, millaista se on videopeleissä, sen laillisuutta, estämismenetelmiä ja projektiosuuden toteutukseen käytettyjä sovelluksia, kuten Visual Studio, Ghidra, Wireshark ja kohdepeli PwnAdventure 3. Nämä antoivat hyvän perustan takaisinmallinnuksen toteuttamiselle. Työssä käsiteltiin myös palvelimia ja palvelinarkkitehtuureja, minkä tarkoitus oli auttaa ymmärtämään niiden roolia ja toimintaa peliympäristössä. Projektiosuudessa takaisinmallinnettiin kohdepeliä ja sen pohjalta kehitettiin omaa pelipalvelinta.
Projektin tulokset osoittivat, että takaisinmallinnuksen avulla voidaan luoda oma pelipalvelin sekä syventää ymmärrystä takaisinmallinetun pelin rakenteesta ja sen sisäisistä toiminnoista. Oma palvelin kykeni emuloimaan alkuperäisen pelipalvelimen toimintoja onnistuneesti, myös mahdollistaen soveltamisen. Tulokset myös osoittivat takaisinmallinnuksen potentiaalin pelien turvallisuuden parantamisessa.
Tutkimuksella sai paremman käsityksen takaisinmallinnuksen hyödyistä sovellusten kehityksessä. Se auttoi ymmärtämään eri tapoja, kuinka estää pelien väärinkäyttöä sekä peleissä huijaamista. Toiminnallisessa osuudessa näki, että takaisinmallinnus on myös hyödyllinen taito ja voimakas työkalu ohjelmoijalle. Työn olisi pystynyt myös tekemään hyödyntäen pääomaisesti Wiresharkia ja takaisinmallintamalla pelin alkuperäisen palvelimen pelin sijasta, mutta pelin takaisinmallintaminen kokeutui monikäyttöisemmäksi ja mahdolliseksi ilman pyörivää palvelinta.
Initially, the study covered the basics of reverse engineering: what it is, how it applies to gaming, it’s legality, prevention, and the applications used in the work, such as Visual Studio, Ghidra, Wireshark and the target application PwnAdventure 3. These provided a solid foundation for starting to reverse engineer. The thesis also covers servers and server architectures, aiming to help the reader understand the server’s role and functionality in a gaming environment. In the project part of the thesis, the game was reverse-engineered and used for the development of a custom game server.
The project results showed that reverse engineering can be used to create own servers and deepen the understanding of the reverse-engineered game’s structure and internal functions. The custom server was able to successfully emulate the functionality of the original server, also allowing for modifications. The results also showed the potential of reverse engineering in enhancing games’ security.
The research provided a better understanding of the benefits of reverse engineering in application development. It provided insight into different methods for preventing misuse and cheating in video games. The project’s implementation showed that reverse engineering is also a useful skill and a powerful tool for a programmer. The project could have been implemented using Wireshark and by reverse engineering the original server instead of the game, but reverse engineering the game proved to be more versatile and feasible without a running server.