| View previous topic :: View next topic |
| Author |
Message |
iPromise Grandmaster Cheater
Reputation: -1
Joined: 27 Jun 2009 Posts: 529 Location: Canada
|
Posted: Thu May 12, 2011 10:37 am Post subject: MEMORY.TMP |
|
|
I noticed that CE writes to a disc file for its scans. I was testing CE and its how it preformed its unknown initial value scans. It preformed them simularly to mine, I write to a disc file to record my results and then I check those results to see if any values have changed. (Check out my other topic to get a further elaboration on how I do my UIV scans and what my problem is).
I attached CE to itself, and did a UIV scan, CE recorded more than 23,000,000+ results in just half a second. How? How does CE do that, how does CE write to the buffer so fast? My problem is that the buffer becomes too big and records to much results.
I am trying to read the source code but I don't undestand delphi so i'm having trouble there.
Please, any help on how it writes that fast can fix my problems so I can finally release a final good copy of my memory engine.
|
|
| Back to top |
|
 |
Krähne Expert Cheater
Reputation: 0
Joined: 06 Jun 2010 Posts: 108 Location: Inside of my Kernel
|
Posted: Thu May 12, 2011 11:57 am Post subject: |
|
|
Why did you not make it virtual?... i mean, without the temp file.
I guess, in the virtual memory would be more faster. (by the garbage collector (?)).
_________________
Excuse me if you don't understand what I just said, but "english" isn't my native language. |
|
| Back to top |
|
 |
NoMercy Master Cheater
Reputation: 1
Joined: 09 Feb 2009 Posts: 289
|
Posted: Thu May 12, 2011 12:35 pm Post subject: |
|
|
| DaasCook wrote: | Why did you not make it virtual?... i mean, without the temp file.
I guess, in the virtual memory would be more faster. (by the garbage collector (?)). |
The array will be huge = lags.
|
|
| Back to top |
|
 |
Krähne Expert Cheater
Reputation: 0
Joined: 06 Jun 2010 Posts: 108 Location: Inside of my Kernel
|
Posted: Thu May 12, 2011 2:02 pm Post subject: |
|
|
| NoMercy wrote: | | DaasCook wrote: | Why did you not make it virtual?... i mean, without the temp file.
I guess, in the virtual memory would be more faster. (by the garbage collector (?)). |
The array will be huge = lags. |
If do the job with multithreading?
_________________
Excuse me if you don't understand what I just said, but "english" isn't my native language. |
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Thu May 12, 2011 3:20 pm Post subject: |
|
|
Ce doesn't write the memory to disk immediately, it first copies the target process's memory to it's own region, and then returns control to the user telling it's done.
Then it starts a low priority thread that saves that memory to disk so it can be used with "same as first scan" later on.
The user then goes to the game and does stuff, and then comes back and does a next scan. That will then increase the priority of the saving thread, wait for it, and then does the next scan (and usually the time between the first scan and next scan is long enough to not get noticed, except on a few slower systems)
(In short, I cheat! The scan isn't really complete when it's done, but it's done enough as in, the memory changes won't make an effect)
Also, ce doesn't save it as address1-memory1, address2-memory2, but as:
address-size
address-size
and another file containing the raw copy of the memory
It's best to write a few big chunks instead of a million small chunks
_________________
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 |
|
 |
iPromise Grandmaster Cheater
Reputation: -1
Joined: 27 Jun 2009 Posts: 529 Location: Canada
|
Posted: Fri May 13, 2011 10:45 am Post subject: |
|
|
| Quote: |
Also, ce doesn't save it as address1-memory1, address2-memory2, but as:
address-size
address-size
and another file containing the raw copy of the memory
It's best to write a few big chunks instead of a million small chunks
|
So if CE was handling address 0x00400000, and the 4 byte value was 1 CE wouldn't write the information to MEMORY.TMP as:
00400000 1
But rather
00400000 + sizeof ( DWORD ) // 4
?
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Fri May 13, 2011 12:01 pm Post subject: |
|
|
Memory.tmp would just hold a direct copy of the target process's memory and wouldn't even know what type was used. Only for next scan
addresses.tmp holds the description of the memory regions so a next scan can read through the memory file and if it encounters something, use addresses.tmp to look up what the virtual address for it is
_________________
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 |
|
 |
|