Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2024-10-17 00:00 and 2024-10-18 00:00
Avatar
suizid use nix they said
Avatar
heinrich5991 2024-10-17 06:42
Learn how IdentityLogger used fingerprinting to combat ban evasion, protecting our CSGO community from relentless cheaters.
Avatar
seems a little naive compared to how complex this game is now.
07:01
Probably the only reason it was undetected is because the cheat authors made their cheats to evade official VAC servers. Had they ever tested on this community server they might have figured it out instantly. Of course the script kiddies wouldn't figure it out themselves.
Avatar
GitHub BOT 2024-10-17 07:35
9a1bd19 Add popup to select envelope curve type, support shift+left click - Robyt3 74b485b Merge pull request #9153 from Robyt3/Editor-Curvetype-Popup - def-
Avatar
Avatar
ws-client1
<ChillerDragon> did you find any bugs @Pathos ?
So wait, can you link Git for current working version of a vanilla server?
Avatar
ws-client1 BOT 2024-10-17 08:35
08:35
<ChillerDragon> sv_gametype ctf
👍 1
Avatar
``` code ``` @basicaly
09:21
code
Avatar
ok
09:22
gradle
09:22
sucks
f3 1
Avatar
hello chillerdragon
Avatar
hello chillerdragon
Avatar
heinrich5991 2024-10-17 10:55
10:55
I think we might be better off purchasing @Patiga's map recognition bot, it seems to have more traction than accounts
happy 1
10:56
(the accounts post is 3 months old, the map recognition one 8 days)
KEKW 2
Avatar
Patiga ftw!
heartw 1
11:12
Patiga for DDNet president
Avatar
MilkeeyCat 2024-10-17 11:39
@Learath2 checkout this new useless proc macro 😏 fn main() -> u8 { let a: u8 = rev_bin_ops!(10 / 20); printf("%d\n", a); return 0; }
greenthing 1
Avatar
Avatar
heinrich5991
I think we might be better off purchasing @Patiga's map recognition bot, it seems to have more traction than accounts
Jupstar ✪ 2024-10-17 11:46
bot msgs count too tho 😄
Avatar
Avatar
MilkeeyCat
@Learath2 checkout this new useless proc macro 😏 fn main() -> u8 { let a: u8 = rev_bin_ops!(10 / 20); printf("%d\n", a); return 0; }
Show macro code
Avatar
Avatar
Learath2
Show macro code
MilkeeyCat 2024-10-17 11:52
Slice RevBinOps(Slice slice) { TokenTree *tokenTree = slice.ptr; TokenTree tmp = tokenTree[0]; tokenTree[0] = tokenTree[2]; tokenTree[2] = tmp; return slice; } justatest
Avatar
Cool
Avatar
heinrich5991 2024-10-17 11:52
is that in the target language?
Avatar
MilkeeyCat 2024-10-17 11:53
it's in C
11:53
my language doesn't have unions yet
Avatar
Proc macros in C is something I never even thought I'd see
Avatar
heinrich5991 2024-10-17 11:53
why not rust? ^^
Avatar
MilkeeyCat 2024-10-17 11:53
it's possible to do in rust as well xd
Avatar
heinrich5991 2024-10-17 11:53
ah, did you also write your lang in C? then it makes sense
Avatar
MilkeeyCat 2024-10-17 11:54
my language is in rust lol
Avatar
heinrich5991 2024-10-17 11:54
hmmmmmm
Avatar
He could not say no to the allure of the supreme language C
Avatar
heinrich5991 2024-10-17 11:55
never, we're still hoping for the accounts support
Avatar
Avolicious 2024-10-17 11:55
hwid, cookies, tracking pixel... we need all of it
Avatar
heinrich5991 2024-10-17 11:55
pls no
Avatar
Avolicious 2024-10-17 11:56
The good part, why this CS thingy worked out so well... its not open source, so people cant run their own clients 😄
Avatar
Avatar
MilkeeyCat
Slice RevBinOps(Slice slice) { TokenTree *tokenTree = slice.ptr; TokenTree tmp = tokenTree[0]; tokenTree[0] = tokenTree[2]; tokenTree[2] = tmp; return slice; } justatest
heinrich5991 2024-10-17 11:57
#[no_mangle] pub extern "C" fn RevBinOps(slice: Slice) -> Slice { unsafe { mem::swap(&mut *slice.ptr.offset(0), &mut slice.ptr.offset(2); } slice }
Avatar
Avolicious 2024-10-17 11:57
But I really enjoyed reading it, thanks heinrich
Avatar
On a more serious note. How do you feel about hwid? I think it might work against people that block or spam. But I'm worried it'd push those people into the world of cheat clients that spoof hwid
Avatar
Avatar
heinrich5991
#[no_mangle] pub extern "C" fn RevBinOps(slice: Slice) -> Slice { unsafe { mem::swap(&mut *slice.ptr.offset(0), &mut slice.ptr.offset(2); } slice }
MilkeeyCat 2024-10-17 11:58
Is no_mangle required if there's extern "C" ? 0_o
Avatar
Avatar
Learath2
On a more serious note. How do you feel about hwid? I think it might work against people that block or spam. But I'm worried it'd push those people into the world of cheat clients that spoof hwid
heinrich5991 2024-10-17 11:58
I'd prefer to not send more personal data. what good is it that cannot be captured by a randomly generated private key?
Avatar
Avatar
MilkeeyCat
Is no_mangle required if there's extern "C" ? 0_o
heinrich5991 2024-10-17 11:59
I think so
Avatar
Avatar
heinrich5991
I'd prefer to not send more personal data. what good is it that cannot be captured by a randomly generated private key?
Well it'd technically not be very personal, it'd involve a hash
Avatar
heinrich5991 2024-10-17 11:59
then what good is it beyond a randomly generated private key?
Avatar
Avatar
heinrich5991
then what good is it beyond a randomly generated private key?
The randomly generated private key we'd probably have a button to refresh. Making that button the "unban" button
Avatar
Avolicious 2024-10-17 12:00
Or just create a new account 😄
Avatar
A hwid is annoying to spoof or change
Avatar
Avatar
Learath2
A hwid is annoying to spoof or change
Avolicious 2024-10-17 12:00
Depends, how will you verify the HWID?
Avatar
heinrich5991 2024-10-17 12:00
ok, so let's add a randomly generated thing that doesn't have a button
12:01
but that's still meh
Avatar
Avatar
heinrich5991
ok, so let's add a randomly generated thing that doesn't have a button
We'd store it in config. You can change it
Avatar
heinrich5991 2024-10-17 12:01
we can store it anywhere ^^
Avatar
Avolicious 2024-10-17 12:01
Heinrich is getting evil now 😄
Avatar
heinrich5991 2024-10-17 12:01
not more evil than using hardware data
12:03
you could e.g. store it in the registry
Avatar
Avatar
heinrich5991
not more evil than using hardware data
what is wrong with that anyway, the serial number of the harddrives and a mac address hashed together is hardly identifying
Avatar
heinrich5991 2024-10-17 12:05
it needs to have an upside to be considered, I think
12:05
it's derived from the serial number of the hard drive and a mac address, e.g. so you could verify that someone is playing from a certain computer if you knew those two pieces of data
Avatar
Avatar
heinrich5991
it's derived from the serial number of the hard drive and a mac address, e.g. so you could verify that someone is playing from a certain computer if you knew those two pieces of data
A hidden random private key also provides this info no?
Avatar
heinrich5991 2024-10-17 12:13
not across programs
Avatar
MilkeeyCat 2024-10-17 14:23
Is it possible to call free on pointer which was gotten after leaking a vector?
Avatar
Avatar
MilkeeyCat
Is it possible to call free on pointer which was gotten after leaking a vector?
Wym
Avatar
Avatar
Learath2
Wym
MilkeeyCat 2024-10-17 14:40
fn main() { let foo: Vec<u8> = Vec::new(); let r = foo.leak(); let ptr = r.as_ptr(); // Will it segfault if I call `free` on this ptr? }
14:41
and now it's possible to return multiple statements from "proc macro" greenthing
Avatar
heinrich5991 2024-10-17 14:47
you're not allowed to call free on this pointer, no
Avatar
heinrich, i need you for a rust bootcamp
Avatar
Avatar
MilkeeyCat
fn main() { let foo: Vec<u8> = Vec::new(); let r = foo.leak(); let ptr = r.as_ptr(); // Will it segfault if I call `free` on this ptr? }
heinrich5991 2024-10-17 14:50
it'll probably not segfault if you're talking about x86_64 linux with a current rust compiler
Avatar
Avatar
fokkonaut
heinrich, i need you for a rust bootcamp
heinrich5991 2024-10-17 14:50
what's the question? 🙂
Avatar
MilkeeyCat 2024-10-17 14:50
i found a bug which was causing segfault xd
14:51
i was freeing it when pointer was null pepeW
Avatar
heinrich5991 2024-10-17 14:51
free(nullptr) is safe
14:51
it's a noop
14:51
that will never crash. your crash is elsewhere
Avatar
MilkeeyCat 2024-10-17 14:52
oh ye, I also moved a few lines around
14:52
and I don't even need an if statement (edited)
14:52
cool
Avatar
heinrich5991 2024-10-17 14:54
you can create a Box<[u8]> and leak that
14:54
you can then later free it by re-assembling the Box<[u8]>
Avatar
MilkeeyCat 2024-10-17 14:54
I free it from C side
Avatar
@deen i vaguely remember you were into Lisp?
Avatar
TIL about functors in ocaml https://ocaml.org/docs/functors
In OCaml, a functor is a function at the module-level. Functors take modules as arguments and return a new module.
15:20
they are functions that instead of values, take entire ocaml modules
15:20
and return another module
Avatar
Avatar
heinrich5991
what's the question? 🙂
nothing specific, i need a full introduction
Avatar
Avatar
Ryozuki
TIL about functors in ocaml https://ocaml.org/docs/functors
We getting category-theoretical in here?!
Avatar
Avatar
Ryozuki
@deen i vaguely remember you were into Lisp?
Haskell
Avatar
Jupstar ✪ 2024-10-17 17:39
Empowering everyone to build reliable and efficient software.
17:39
to the best stable Rust yet
17:44
error: component download failed for rust-std-x86_64-linux-android here we go again xd
Avatar
MilkeeyCat 2024-10-17 19:26
Does anyone have ideas for enums syntax which doesn't require pattern matching? feelsbadman
Avatar
Avatar
MilkeeyCat
Does anyone have ideas for enums syntax which doesn't require pattern matching? feelsbadman
Jupstar ✪ 2024-10-17 19:31
How complex should your enums be?
19:31
simple ints?
Avatar
MilkeeyCat 2024-10-17 19:31
i want something like C unions but with a tag
Avatar
Avatar
Jupstar ✪
How complex should your enums be?
MilkeeyCat 2024-10-17 19:34
did you see my proc macros btw? 😏
Avatar
Avatar
MilkeeyCat
did you see my proc macros btw? 😏
Jupstar ✪ 2024-10-17 19:34
I've seen that you planned them, but never in action
Avatar
Avatar
MilkeeyCat
@Learath2 checkout this new useless proc macro 😏 fn main() -> u8 { let a: u8 = rev_bin_ops!(10 / 20); printf("%d\n", a); return 0; }
MilkeeyCat 2024-10-17 19:35
@Jupstar ✪
Avatar
Avatar
MilkeeyCat
@Jupstar ✪
Jupstar ✪ 2024-10-17 19:36
1337
19:36
next step derive macros, which are basically just proc macros
Avatar
MilkeeyCat 2024-10-17 19:37
next step is tagged unions 😬
19:37
and then... imports pepeW
Avatar
MilkeeyCat 2024-10-17 19:57
thiserror crate is goated
Avatar
Avatar
MilkeeyCat
I free it from C side
heinrich5991 2024-10-17 22:09
that's illegal ^^
Avatar
GitHub BOT 2024-10-17 22:09

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
Avatar
GitHub
Click to see attachment 🖼️
gesundheit?
Avatar
wyld
Avatar
Avatar
GitHub
Click to see attachment 🖼️
actually pretty interesting custom client
Exported 115 message(s)
Timezone: UTC+0