 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
Lee Yiyuan How do I cheat?
Reputation: 0
Joined: 11 Jul 2011 Posts: 2 Location: Singapore
|
Posted: Thu Jul 14, 2011 9:51 am Post subject: C# Memory Manipulator |
|
|
[P.S : Sorry for the bad english]
[P.S : Sorry for posting in the wrong section if i did]
The memory manipulator class allows manipulation of memories of other processes.
It supports the following :
-Memory Scanning for Byte Arrays, Int16 values, Int32 values, Int64 values
-Byte Array Injection (Injects an array of bytes)
-Allocation and deallocation of "Code Caves"
-Reading and Writing of Byte Arrays, Int16 values, Int32 values, Int64 values
-Replacement of bytes within a range of addresses
-Replacement of all occurrences of byte arrays with a user-specified byte array
To create a new instance of the memory manipulator class, a target process is required. The instance can then be created by using one of the following :
- new memoryManipulator(String TargetProcessName)
- new memoryManipulator(System.Diagnostics.Process TargetProcess)
- new memoryManipulator(int TargetProcessID)
Download :
www[DOT]mediafire[DOT]com/?k45jydrb5i77kt0
Mod edit: (working link) - Wiccaan
http://www.mediafire.com/?k45jydrb5i77kt0
|
|
| Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8587 Location: 127.0.0.1
|
Posted: Thu Jul 14, 2011 1:47 pm Post subject: |
|
|
I fixed the link for you in your post since you only have 1 post. Some suggestions for your dll though:
I suggest you post the source with your release. Most people making trainers wont want to have to include other things (dlls and such) with their release, or pack it into the executable.
You use OpenProcess in your ProcessMemoryReader class, you don't need to use it in .NET as the Process namespace exposes .Handle which is a fully accessible handle to the process.
You redefine API in multiple spots, instead you should just create a class/namespace to hold all imports so you don't have multiple definitions across your source. It will be easier to alter/update/edit the source later on if things are confined to a single area.
You personally define your own 'ReadProcessMemory' as:
| Code: | | public byte[] ReadProcessMemory(IntPtr MemoryAddress, uint bytesToRead, out int bytesRead) |
While this is fine, you wrote wrappers around this that make no use of bytesRead. If you have no intentions on using the param, you shouldn't really include it then. You don't expose your personal RPM publicly so the only access is through the wrappers. Just a thought.
_________________
- Retired. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|