Lonami / memo

memo: Writing our own Cheat Engine
Apache License 2.0
59 stars 7 forks source link

Linux support? #1

Open tiann opened 3 years ago

tiann commented 3 years ago

Is there any plan for Linux support?

Lonami commented 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.

tiann commented 3 years ago

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 :)

Lonami commented 3 years ago

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?

tiann commented 3 years ago

I think making a private mod is a good way

Lonami commented 3 years ago

Would you like to give it a go? If not, I'll see if I can put some time aside for it.

pwh-pwh commented 10 months ago

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?