4 ms·
Writing our own cheat engine (2021)
- stackghost 11mo agoAnyone else experiencing weird rendering in mobile Firefox where the text is partly off screen to the left?
- millzlane 11mo agoYes, rotated to landscape to workaround it.
- zeropoint46 11mo agoYes Edit: landscape seems to be a work around for me though.
- omnicognate 11mo agoiPhone 12/13 mini isn't wide enough even in landscape. Reader mode works, though.
- cpburns2009 11mo agoI get it in Brave as well.
- tekacs 11mo agoMobile Chrome on Android too. In my case, stupid use cases for a folding phone: unfolding the screen helped it render in desktop layout... Picking the 'desktop site' / request desktop site button in the ... menu also works though!
- QuantumNomad_ 11mo agoReader mode also works. Or, alternatively reading it via archive.is: - Part 1: Introduction https://archive.is/RZVBF https://archive.is/RZVBF - Part 2: Exact Value scanning https://archive.is/OvGy2 https://archive.is/OvGy2 - Part 3: Unknown initial value https://archive.is/Tqgx9 https://archive.is/Tqgx9 - Part 4: Floating points https://archive.is/eAdQn https://archive.is/eAdQn - Part 5: Code finder https://archive.is/KtwjT https://archive.is/KtwjT - Part 6: Pointers https://archive.is/PGPnm https://archive.is/PGPnm - Part 7: Code Injection https://archive.is/mCMRz https://archive.is/mCMRz - Part 8: Multilevel pointers https://archive.is/GJ486 https://archive.is/GJ486
- stephenlf 11mo agoiPhone 15 iOS 18 Safari. Same issue.
- charles_f 11mo agoIt seems to be because of min-width, so you'll get it in any mobile device or smaller window
- cybit 11mo agoI previously wrote a helper tool in rust that injected into a C++ based online game, and it worked really well. Rust turned out to be an excellent choice for the job to me.
- etra0 11mo agoIt works wonders! I build free-cameras and some other tools (all for offline games, of course) fully in Rust, and you'd be surprised how much you could do. In one of them I hook into C++'s inheritance with no issue, just by understanding how everything works within the compiler you can do a lot.
- aquariusDue 11mo agoI remember in my teens using free trainers from Cheat Happens and trying to figure out how to use Cheat Engine to coast through some games (most of the time when I cared more about the story than the gameplay itself), also around last week I even saw a video on YouTube where the sponsor was a company that provided trainers as a service for a large catalogue of games, all in a neatly packaged client. It's nice to get a look behind the scenes at how it's done.
- giancarlostoro 11mo agoartmoney dot r u was the way for some of us for many years. There was also WPE Pro. I remember, making a private room in Coke Studios, that was an official room, so I could skip the DJ line and earn decibels.
- Froztnova 11mo agoI first learned how these sorts of programs worked using memory inspection tools that some emulators have built into them, but eventually flirted with some very basic cheat engine stuff myself. More advanced stuff like code caving is hard unless you're an assembly wizard, but it's surprisingly easy to find and poke values once you get the basic technique down. I once made a trainer for a friend because he wanted to skip some of the grind for cosmetics in Nioh. I also had fun realizing that the enemy skill materia in ff7 basically works by treating what would typically be the experience of the materia as a bitfield, with one bit for each learnable skill. It's funny though, I realized that I generally don't enjoy cheating at games, even single player games, unless the cheats are amusing stuff like big head mode or whatever. I once actually cheated to reduce my character's level in dark souls because I'd accidentally allocated a bunch of points into a famously rather useless stat and, in that game, stat point allocation is permanent. To clarify, I knew it was useless, I had mismatched which row I was looking at when assigning points. Which is still cheating, I suppose, given that it saved me the convenience of starting the character over completely.
- bluefirebrand 11mo agoDark Souls on PC rather famously was locked at some low resolution no matter what you did in the settings, among other problems that the PC port had. There was a hack program called DSFix that did a bunch of work to make it playable in a reasonable way on PC
- jamesnorden 11mo agoThe original title doesn't even include "in Rust", why is it edited?
- elAhmo 11mo agoOne of the ways to get more attention on HN.
- oersted 11mo agoThat’s fair, but to me the “in Rust” part is the most relevant. I wanted to see how ergonomic it was to do such raw memory tweaking in the memory-safe systems programming language.
- NoboruWataya 11mo agoBut they do pepper `unsafe` everywhere.
- iknowstuff 11mo agoAs you can see they're creating safe wrappers around the raw unsafe windows API which uphold the invariants. Microsoft should provide these as a crate.
- dang 11mo agoWe've deinreusted the title now. Thanks!
- voidUpdate 11mo agoin part 4, it seems like most of the time was just fighting against rust's semantics for how code should exist, and it made me wonder if rust was really the right tool for this? Every time I see something like this, it just sort of reinforces my belief that to write code in rust, you have to spend half your time fighting with how rust thinks code should work
- AmbroseBierce 11mo agoAdd 2021 to the title please (cc @dang)
- deleted 11mo ago[deleted]
- TriangleEdge 11mo agoI didn't know you could read random process memory in Linux. Where can I get documentation for things like this? I was learning about cgroups some time ago and got frustrated about the lack of documentation. I had to go read containerd code, which isn't ideal for wanting to just learn.
- bombela 11mo agoThe entry point of interest is probably ptrace: https://man7.org/linux/man-pages/man2/ptrace.2.html https://man7.org/linux/man-pages/man2/ptrace.2.html
- nazgulsenpai 11mo agoScanmem[0] is a library that does this for the purposes of reading/modifying game memory and a useful resource. You can also poke around in /proc for some helpers ls -la /proc/$PID/map_files cat /proc/$PID/maps cat /proc/$PID/status [0]https://github.com/scanmem/scanmem https://github.com/scanmem/scanmem
- OkayPhysicist 11mo agoThe weird mini rabbit hole of Cheat Engine's "source (somewhat) available" status is pretty interesting one. The issue linked in this article has been deleted, but thankfully was picked up by the wayback machine, where it appears the owner of the project doesn't really know what they want with regards to how other people can actually use their code (not to mention the fact that the project is definitely violating their dependencies' GPLs.