Video Game Hacking using Kotlin/Native by Ignat Beresnev
ฝัง
- เผยแพร่เมื่อ 11 ก.ค. 2024
- Recording brought to you by American Express. americanexpress.io/kotlin-jobs
Have you ever wondered how video game hacks, trainers, and bots work under the hood? Would you like to implement one in pure Kotlin? If your answer to either question is yes, then this talk is for you! We’ll cover the theory behind basic video game hacking and see how easy it is to take the first steps with Kotlin/Native - all with approachable instructions and examples to get you started.
Talk by: Ignat Beresnev
#hacking #games #KotlinConf - วิทยาศาสตร์และเทคโนโลยี
Bring this guy to most of your conf. He just sparked kotlin to be taken seriously
This is one of the best presentations in KotlinConf, I laughed a lot and learned a lot 🤣👏
It's the best 😁
I like how he started with hacking and ended it with how to fix bugs and patch libraries. Hacking is bad, we don't do that, unless we have to fix issues. 🤣
This is the most enjoyable tech talk I've ever watched.
he just make me interested in kotlin native ..
This is a really good talk!
great and funny presentation. ~give that man a beer meme~
Here's something that would be really cool and make this much better (and I've done this in languages like Julia): hosting a REPL in the game
When you're hacking a game internally, the majority of development time is spent on the very long feedback loop of having to do the following whenever you make a change.
- recompile the dll
- restart the game, then load the map/state (which sometimes takes more than 1-2 minutes)
- reinject the dll
And you will be making a lot of changes very frequently, so you end up wasting a lot of time like this. You could streamline the experience more by having a proper hooking system, so that you only have to recompile the dll, uninject the dll from the game, and reinject, all without restarting the game.
But having a REPL is even better. Though since Kotlin/Native uses LLVM, and I presume is AoT compiled, I am not sure if there's any good REPL for it. With a REPL, you could also do exploration, which is quite necessary, e.g. to test your patterns and poke at data.
Чел хорош, не волнуйся так, классная подача и материал неплохой) Надеюсь будут еще видео с тобой про хакинг с котлином
Small correction: The windows API is NOT written in C++, it's written in C, their examples say "C++" but it's 100% C code. In C++ an equivalent API would look nothing alike.
Wow, it’s really cool and funny😺
Love this talk
Possibilities are endless 🚀 Impressive presentation, keep going.
I don't really need to hack any processes, but I sure do want to right now!
thanks for this amazing talk =)
thanks from Turkey
it was a great presentation.
appreciate.
Interesting stuff
really cool!
Two things I really love, Kotlin 💜 and gaming 🎮
So how did he work around the WINAPI thing in his injector if not with a c++ wrapper?
Probably makes sense to read the code of injector4k
@@asm0di0 I did but I couldn't figure it out. I'll give it another shot soon.
Hey! Feel free to create an issue in the repo, I'd be happy to walk you through
Not sure what you mean by solving the winapi thing though
@@cargeh thank you. I mean since Kotlin native does not yet support this WINAPI stdcall what was your workaround? How did you do it in other words if not with a c++ wrapper.
@@thanosfisherman Normally, all you do is LoadLibrary your dll in the process memory, and that will call the standard DllMain entrypoint. What Injector4k is doing is besides LoadLibraryA it'll also use another CreateRemoteThread that will execute a function from the loaded dll, that doesn't have to be the standard DllMain with stdcall calling convention.
In short, his workaround is in the dll injector.
Nice presentation! When i tried on a different process i was just getting an access denied when i tried to open the process. Any idea how to fix?
POG
01:58 Oh shit, here we go again
why would you not just use c++ why do we need this java bullshittery