Mknod -m 660 /dev/mem c 1 1 chown root:kmem /dev/mem. The file kmem is the same as mem, except that the kernel virtual memory rather than physical memory is accessed. It is typically created by: mknod -m 640 /dev/kmem c 1 2 chown root:kmem /dev/kmem. Port is similar to mem, but the I/O ports are accessed. It is typically created. Dev-C is an full-featured Integrated Development Environment (IDE) for Win32. It uses GCC, Mingw or Cygwin as compiler and libraries set. This project has been superseded by http://sf.net/projects/orwelldevcpp/.
Rev. 0.3
Command line
ADDRESS is a physical address: a number, like 0x12345678 (*)
VALUE is a number like 0x1234 or 42 (*)
The w|b|h designate the size of the value to read or write. W is 4-bytes (int32), H is two bytes (int16), B means one byte (int8). Reads and writes are performed as single operation.For reads, the size is W if not specified. For writes, the size must be specified. Letters W,B,H are not case sensitive.
The size parameter w|b|h can also be moved before ADDRESS:
(*) Decimal numbers for address and values are OK. Actually the numbers are read using C strtoul function, so it will interpret numbers like 0123 as octal! Probably not what you want!
NOTE: It is not guaranteed that any physical address can be accessed by this program. Validity of the ADDRESS may be checked by the OS. See the source of the kernel driver which provides the /dev/mem device for details.
Some physical addresses are hardware registers; writing or even reading them can cause your computer/device crash or melt down or explode. You've been warned!
Switches
-r
- read back after write, and print
-a
- do not require correct alignment
C++ Dev Environment
-A
- Absolute addresses. This does nothing in this version (it always works with absolute addresses)
-V, --version
- show version
C Dev Mem Free
-d
- debug. print some debug spew.
--help
- show usage
NOTE: The original program does not have switches. Giving it '--help' will read from address 0.
To check whether you have this or the original version, add a bogus 2nd parameter which will make the old version fail. For example: 'devmem -V -'.
Examples
0. Check if logged in every X seconds
1. Retrieve Character name from Memory.
2. Character already exist? Go to 4
3. Create txt file; charactername.txt
4. Already a value present for current level? Go to 6.
5. Write a '0' to txt file in this format (assuming we are level 12) 12: 0
6. Load text file. Check saved time value for current level and add 1 to it every second
Now this isn't very hard to do it all; only problem is the memory address for 'current character name' keeps changing. At one login it can be 04D43844 but the next it could be an entirely different number. So instead, using Cheat Engine (don't take the name too literal, not trying to/wanting to cheat) I find the pointer that writes to the address, and take that pointer's value instead.
So I don't know the address up-front, that's why I use the pointer.
EDIT: Oh u edited ur post.. re-reading. Yeah it seems I wasn't clear enough, I am reading from a game client, not something I made myself.