Open tiann opened 3 years ago
First issue 🎉
I would like to refactor this repository into something more library-like (more oriented as building blocks for a bigger program than just the functions scattered around as I need in order to complete Cheat Engine's tutorial).
Once that's done, I would love to support more than just Windows. I don't have plans to do this myself, but anyone is more than welcome to contribute. We only really need a few building blocks from the system (enumerating modules, reading and writing memory, for the most part).
If you're willing to contribute let me know and I'll be happy to offer some guidance.
I am familiar with Linux/Android platform and i am willing to contribute it.
There is many winapi in the code now, we should refact it and add a layer to abstract the os dependent things, but i am not so good at Rust :(
For Linux, it is easy to add memory search feature, but the debug mode is a little hard because the ptrace is not easy to write it correct. And also, for Android platform, normal apps can not run as root, it must use a socket to communicate with a remote root daemon process to do privileged operations, so the lib must provide a remote mode(just like CE's ceserver), otherwise it can only work on adb shell and would never work on Android App.
By the way, your blog is really great :)
I'm thinking we could have a private mod os
with a file (or submodule) for each OS (think win.rs
, nix.rs
, and remote.rs
for Android) where OS-specific code lives. Then we could refactor the code to use those functions from os
(which would conditionally re-export depending on the target OS) to use these. This can get tricky if the API varies wildly (e.g. ptrace as you mention, with which I have 0 experience). What do you think? Could you think of a better approach?
I think making a private mod is a good way
Would you like to give it a go? If not, I'll see if I can put some time aside for it.
I think making a private mod is a good way weishu, I am your fan. Are you still interested in writing this memory modification library written in rust?
Is there any plan for Linux support?