View previous topic :: View next topic |
Author |
Message |
graysmiley How do I cheat? Reputation: 0
Joined: 18 Sep 2021 Posts: 2
|
Posted: Sat Sep 18, 2021 9:13 pm Post subject: Override Open/Read/Write Process |
|
|
Hi. I'm trying to find out if it's possible to create a plug-in that allows Cheat Engine to use a process from a custom source.
Specifically, I have a remote connection library for PS3 that provides access to processes memory. I'd like to have a ce plug-in that will use this library rather than an actual Windows process. Could someone tell me if this is possible with the C plug-in sdk, and if so, do you have any suggestions or examples for how I can approach this?
Thanks!
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Sun Sep 19, 2021 6:05 am Post subject: |
|
|
look at the emurpm extension on ce's githib.
it overrides the original rpm/wpm and vqe
you can use something similar for your situation
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
graysmiley How do I cheat? Reputation: 0
Joined: 18 Sep 2021 Posts: 2
|
Posted: Sun Sep 19, 2021 12:22 pm Post subject: |
|
|
Dark Byte wrote: | look at the emurpm extension on ce's githib.
it overrides the original rpm/wpm and vqe
you can use something similar for your situation |
Thanks, it looks like the C plug-in API has the ability to hook these through the `ExportedFunctions` struct. Is there are API that I can use to actually load memory into the interface, simulating a Windows process opening?
The goal is basically to use memory from a std::vector as my pseudo-process, allowing CE to view and modify the contents of that vector.
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Sun Sep 19, 2021 6:15 pm Post subject: |
|
|
yes.
you can also hook the processlist api and openprocess
also readprocessmemory takes an address and expects a memoryblock to be filled with data, you can fill that data with whatever you like. including the contents of a file
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8516 Location: 127.0.0.1
|
Posted: Mon Sep 20, 2021 12:43 pm Post subject: |
|
|
Not Lua related; moved.
_________________
- Retired. |
|
Back to top |
|
|
graysmiley How do I cheat? Reputation: 0
Joined: 18 Sep 2021 Posts: 2
|
Posted: Tue Sep 21, 2021 12:20 am Post subject: |
|
|
Dark Byte wrote: | yes.
you can also hook the processlist api and openprocess
also readprocessmemory takes an address and expects a memoryblock to be filled with data, you can fill that data with whatever you like. including the contents of a file |
Unfortunately it looks like ProcessList can't be hooked, only called, as it's a function pointer rather than a pointer to a function pointer.
It seems like getting a custom entry into the Process List will be necessary for what I'd like to do. Does simply calling ProcessList(char *, int) create a usable selection dialog? I've tried calling it myself but get access violations (I assume from the parameters I'm using)
Is there an existing API doc? I hate to ask so many noob questions.
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Tue Sep 21, 2021 3:22 am Post subject: |
|
|
i meant hooking process32first/next
but you can also just create a dialog yourself and do a lua openProcess(0) and let your openProcess hook return success. That will trigger the UI into normal operation mode
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
graysmiley How do I cheat? Reputation: 0
Joined: 18 Sep 2021 Posts: 2
|
Posted: Wed Sep 22, 2021 11:07 pm Post subject: |
|
|
Dark Byte wrote: | i meant hooking process32first/next
but you can also just create a dialog yourself and do a lua openProcess(0) and let your openProcess hook return success. That will trigger the UI into normal operation mode |
Thank you very much! I seem to have everything working now!
For anyone trying to accomplish something similar, I ended up hooking everything Dark Byte suggested:
Process32First (To set flag for Process32Next)
Process32Next (Add fake process at the end, used 0xFFFFFFFF)
OpenProcess
ReadProcessMemory
WriteProcessMemory
VirtualQueryEx
|
|
Back to top |
|
|
|