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
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 30

  • @hbfl3x50
    @hbfl3x50 ปีที่แล้ว +44

    Bring this guy to most of your conf. He just sparked kotlin to be taken seriously

  • @mohamedrejeb6595
    @mohamedrejeb6595 ปีที่แล้ว +73

    This is one of the best presentations in KotlinConf, I laughed a lot and learned a lot 🤣👏

    • @AntonArhipov
      @AntonArhipov ปีที่แล้ว +5

      It's the best 😁

    • @majacekic5466
      @majacekic5466 11 หลายเดือนก่อน +1

      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. 🤣

  • @soheibbettahar1996
    @soheibbettahar1996 ปีที่แล้ว +20

    This is the most enjoyable tech talk I've ever watched.

  • @abunaser3525
    @abunaser3525 ปีที่แล้ว +20

    he just make me interested in kotlin native ..

  • @raphaelortolan4776
    @raphaelortolan4776 ปีที่แล้ว +18

    This is a really good talk!

  • @cpepos
    @cpepos ปีที่แล้ว +9

    great and funny presentation. ~give that man a beer meme~

  • @balen7555
    @balen7555 ปีที่แล้ว +12

    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.

  • @shinyparadise
    @shinyparadise 11 หลายเดือนก่อน +2

    Чел хорош, не волнуйся так, классная подача и материал неплохой) Надеюсь будут еще видео с тобой про хакинг с котлином

  • @valizeth4073
    @valizeth4073 11 หลายเดือนก่อน +7

    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.

  • @TonyCalaider
    @TonyCalaider ปีที่แล้ว +12

    Wow, it’s really cool and funny😺

  • @alskaa1
    @alskaa1 ปีที่แล้ว +5

    Love this talk

  • @unaisulhadi9102
    @unaisulhadi9102 11 หลายเดือนก่อน +2

    Possibilities are endless 🚀 Impressive presentation, keep going.

  • @StuartGilbert
    @StuartGilbert ปีที่แล้ว +2

    I don't really need to hack any processes, but I sure do want to right now!

  • @codemachine19
    @codemachine19 ปีที่แล้ว +3

    thanks for this amazing talk =)

  • @AboveTHATUSA
    @AboveTHATUSA 11 หลายเดือนก่อน +1

    thanks from Turkey
    it was a great presentation.
    appreciate.

  • @imshahzadafridi
    @imshahzadafridi 11 หลายเดือนก่อน +1

    Interesting stuff

  • @rocktonicy7688
    @rocktonicy7688 11 หลายเดือนก่อน +2

    really cool!

  • @sunstixy
    @sunstixy 11 หลายเดือนก่อน +1

    Two things I really love, Kotlin 💜 and gaming 🎮

  • @thanosfisherman
    @thanosfisherman ปีที่แล้ว +7

    So how did he work around the WINAPI thing in his injector if not with a c++ wrapper?

    • @asm0di0
      @asm0di0 ปีที่แล้ว +5

      Probably makes sense to read the code of injector4k

    • @thanosfisherman
      @thanosfisherman ปีที่แล้ว +1

      @@asm0di0 I did but I couldn't figure it out. I'll give it another shot soon.

    • @cargeh
      @cargeh ปีที่แล้ว +1

      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

    • @thanosfisherman
      @thanosfisherman ปีที่แล้ว +1

      ​​@@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.

    • @balen7555
      @balen7555 ปีที่แล้ว +9

      @@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.

  • @xSugknight
    @xSugknight 11 หลายเดือนก่อน

    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?

  • @1mYse1LF
    @1mYse1LF 11 หลายเดือนก่อน +1

    POG

  • @sunstixy
    @sunstixy 11 หลายเดือนก่อน +1

    01:58 Oh shit, here we go again

  • @thebesttoeverexist
    @thebesttoeverexist หลายเดือนก่อน

    why would you not just use c++ why do we need this java bullshittery