Hak to funkcjonalność zapewniana przez oprogramowanie dla użytkowników tego oprogramowania w celu wywołania własnego kodu w określonych okolicznościach. Ten kod może rozszerzyć lub zastąpić obecny kod.
W dawnych czasach, gdy komputery były naprawdę osobiste, a wirusy były mniej rozpowszechnione (mówię o latach 80.), wystarczyło załatać oprogramowanie systemu operacyjnego, aby wywołać twój kod. Pamiętam, jak napisałem rozszerzenie do języka Applesoft BASIC na Apple II, które po prostu podłączyło mój kod do interpretera BASIC, wstrzykując wywołanie do mojego kodu przed przetworzeniem dowolnego wiersza.
Niektóre komputery miały wstępnie zaprojektowane zaczepy, jednym z przykładów jest strumień we / wy w Apple II. Użył takiego haka do wstrzyknięcia całego podsystemu dyskowego (ROMy Apple II ROM zostały pierwotnie zbudowane w czasach, w których kasety były podstawowym nośnikiem pamięci dla komputerów PC). Kontrolowałeś dyski, drukując kod ASCII 4 ( CTRL-D
), a następnie polecenie, które chcesz wykonać, a następnie a CR
, i został on przechwycony przez podsystem dyskowy, który podłączył się do procedur drukowania Apple ROM.
Na przykład linie:
PRINT CHR(4);"CATALOG"
PRINT CHR(4);"IN#6"
wyświetli zawartość dysku, a następnie ponownie zainicjuje maszynę. Pozwoliło to na takie sztuczki, jak ochrona programów BASIC poprzez ustawienie pierwszego wiersza jako:
123 REM XIN#6
następnie używając, POKE
aby wstawić CTRL-D
znak tam, gdzie X
był. Następnie każdy, kto spróbuje podać źródło, wyśle sekwencję ponownej inicjalizacji poprzez procedury wyjściowe, w których podsystem dyskowy ją wykryje.
Jest to często rodzaj oszustwa, do którego musimy się zastosować, aby uzyskać pożądane zachowanie.
W dzisiejszych czasach, z bardziej bezpiecznym systemem operacyjnym, zapewnia on możliwości haków, ponieważ nie należy już modyfikować systemu operacyjnego „w locie” ani na dysku.
Byli już od dłuższego czasu. Miały je komputery mainframe (zwane wyjściami), a duża część oprogramowania mainframe korzysta z tych udogodnień nawet teraz. Na przykład darmowy system kontroli kodu źródłowego dostarczany z systemem z / OS (zwany SCLM) pozwala całkowicie zastąpić podsystem bezpieczeństwa, po prostu umieszczając własny kod w wyjściu.