00:08 < bridge> [teeworlds] ChillerDragon: you can use the packet_decode from libtw2 tools 00:11 < ChillerDragon> im not better at reading rust than c 00:11 < ChillerDragon> or does it help me reading the packet when run? 00:12 < bridge> [teeworlds] it outputs the packet 00:12 < bridge> [teeworlds] in human readable form 00:12 < ChillerDragon> how do i input it tho 00:12 < bridge> [teeworlds] the input is a bit excentric though 00:12 < ChillerDragon> stdin? 00:12 < bridge> [teeworlds] need to prefix | 00:12 < ChillerDragon> hex? 00:12 < ChillerDragon> raw? 00:12 < bridge> [teeworlds] and suffix | after the hex 00:12 < bridge> [teeworlds] yes 00:12 < bridge> [teeworlds] hex 00:12 < ChillerDragon> ok 00:12 < ChillerDragon> sounds good 00:13 < bridge> [teeworlds] oh wait, coming from you it might be a 0.7 packet 00:13 < bridge> [teeworlds] don't have support for that 00:14 < ChillerDragon> meh 00:14 < ChillerDragon> i mean cool and all but a bit of a weird tool isnt it? 00:14 < bridge> [teeworlds] wdym? 00:14 < ChillerDragon> what about a wireshark dissector instead 00:15 < bridge> [teeworlds] I tried doing that afterwards, but my motivation got lost midway 00:15 < ChillerDragon> meh 00:15 < ChillerDragon> i really miss a proper dissector for tw 00:15 < bridge> [teeworlds] I think @Learath2 started a packet dissector 00:15 < ChillerDragon> ye ik 00:15 < ChillerDragon> but he also does not seem to continue it 00:16 < bridge> [teeworlds] have you tried it? maybe it's at a stage where it's useful to you 00:16 < ChillerDragon> i messed with fstds c dissector and nheirs lua implementation 00:16 < ChillerDragon> was not too successful 00:16 < ChillerDragon> oh wait 00:17 < ChillerDragon> you are talking about using not implementing? 00:17 < ChillerDragon> i havent seen learaths dissector 00:17 < bridge> [teeworlds] but it doesn't look like it's able to dissect at a level where you need it 00:18 < ChillerDragon> it even has a huffman.c that looks promising 00:19 < ChillerDragon> but heinrich do u know maybe how i can read the packets without a dissector? 00:19 < ChillerDragon> like at least find out the type 00:20 < bridge> [teeworlds] give the bytes in a usable format please 00:20 < bridge> [teeworlds] maybe base64 00:20 < ChillerDragon> wot 00:21 < ChillerDragon> why is hex not useful? 00:21 < bridge> [teeworlds] or hex 00:21 < bridge> [teeworlds] but not an image 00:21 < ChillerDragon> xd 00:21 < ChillerDragon> fair 00:21 < bridge> [teeworlds] and preferably only the UDP payload 00:21 < ChillerDragon> https://paste.zillyhuhn.com/LP 00:21 < ChillerDragon> oop 00:22 < ChillerDragon> thats all 00:22 < ChillerDragon> also including my ip :D 00:22 < ChillerDragon> idk how to only get udp payload with tcpdump 00:22 < bridge> [teeworlds] you already did that in the original screenshot 00:22 < ChillerDragon> ikr 00:22 < bridge> [teeworlds] open it in wireshark, I guess 00:22 < bridge> [teeworlds] you can get the udp payload there 00:22 < ChillerDragon> well 00:22 < ChillerDragon> ye ik 00:24 < ChillerDragon> working w gui applications is so annoying no clue how to copy stuff 00:24 < bridge> [teeworlds] try rightclick 00:25 < ChillerDragon> that copies it all 00:26 < bridge> [teeworlds] ok, rightclick "Data" below "User Datagram Protocol" and select "Copy" → "as a Hex Stream" 00:27 < ChillerDragon> https://paste.zillyhuhn.com/Rk that should be a manual slice only with the udp data 00:27 < bridge> [teeworlds] does that work? 00:27 < ChillerDragon> idk 00:27 < ChillerDragon> 003d0200000031402318300140454545454545454545454545454545454545454545454545454545454545450000172996fedfda029bfedfda02280014000000000000000023 00:27 < ChillerDragon> thats the result 00:27 < ChillerDragon> could be it 00:27 < ChillerDragon> yes 00:28 < ChillerDragon> when compared to my manual slice it looks good 00:28 < ChillerDragon> i realized that chat messages are usually prefixed with 300140 but idk where that comes from 00:29 < bridge> [teeworlds] now we can look into src/engine/shared/network.h 00:30 < bridge> [teeworlds] it says 7 bytes header 00:31 < ChillerDragon> ye bcs chat is probably not connless 00:31 < ChillerDragon> what is connless btw is it only in the beginning before there is a token? 00:31 < bridge> [teeworlds] flags is 0, ack is some uninteresting number, numchunks is 2 00:31 < bridge> [teeworlds] so we're expecting two chunks 00:31 < bridge> [teeworlds] no compression, so that's also good 00:32 < bridge> [teeworlds] connless: server info, masterserver communication 00:32 < bridge> [teeworlds] uhm 00:32 < bridge> [teeworlds] your token very much looks like it's just one byte 00:32 < ChillerDragon> sounds secure 00:33 < bridge> [teeworlds] you might want to check the code that generates it, it's likely to be vulnerable to IP spoofing 00:33 < bridge> [teeworlds] anyway 00:33 < ChillerDragon> not that i changed that xd 00:33 < bridge> [teeworlds] which server did you connect to? 00:33 < ChillerDragon> do we have a security issue again? 00:34 < ChillerDragon> uhm 00:34 < ChillerDragon> ddnet7 i think 00:35 < bridge> [teeworlds] next byte is 40 00:35 < bridge> [teeworlds] that should be the message ID 00:35 < ChillerDragon> yes ddnet7 confirmed 00:35 < bridge> [teeworlds] ah no, it's not 00:35 < bridge> [teeworlds] the chunk header 00:35 < ChillerDragon> wait u lost me at the 1 byte token 00:36 < bridge> [teeworlds] we now see the chunk header 40 23 18 00:36 < bridge> [teeworlds] we check src/engine/shared/network.h again 00:38 < bridge> [teeworlds] flags is VITAL, size is 8, we also have a sequence number 00:38 < bridge> [teeworlds] so now the next byte should be the msgid 00:39 < bridge> [teeworlds] 0x30 == 0b0011_0000 00:39 < bridge> [teeworlds] that should just be 0x30 = 48, lowest bit is system flag, since it's an even number it's apparently a game message 00:39 < bridge> [teeworlds] number 24 00:39 < ChillerDragon> oh 00:40 < bridge> [teeworlds] we check build/src/generated/protocol.h 00:40 < ChillerDragon> ye i was searching that 24 00:40 < ChillerDragon> but i did not expect it to be a 30 00:40 < bridge> [teeworlds] it says CL_SAY 00:40 < ChillerDragon> ye 00:40 < ChillerDragon> i was looking for that 00:40 < ChillerDragon> the systemflag got me 00:42 < ChillerDragon> wait but how did u see 0b0011_0000 is 24? 00:42 < ChillerDragon> isnt lowest bit 0 here? 00:42 < ChillerDragon> ah 00:43 < ChillerDragon> ye but its not counted 00:43 < ChillerDragon> so its 0b0011_000 00:43 < ChillerDragon> aah 00:44 < bridge> [teeworlds] 0x30 = 48, and then I halfed that 00:44 < ChillerDragon> but it is not a fixed offset is it? So i can not use tcpdump to check for 0x30 at this index 00:44 < bridge> [teeworlds] halved* 00:44 < ChillerDragon> ye 00:44 < ChillerDragon> got that part now i hope 00:44 < bridge> [teeworlds] it'll work in practice 00:44 < bridge> [teeworlds] is that enough? 00:44 < ChillerDragon> yea sounds good 00:44 < ChillerDragon> think i learned a lot thanks mate 00:45 < bridge> [teeworlds] you're welcome 01:08 < ChillerDragon> u said my token is only 1 byte long? I read 3 zero bytes followed by 0x31 is that correct? So my token could also start by chance with leading zeros? 01:08 < bridge> [teeworlds] yes, but unlikely 01:08 < ChillerDragon> ye 01:08 < bridge> [teeworlds] it's 1/16million 01:09 < bridge> [teeworlds] so basically impossible 01:17 < ChillerDragon> meh the fixed index does not work too well I sent 6 messages got 10 packets that contained 2 of my chat messages :D 01:17 < bridge> [teeworlds] I dissect enough for seeing tokens and stuff, tho it's only ddnet tokens for now 01:18 < ChillerDragon> where are ur install instructions btw 01:21 < ChillerDragon> ``tcpdump -X 'dst port 8707 and udp[18:1] = 0x30'`` thats the command i tried in case anyone wonders (hi me grepping this in 2 month in the logs) 01:22 < ChillerDragon> is the bridge even allowed to format code snippets on discord? 01:22 < bridge> [teeworlds] yes it is 01:22 < ChillerDragon> nice 01:23 < bridge> [teeworlds] There are no install instructions, you clone wireshark, you place my repo in the plugins folder and compile 01:23 < bridge> [teeworlds] wireshark doesn't have a standalone plugin build thing 01:23 < ChillerDragon> that sounds very much like a install instruction to me 01:23 < ChillerDragon> something i would have guessed 01:23 < ChillerDragon> but still a readme having the two git clones and maybe a cd in order would help a lot 11:21 < bridge> [teeworlds] oy: can we increase the vote reason string size as well please :P 11:37 < Dune> @tsfreddie: you should join irc if you want to speak to oy 11:37 < Dune> he's not always online 11:38 < bridge> [teeworlds] oof. i don't know how to use it everytime i tried 11:38 < Dune> easy, just follow this link: https://webchat.quakenet.org/?channels=#teeworlds 11:39 < TsFreddie> oof 13:07 < bridge> [teeworlds] why cant he use discord 13:07 < bridge> [teeworlds] where 95% of the tw community is 13:07 < TsFreddie> ask ChillerDragon 13:07 < bridge> [teeworlds] hes a troll 13:07 < TsFreddie> you are too 13:08 < bridge> [teeworlds] 🤣 13:10 < TsFreddie> btw, turns out it is not me don't know how to use it. it's just china banned quakenet as well. 13:10 < bridge> [teeworlds] sounds fun 13:16 < bridge> [teeworlds] im not a troll 13:16 < bridge> [teeworlds] no u @TsFreddie 14:11 < louis> irc baad 14:11 < bridge> [teeworlds] no u 16:24 < bridge> [teeworlds] Did anyone create a teeworlds server with an online translator yet? 16:24 < bridge> [teeworlds] yes early 0.7 there was one 16:24 < bridge> [teeworlds] 🤣 why tho 16:25 < bridge> [teeworlds] On my server there are players from all over the world, its really hard to follow all conversations, I would like to implement a translator 16:25 < bridge> [teeworlds] @Dune is the source anywhere? 16:25 < bridge> [teeworlds] every chat message was received twice 16:25 < bridge> [teeworlds] i remember that server 16:25 < bridge> [teeworlds] but i dont know which mod it was 16:25 < bridge> [teeworlds] don't think there is any source? maybe it was SNSnoop's ddrace? 16:25 < bridge> [teeworlds] why not do it client side 16:25 < bridge> [teeworlds] because few people use custom clients 16:25 < bridge> [teeworlds] in 0.7 16:25 < bridge> [teeworlds] few? alot 16:25 < bridge> [teeworlds] those who do often stayed in 0.6 16:26 < bridge> [teeworlds] because they care about their custom stuff that they are used to 16:27 < bridge> [teeworlds] sure. 16:27 < bridge> [teeworlds] nope, wasnt snoops mod 16:27 < bridge> [teeworlds] but i feel that ppl who want translations would probably look for custom clients instead of finding server that does it. 16:28 < bridge> [teeworlds] thats not the point here 16:28 < bridge> [teeworlds] oh 16:28 < bridge> [teeworlds] the point is that especially on my server many people cant speak english well, i got multiple people asking for a translator on my server :D 16:29 < bridge> [teeworlds] that make sense 16:37 < bridge> [teeworlds] so, does anyone have the source code or knows who made the 0.7 mod with translator? 17:15 < bridge> [teeworlds] there was a server on 0.6 17:15 < bridge> [teeworlds] with ingame translation but by command with a ! 17:17 < bridge> [teeworlds] !de>en (text) 19:31 < ChillerDragon> i have a crappy translator in zillycrack client @fokkonaut im not sure if it belongs in the server 19:31 < ChillerDragon> also @TsFreddie if you want a irc account on my webui where you can keep logs and so on tell me 19:34 < ChillerDragon> @fokkonaut its rly messy and uses some sketchy ruski api :D https://github.com/ZillyWoods/ZillyWoods/commits/584662c47308541a3a7f490756b7abbdf0697ae3 19:37 < ChillerDragon> but fokko send kids to school so they learn english and implement other things first like bank,jail,fng,1n1 etc 20:16 < bridge> [teeworlds] xd 20:18 < bridge> [teeworlds] Mh 21:03 < louis> @ChillerDragon put entities images in teeworlds-db 21:03 * louis slaps ChillerDragon around a bit with a large fishbot 21:03 * louis slaps ChillerDragon around a bit with a large fishbot 21:03 < louis> haha i can slap people in irc 21:51 < bridge> [teeworlds] @fokkonaut in mkrace was a translator 21:52 < bridge> [teeworlds] i cant find it in the code 22:49 < ChillerDragon> which entitites @louis 23:02 < ChillerDragonTL> There is https://github.com/TeeworldsDB/mapres/tree/master/entities if you have some more please pull request :) 23:45 < louis> yes these @chiller 23:45 < louis> u should put them in a separate folder tho, not mapres 23:46 < louis_> well at least put the playable ones in a sep. folder 23:46 < louis_> like the ones for ddrace since new client update lets u customize them, lul 23:53 < ChillerDragonTL> You mean a repository only for entities to play with? Hm yea maybe sounds like a duplicate tho since they are just mapres essentially