Opisaną poniżej sztuczkę pokazywałem ostatnio w ramach demo podczas sesji na spotkaniu WiT i na prośbe uczestniczek opisuję ją jeszcze raz i powoli.
Na początek, należy zaopatrzyć się w Debugging Tools for Windows i grę Minesweeper z Windows XP. System, na którym przeprowadzamy doświadczenie nie ma znaczenia. Chodzi o to, żeby w uruchomionym procesie winmine.exe odpowiedzialnym za grę Minesweeper, tak zmodyfikować kod, aby funkcja wyświetlająca planszę była przekonana, że ma wyświetlić wszystkie miny. W efekcie robi to, a gra staje się szybka i przyjemna, choć nieco nudnawa.
Aby osiągnąć zamierzony cel, należy kolejno:
Miłej zabawy!
Warto przy tym pamiętać, że od Windows 2000, programiści mają możliwość oznaczania (przy pomocy funkcji VirtualProtect) fragmentów swojego kodu jako niemodyfikowalny. Gdyby twórcy naszego Minesweepera tak zrobili – cała zabawa zakończyłaby się niepowodzeniem. Nie zadbano o to jednak (istnieje wiele możliwych powodów), dzięki czemu proste demo kończy się całkiem interesującym efektem.
Autor: Grzegorz Tworek [MVP]
Czy możliwe jest otwarcie kart zakrytych w grze Solitaire?
Nic mi o tym nie wiadomo. Ale za głęboko nigdy nie szukałem... Może kiedyś, w wolnej chwili.... Bo teoretycznie, to czemu nie? ;)