Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


about hardware level and memory

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions
View previous topic :: View next topic  
Author Message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1586

PostPosted: Mon Nov 27, 2017 7:25 pm    Post subject: about hardware level and memory Reply with quote

according to intel's architecture software developer's manual:

IA-sdm sheet wrote:
  • Segmented memory model

— 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
View user's profile Send private message Visit poster's website
Dark Byte
Site Admin
Reputation: 457

Joined: 09 May 2003
Posts: 25262
Location: The netherlands

PostPosted: Mon Nov 27, 2017 7:40 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1586

PostPosted: Mon Nov 27, 2017 7:46 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Dark Byte
Site Admin
Reputation: 457

Joined: 09 May 2003
Posts: 25262
Location: The netherlands

PostPosted: Mon Nov 27, 2017 8:13 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1586

PostPosted: Mon Nov 27, 2017 8:20 pm    Post subject: Reply with quote

ah i see, now i understood.
thanks db Mr. Green

_________________
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
View user's profile Send private message Visit poster's website
ParkourPenguin
I post too much
Reputation: 138

Joined: 06 Jul 2014
Posts: 4275

PostPosted: Mon Nov 27, 2017 8:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1586

PostPosted: Mon Nov 27, 2017 8:37 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites