Jeśli wpiszesz cl.exe /?, otrzymasz ogromną listę opcji kompilatora. Jednak większość z nich nie jest dla nas interesująca w tym momencie. Tabela zawiera listę i opis flag, których będziesz używać.
Ponieważ będziemy teraz używać debugera, skompilujmy meet.exe z pełnymi informacjami debugowania i wyłączmy funkcjonalność stack canary.
UWAGA: Przełącznik /GS włącza implementację ochrony stack canary firmy Microsoft, która jest dość skuteczna w zatrzymywaniu ataków przepełnienia bufora. Aby dowiedzieć się więcej o istniejących lukach w oprogramowaniu (zanim ta funkcja stała się dostępna), wyłączymy ją za pomocą flagi /GS–.
Wykonaj następujący krok, aby skompilować wersję programu meet.c, której będziesz używać w laboratorium
Świetnie, teraz, gdy masz plik wykonywalny zbudowany z informacjami debugowania, czas zainstalować debuger i sprawdzić, jak debugowanie w systemie Windows wypada w porównaniu z debugowaniem w systemie Unix. W tym laboratorium użyłeś programu Visual Studio 2019 Community Edition do skompilowania programów hello.c i meet.c. Skompilowaliśmy program meet.c z pełnymi informacjami debugowania, które pomogą nam w następnym laboratorium. Przyjrzeliśmy się również różnym flagom kompilatora, których można użyć do wykonywania działań, takich jak wyłączenie kontroli łagodzenia eksploitów /GS.