Czy kontroler dysku mógłby samodzielnie załadować system operacyjny?

0

Z jakichś oczywistych powodów, o które pytam, z pewnością byłbym nieefektywnym sposobem na robienie rzeczy, ale chciałem zapytać ekspertów w dziedzinie sprzętu / oprogramowania, czy byłoby to możliwe

Mój scenariusz byłby taki, że wbudowane oprogramowanie sprzętowe kontrolera HDD / SSD ustawiłoby z góry określony czas we własnym zegarze przed rozpoczęciem transferu DMA do pamięci hosta. Oprogramowanie układowe byłoby już wstępnie zaprogramowane adresem / liczbą gdzie do DMA do pamięci RAM poprzez zaprogramowanie rejestrów kontrolerów.

Powrót do bitu timera ... Zdefiniowany czas przed rozpoczęciem DMA do pamięci hosta to czas potrzebny procesorowi na pobranie Bios / Uefi z jego flasha flash lub cokolwiek innego i zainicjowanie całego innego sprzętu, w tym SSD / HDD, a potem raz wszystko, co zostało zaprogramowane, aby podnieść stop, aby procesor przestał korzystać z autobusu. Dysk SSD / HDD przerwałby procesor po załadowaniu systemu operacyjnego.

Wiem, że to chyba brzmi jak szalone pytanie, ale lubię naprawdę przekopać się na niskim poziomie, aby zobaczyć, jak to działa i zastanawiać się, czy można to zrobić, czy ktoś może mi wytłumaczyć, że nie byłoby to możliwe czy nie miałoby sensu?

Przepraszamy, jeśli nie jest to właściwe forum do zadawania takich pytań

Patrick Bateman
źródło

Odpowiedzi:

0

Czy kontroler dysku mógłby samodzielnie załadować system operacyjny?

Nie, nie przy typowej architekturze PC.
Zintegrowany kontroler dysku twardego / dysku SSD może komunikować się tylko z komputerem hosta za pośrednictwem interfejsu SATA.
Interfejs SATA ma hierarchię nadrzędny / podrzędny: komputer główny jest urządzeniem nadrzędnym, a dysk twardy / SDD jest urządzeniem podrzędnym.
IOW to, co i kiedy transfer danych jest pod kontrolą komputera hosta, a nie HDD / SSD.

Niezależnie od tego, w jaki sposób zhakowano dysk, komputer hosta nadal ma kontrolę.
NA PRZYKŁAD. Transfery magistrali DMA / hosta i operacje SATA (które są dwiema różnymi operacjami, które wydaje się się łączyć) nadal muszą być inicjowane przez komputer hosta, a dysk twardy / dysk twardy nie ma możliwości inicjowania transferu DMA / host-bus lub Operacja SATA.

Większość tego, co piszesz, nie ma sensu.

sawdust
źródło
Dzięki za odpowiedź SawDust, wiedziałem już o tym i powinienem to umieścić w moim pytaniu. Chyba głupio pytam, czy możesz zaprojektować kontroler, aby to zrobił, co oczywiście jest oczywiste, ale zasadniczo zmieni to sposób działania hosta na wszystkich urządzeniach peryferyjnych. Czy host musi także skonfigurować routing pcie interfejsu SATA, więc nawet jeśli zaprojektowałeś kontroler SSD z większą inteligencją, nie wiedziałby on, gdzie i tak przesyłać dane? Jeśli mam rację, myślę, że ruch DMA SATA musi przejść przez PCIE?
Patrick Bateman
Próbujesz zmusić ogona do machnięcia psem. Ta strona nie jest przeznaczona do dyskusji ani hipotetycznych komputerów. PCIe jest rozstrzygane na poziomie HW; CPU (tj. oprogramowanie) nie musi być zaangażowany.
sawdust
0

Tak dobrze, Nie .

Niezbędna praca zostało zrobione . Okazuje się, że kontrolery dysków mają więcej niż wystarczającą ilość pamięci i procesora, aby wykonywać tego typu sztuczki - rootkit twoich koszmarów .

Więc efekt chcesz mogą być uzyskiwane przez dysk twardy dostarczający do CPU inny OS niż rzeczywisty (jeśli w ogóle).

Ale nie można tego zrobić przez przejęcie kontroli nad dyskiem twardym . To nie działa w ten sposób.

LSerni
źródło
Dziękuję za odpowiedź i wcześniej przeczytałem ten artykuł. Czy możesz powiedzieć, że mój sposób na to jest możliwy?
Patrick Bateman
„ale zostało zrobione” - Nie, przesadzasz. Włamanie się do dysku twardego nie jest tym samym, co pytanie OP.
sawdust