C++ Offset z pamete

Programovacie jazyky, rady, poradňa...
Abaddon
Medium Expert
Medium Expert
Príspevky: 104
Registrovaný: 18 feb 2008, 14:40

C++ Offset z pamete

Príspevok od používateľa Abaddon »

Zdravim neviete niekto ako mozem zistit offset z dakej adresy pamete?
(Ide mi hlavne o vzdialenost od zaciatku pamete)
Vopred dakujem za odpoved.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

To záleží aj od operačného systému, na ktorom to chceš zistiť. Napr. na "bežnom" 32b/64b OS je adresa zároveň offset (to ale nemusí znamenať vôbec nič, keďže medzi adresou 0 tým ukazovateľom môžu byť prázdne miesta).

PS: Ale nerozumiem, čo presne myslíš tým začiatkom pamäte.
Abaddon
Medium Expert
Medium Expert
Príspevky: 104
Registrovaný: 18 feb 2008, 14:40

Príspevok od používateľa Abaddon »

Najnizsiu adresu v ktoru zabera ten program pri svojej cinnosti.
Potrebujem to na prieskum premennych v pameti ineho procesu :) Ak vies ale lepsi sposob tak sem s tym budem len rad. A inac diky za odpoved.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Problém je, že OS (teraz hovorím hlavne o Windows, ale platí to aj pre Linux a iné OS) alokuje pamäť podľa potreby a tá pamäť na seba nemusí najako nadväzovať.

Teda ak chceš vedieť, akú pamäť ten program používa, musíš použiť nejaké funkcie, ktoré ti vrátia informácie o pamäti. Napr. môžeš použiť funkciu VirtualQueryEx. Začneš na adrese 0 a postupne budeš adresu posúvať podľa toho, akú veľkosť regiónu ti tá funkcia vráti (bude ťa zaujímať hlavne pamäť, ktorá nemá stav MEM_FREE).

Inak potom by si mohol kontrolovať aj to, či sa do tej pamäte dá zapisovať (ak sa tie premenné môžu aj meniť).

Ak vieš, že tie premenné sú v dátovom segmente, tak veľkosť tej prehľadávanej pamäte môžeš výrazne zmenšiť, ale ak nevieš, kde tá premenné môže byť, musíš prehľadávať aj stack a heap.
Abaddon
Medium Expert
Medium Expert
Príspevky: 104
Registrovaný: 18 feb 2008, 14:40

Príspevok od používateľa Abaddon »

Super diky moc vyskusam tu funkciu :) Pretoze teraz som pouzival FindWindows a zvysoval som hladanie pamete od handleru o 1 co trvalo dost dlho a nebolo to moc efektivne takze este raz diky moc.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

A čo vlastne robíš? Nejaký program na vytváranie cheatov? :) (niečo také som kedysi robil aj ja a pri tom som potreboval práve niečo také, ako teraz potrebuješ ty). :)
Abaddon
Medium Expert
Medium Expert
Príspevky: 104
Registrovaný: 18 feb 2008, 14:40

Príspevok od používateľa Abaddon »

Presne tak vytvaram ako keby univerzalny trainer :D Uvidime ako to dopadne :)
Napísať odpoveď