557 karma · joined September 14, 2021
Interested in Game Hacking (offline). Rust, C, C++.
For any discussion feel free to contact me at me@etra0.cl
I mostly build free-cameras, which allows you to detach the camera from characters, and for that I had to learn x86 assembly, some disassembler tools and how compilers generally work.
I think it's super rewarding because while you're seeing bits and bytes, and crashes, most of the day, at some point you can see you achieved something by being able to freely move in a restricted world.
I was surprised how far you can get with Cheat Engine. Its disassembler is really good, and you can do injections directly, if you then want to move to your own advanced stuff, you can build frameworks to do all of that using Windows APIs.
In particular, I had experience with Wine. Having useful commit messages allows you to do bisects and trace down regressions with more ease than cross-checking messages with some external ticket system, and when you have a lot of people contributing to a project it's easier to see what they're doing when they try to do a patch.
I also believe though, that it is good practice to help your colleagues when they do need to find an issue in a project where a lot of different people can work on.
But, as far as I understand, the boundary layer has to still be C (the side that loads DLLs and stuff), because of the natural limitations of templated languages and linkers.
And as soon as you change any interface you'd need to recompile more parts of the code. The same can be applied with Rust using dylib. At the end, the glue code always end up being C.
If you either commit to dylib or C++'s DLLs, you still have to recompile everything on version change, unless you also use the C ABI in C++.
I'm not sure I see the correlation? unless you explicitly mean online modding, which I'm not sure it happens that often.
I've been modding games for a few years and it's mostly interacting with Windows API and its capability to access other processes in the same user space by injecting DLLs. I've never looked for vulns inside the game itself.
If you refer to online modding, usually while they're local some games allow it, but as soon as it affects gameplay they're very rarely what I would say they're wide enough 'to thrive'.
It is true that the term of security doesn't apply that often to offline games, though.
I only played it through emulation (on ZSNES, in Windows 98!) but I was very young, and I'm a non-native English speaker so the gameplay felt even more obscure to me. It's crazy how now, that I have a better understanding of English, some things I got stuck for a long time when I was a kid were actually quite simple.
The most fun to me, it's that still retains the magic, the OST is still great (and the option to use the classic one is quite a gift), it feels mysterious and magical. They did an amazing job.
Memory usage is important to me and golang is very good at that being light, but I really hate writing it for various personal reasons.
If I had more free-time I'd just simply go with Rust but you know, free time is limited :P.
[1] https://programming-language-benchmarks.vercel.app/csharp-vs...
This was my first experience while getting started in the .NET ecosystem. I wanted something similar, I wanted to build small console tools/services and F# looked cool but hit the reflection issues too soon.
I mostly use crystal and golang, but both have their own issues. Hopefully F# improves with time to be fully usable with AOT!
I was looking for similar benchmarks but couldn't find anything conclusive. I found the benchmark game [1] but only had .net 7 AoT (not .net 8) benchmarks and memory consumption seems too high.
I'd ditch golang on a pinch as soon as I can use a decent type system, and C# seems like a great alternative.
Crystal would be my ideal but its compiler is still too slow, sadly.
[1] https://programming-language-benchmarks.vercel.app/csharp-vs...
I changed the switches for some lubed linears, and added some foam and now it even sounds better. It also reduced my wrist pain.
I'm debating with myself whether to get the Moonlander or not. I don't actually need it, but it looks so cool (and the USB port of the ErgoDox is quite outdated haha).
After porting my blog to Hugo, having a single binary that can perform all tasks on all three operating systems I use (MacOS, Windows, and Linux) is a blessing, and now the blog builds incredibly quick.
There still are some issues with the eyes and a bit of flickering but at the speed everything is moving I wouldn't be surprised if this improves in a year or two.
Needless to say, there's still a lot of artistry involved in such a process so anything is yet to be completely automated.
[1] https://www.youtube.com/watch?v=tWZOEFvczzA
I thought I'd have more troubles with the case insensitivity thing, but it turns out, it wasn't a big issue at all, and UFCS is great.
They're great with names haha.
[1] https://www.threads.net/download
[2] https://play.google.com/store/apps/details?id=com.instagram....
> help(int)
class int(object)
| int([x]) -> integer
| int(x, base=10) -> integer
> list(map(int, ["1", "2", "3"]))
[1, 2, 3]
Even if you define a function that takes two parameters, it complains about not having a second one: >>> def to_int(a, b):
... return int(a, base=b)
...
>>> list(map(to_int, ["1", "2", "3"]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: to_int() missing 1 required positional argument: 'b'I always was an Android user until that iPhone, I had it for about a year, and switched back to Android again because I thought I was missing some stuff, but I was wrong, I don't miss a thing of current Android, I think current iOS is simply smoother and more fun to use, and stutter free 95% of the time.
Also I still haven't seen anything as good as the Visual Studio integration with C# to create GUIs in Windows.
It feels like what Pinterest would be without the annoying bits.
I did it because I remember having issues with jekyll installation from time to time, like it suddenly broke out of nowhere, and trying to fix it became a pain.
Then I looked for alternatives and found Hugo, changed the template and installed in all my systems (Windows, Linux, macOS) and it has worked like a charm. Also, the speed boost was super noticeable, like, several times faster.
So if I were to choose again between Jekyll and Hugo, I'd go with Hugo.
I do think Go has have success in the same space because it is fast, but IMO the ergonomics in Rust for this problem space are a bit better. Of course, that's just my opinion.
> You can still have kinds of memory bugs in all of these incl Rust, esp leaks.
You're right. Leaks are not covered in the memory safety guarantees by Rust, neither are OOMs, but you can't deny you're on a way more safer space than with either C or C++.
Now, we also have Rust in the performant side of things, and the guarantee that 'if compiles, it'll work' (aside from logic bugs), is quite a big one. Also, considering how helpful the compiler is, and the mentioned guarantees, more people are enthusiastic about having faster things.