View previous topic :: View next topic |
Author |
Message |
OldCheatEngineUser Whateven rank Reputation: 20
Joined: 01 Feb 2016 Posts: 1587
|
Posted: Mon Nov 27, 2017 7:25 pm Post subject: about hardware level and memory |
|
|
according to intel's architecture software developer's manual:
IA-sdm sheet wrote: |
— Memory appears to a program as a
group of independent address spaces
called segments. Code, data, and stacks are typically contained in separate segments. To address a byte in a
segment, a program issues a logical address. This cons
ists of a segment selector and an offset (logical
addresses are often referred to as far
pointers). The segment selector iden
tifies the segment to be accessed
and the offset identifies a byte in the address space of
the segment. Programs running on an IA-32 processor
can address up to 16,383 segments of different sizes
and types, and each segment can be as large as 2
32
bytes.
Internally, all the segments that are defined for a system
are mapped into the processor’s linear address space.
To access a memory location, the processor thus translat
es each logical address into a linear address. This
translation is transparent to the application program.
The primary reason for using segmented memory is to in
crease the reliability of programs and systems. For
example, placing a program’s stack in a separate segmen
t prevents the stack from growing into the code or
data space and overwriting instructions or data, respectively.
- Paging and Virtual Memory
With the flat or the segmented memory model, linear
address space is mapped into the processor’s physical
address space either directly or thro
ugh paging. When using direct mapping (paging disabled), each linear address
has a one-to-one correspondence with a physical address. Linear addresses are sent out on the processor’s address
lines without translation.
When using the IA-32 architecture’s paging mechanism
(paging enabled), linear address space is divided into
pages which are mapped to virtual memory. The pages of vi
rtual memory are then mapped as needed into physical
memory. When an operating system or executive uses paging, the paging mechanism is transparent to an applica-
tion program. All that the applic
ation sees is linear address space.
In addition, IA-32 architecture’s paging mechanism includes extensions that support:
• Physical Address Extensions (PAE) to address physical address space greater than 4 GBytes.
• Page Size Extensions (PSE) to map linear addr
ess to physical address in 4-MBytes pages.
|
does that means (or we can say most modern programs) games and apps use a segmented memory with paging?
and how could that affect cheating? (making it easier maybe!)
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote: | i am a sweetheart. |
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25295 Location: The netherlands
|
Posted: Mon Nov 27, 2017 7:40 pm Post subject: |
|
|
it is as it always is, no change
it's only difficult for people that scan physical memory as they scan the memory of every process in the system, and it's not sequential
e.g process 1 can have 00400000 at physical address 20008000 and 00401000 at address 20004000
and process 2 can have it's 00400000 at physical addresd 20009000.
_________________
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 |
|
|
OldCheatEngineUser Whateven rank Reputation: 20
Joined: 01 Feb 2016 Posts: 1587
|
Posted: Mon Nov 27, 2017 7:46 pm Post subject: |
|
|
okay what about when using CE's function dissect code?
does it make any difference when its segmented memory or flat memory?
EDIT: maybe for analyzing?
Quote: | Flat memory model
— Memory appears to a program as a single, continuous address space (Figure 3-3). This
space is called a
linear address space
. Code, data, and stacks are all contained in this address space. Linear
address space is byte addressable, with ad
dresses running contiguously from 0 to 2
32
- 1 (if not in 64-bit
mode). An address for any byte in linear address space is called a
linear address
. |
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote: | i am a sweetheart. |
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25295 Location: The netherlands
|
Posted: Mon Nov 27, 2017 8:13 pm Post subject: |
|
|
when cheat engine scans memory of a process it's all in the linear address space of the target
that's why some memory regions show ?? ?? ?? because those segments of the virtual memory have not been filled it
_________________
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 |
|
|
OldCheatEngineUser Whateven rank Reputation: 20
Joined: 01 Feb 2016 Posts: 1587
|
Posted: Mon Nov 27, 2017 8:20 pm Post subject: |
|
|
ah i see, now i understood.
thanks db
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote: | i am a sweetheart. |
|
|
Back to top |
|
|
ParkourPenguin I post too much Reputation: 140
Joined: 06 Jul 2014 Posts: 4299
|
Posted: Mon Nov 27, 2017 8:33 pm Post subject: |
|
|
A segmented memory model was useful when everything was 16-bit, but it's mostly unused nowadays. Pretty much everything uses a flat memory model, and the segment registers (except FS and GS) go unused.
See this MSDN page for more information about how memory works on Windows.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
Back to top |
|
|
OldCheatEngineUser Whateven rank Reputation: 20
Joined: 01 Feb 2016 Posts: 1587
|
Posted: Mon Nov 27, 2017 8:37 pm Post subject: |
|
|
okay ill take a look, thanks Pp.
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote: | i am a sweetheart. |
|
|
Back to top |
|
|
|