[HN Gopher] Packet-editing games in Golang (2021)
___________________________________________________________________
Packet-editing games in Golang (2021)
Author : jszymborski
Score : 79 points
Date : 2024-03-26 05:52 UTC (17 hours ago)
(HTM) web link (remyhax.xyz)
(TXT) w3m dump (remyhax.xyz)
| bilekas wrote:
| I'm still not sure how it's going to modify the packets from the
| server side in any meaningful way though.. The packets that are
| issues server side are only modified on the client and so only if
| the client side is expecting some flag/value such as (item #) for
| example?
| tuvan wrote:
| Its value depends on how safe the games netcode is. I used to
| play an FPS game where the hits were client authoritative and
| hackers edited enemy positions and made them stand in a row in
| front of the hacker. Hacker could easily wipe the enemy team
| with that.
| phw wrote:
| An unrelated but practical example: I used to play a
| competitive ski racing game. You would race a course and upon
| finishing, your client sent the locally-determined finishing
| time back to the server, where it would end up on the global
| leader board. It was possible to modify the finishing time in-
| flight, and set it to whatever you wanted because the server
| had no way to know if a client was lying. To be fair, I did not
| succeed because the time was still "protected" by a hash whose
| input I could not be bothered to figure out.
| tmpz22 wrote:
| Plenty of games don't bother to implement server-side-
| validation exhaustively. Including big Triple A titles (which
| is why anti-cheat providers make a killing with their ring-0
| spyware).
| daghamm wrote:
| This looks interesting, but I find it hard to follow when half of
| the magic happens in some library I've never seen before. Would
| love to see something like this in plain code.
|
| "github.com/chifflier/nfqueue-go/nfqueue"
|
| "github.com/sergi/go-diff/diffmatchpatch"
|
| "github.com/google/gopacket"
|
| "github.com/google/gopacket/layers"
| nzach wrote:
| For a more stdlib-oriented implementation you could look at
| this proxy: https://github.com/jpillora/go-tcp-
| proxy/blob/master/proxy.g...
___________________________________________________________________
(page generated 2024-03-26 23:02 UTC)