Autor Wątek: Game hacking...  (Przeczytany 5828 razy)

Offline Silther

  • Użytkownik

# Marzec 30, 2006, 21:05:42
Szczerze nie znam się na pamięci, więcnie będę się kłócił, ale zasugerowałem się tym, że w kursie nie było nic wspomniane o tym, że to ten proces, tylko "pierwszy megabajt pamięci konwencjowalnej". Poza tym wydaje mi się, że ten program zajmuje w pamięci mniej miejsca niż 1 MB (można zwiększyć tą ilość). Więc co zostanie zapisane do pliku, kiedy zostanie przekroczony zakres pliku w pamięci?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Marzec 30, 2006, 21:16:15
Ten program jest standardowym programem napisanym w trybie rzeczywistym (po standardowej kompilacji i linkowaniu powinien wyjść z tego plik .com [exe oczywiście też może]). W tym trybie nie istnieje pojęcie 'własności' kawałka pamięci RAM (poza oczywiście faktem przydzielenia temu programowi jakichś bloków pamięci). Programy mogą sobie równo jechać po całym RAMie. To odpowiedź na twoje pierwsze i ostatnie pytanie (o zajętości pamięci i przekroczeniu zakresu). Poza pierwszy megabajt w ten sposób nie da się przejechać (z powodu ograniczeń adresowania SEGMENT:OFSET [20 bitów]) nie używając procedur dostępu pamięci EMS lub XMS. Dlaczego działa na XP? Bo w prockach x86 od 386 w górę, istnieje tryb wirtualny, który pozwala uruchomić jakiś program w 'wirtualnym' komputerze, który dostaje jakiś kawałek pamięci, który wewnątrz tego programu ma własne adresowanie [od 0]