Przydzielanie pamięci dla programu

0

Witam. Jako, że ostatnio zainteresowałem się technika incjection, to mam parę pytań z podstaw. Przeczytałem parę stron na ten temat i nie mogę zrozumieć paru rzeczy. Najpierw musimy znaleźć adresy poszczególnych interesujących nas zmiennych. Czy przypadkiem nie jest tak, że za każdym razem system operacyjny przydziela nam inne "miejsce" w pamięci? Czy jest jakiś stały adres względem którego można potem dostać się do tych konkretnych zmiennych? Czy jest jakaś uniwersalna metoda za pomocą której możemy te zmienne znaleźć ? To na razie tyle pytań :P Proszę o pomoc i pozdrawiam.

1

Za każdym uruchomieniem programu zmienne będą w różnych adresach. Albo nawet i gorzej.

Dawno temu, jak używałem trainera do gier, to działało to tak, że jeżeli wartość np. złota była 1000, to się szukało w pamięci gdzie jest 1000, potem zmieniało złoto na 900, szukało gdzie spośród tych adresów znalezionych wcześniej teraz jest 900 i tak dalej. I miało się adres w pamięci, więc można go było zmanipulować już ręcznie.

0

No właśnie. Ale w takim razie jak działają te wszystkie trainery? Skąd wiedzą gdzie w pamięci będzie akurat ta liczba złota skoro za każdym razem ląduje w innym miejscu? Chyba jakiś adres musi być stały bo jak inaczej to wszystko działa...

2

@tomek773 a pomyślaleś o tym że są pewne "stałe" markery w pamięci? Pewne wartości które zawsze są takie same i znajdują się "obok" tego co cię interesuje? ;)

0

Hmm ale dalej nie rozumiem... Skoro są jakieś 'znaczniki' to wciąż; skąd wiemy pod którym znacznikiem znajdą się dane naszego programu. Może polecicie jakąś stronę na której bym mógł poczytać o tej konkretnej rzeczy ?

Nie mogę edytować, a dopiero teraz zobaczyłem post powyżej. Dzięki za link, może mi się coś rozjaśni.

0

Może się nie znam ale ja robiłem pobieranie na bieżąco programem pewnym wartości z pewnej gry i adresy które podejrzałem w pamięci Cheat Engine`m się nie zmieniały. Prawdopodobnie były to jakieś statyczne wartości no ale dało radę.

0

Zobacz sobie kod trainera w WinAPI do Max Payne na moim blogu. Tam dobrze widač wyszukiwanie jak to tutaj nazwano markera, bo jeden z adresów pointerów o ile dobrze pamiętam do energii ustalony pod Cheat Engine jest zmienny i znajduje się w pewnym stałym przesunięciu od charakterystycznego ciągu bajtów. A pozostałe rzeczy to stałe adresy pointerów ustalonych pod Cheat Engine w standardowy sposób opisany w Google. Kod jest w Delphi, ale wedle mnie nie jest on skomplikowany, więc idzie się połapać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1