Spędziłem dużo czasu rozwijając system operacyjny i pracując nad moim niskopoziomowym programem ładującym. Ale teraz chcę odpocząć od mojego systemu operacyjnego, nie opuszczając środowiska niskiego poziomu i nie robiąc czegoś związanego z bezpieczeństwem.

Dlatego zdecydowałem się zbudować własne standardowe narzędzie do haseł zgodnie ze schematem uwierzytelniania przed uruchomieniem. Ponieważ chcę, aby oprogramowanie było przynajmniej trochę przenośne, chcę, aby korzystało z jak najmniejszego wsparcia zewnętrznego. Pomyślałem, że najlepiej będzie, jeśli jakoś zdołam „podpiąć się” do biosu gdzieś pomiędzy autotestami a int 19 bootstrapem z działającego systemu operacyjnego w trybie rzeczywistym.

Jednak znalezienie informacji o tym, jak zmodyfikować kod biosu, okazało się niemożliwe. Nie znalazłem nic, jak osiągnąć wspomniane wcześniej. Znalazłem tylko strony opisujące jak sflashować swój bios.

Czy ktoś wie, jak mogę czytać/pisać kod bios? A może ktoś może podać linki do stron, które to opisują?

Wiem, że nie tylko da się zmurować moje urządzenie, ale jest też prawdopodobne, jestem świadom ryzyka i chętnie je podejmę.

14
Rick 19 sierpień 2011, 18:09
4
Chętnie pomogę, ale to jest poza moim zakresem, miłe pytanie. +1.
 – 
Pedro Lobito
19 sierpień 2011, 18:14

3 odpowiedzi

Najlepsza odpowiedź

artykuły Pinczakko na temat inżynierii wstecznej BIOS-u są świetnym miejscem, by zacząć się temu przyglądać. Była też książka opublikowana przez tego samego autora, ale obecnie nie ma jej wydrukować.

Nie jestem pewien, czy to podejście jest najlepszym podejściem do bezpiecznego rozruchu, ale artykuły na tej stronie są bardzo szczegółowe i powinny wskazać metodę modyfikacji oprogramowania układowego BIOS.

4
Dion 20 sierpień 2011, 01:50
Natknąłem się na kilka jego artykułów w przeszłości, myślałem, że napisał tylko przewodnik po inżynierii wstecznej swojego biosu, ale pod linkiem, który podałeś, jest kilka artykułów, dziękuję za to!
 – 
Rick
20 sierpień 2011, 16:03
Wygląda na to, że jego artykuł Award BIOS Code Injection jest dokładnie tym, czego szukałem, dzięki za link. jak powiedziałem wcześniej, wiedziałem o jego artykule cofania, ale nie o innych jego artykułach.
 – 
Rick
20 sierpień 2011, 18:52

Nie jestem do końca pewien, co chcesz osiągnąć, ale:

BIOS jest całkowicie specyficzny dla sprzętu - każdy producent będzie miał swój własny mechanizm aktualizacji / flashowania BIOS-u, więc próba wymyślenia przenośnego mechanizmu aktualizacji BIOS-u jest skazana na niepowodzenie. Na przykład podczas korzystania z Bochs aktualizujesz BIOS, określając inny obraz BIOS ROM.

Jeśli chcesz zmodyfikować / napisać własny BIOS, będzie on całkowicie specyficzny dla tego sprzętu. Najlepiej byłoby zacząć od czegoś takiego jak Bochs jako otwartego źródła - ponieważ możesz spojrzeć na kod źródłowy BIOS (i łatwo go przetestować / debugować), masz rozsądną szansę na zrozumienie kodu BIOS i zmodyfikowanie go w coś, co działa, ale podejrzewam, że to nie jest to, co próbujesz zrobić.

Dlaczego nie przeprowadzić tego uwierzytelnienia podczas uruchamiania systemu operacyjnego? Jeśli chcesz chronić dane, powinieneś je zaszyfrować i wymagać od użytkownika podania loginu / podania klucza deszyfrującego podczas uruchamiania.

3
Justin 19 sierpień 2011, 18:41
Zajrzę do bochów. Zaimplementowałem już moduł wykonujący kontrole bezpieczeństwa w moim systemie operacyjnym, chociaż jest to tylko proste szyfrowanie xor/ror/rol (bardziej jak kodowanie) Teraz próbuję przyspieszyć moją grę i jeśli jakoś ją przenośną może być używany do zabezpieczania systemów operacyjnych, które nie obsługują tego natywnie. Również problem, z którym się borykam, to raczej rodzaj „wiem, że chcę to zrobić, ale nie wiem, jak to zrobić”. Nie mam pojęcia, jak uzyskać dostęp do pamięci flash, kiedy to zrobię, mogę zacząć eksperymentować i samodzielnie wymyślać różne rzeczy.
 – 
Rick
19 sierpień 2011, 18:48

Jeśli zastanawiałeś się nad pracą z „starszym” BIOS-em PC, odradzałbym Ci próbowanie z wielu powodów, o których wspomniał Justin: 1) starszy BIOS jest specyficzny dla producenta komputera; 2) jest zamknięty i zastrzeżony; 3) nie ma standardów branżowych definiujących starsze interfejsy BIOS do rozszerzania systemu, tak jak próbujesz to zrobić.

Z drugiej strony, jeśli masz dostęp do komputera z systemem BIOS z UEFI, możesz być w stanie napisać własny(e) sterownik(i) PEI/DXE, aby zaimplementować taką funkcję. To przynajmniej wskaże ci właściwy kierunek:

http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Witamy

Książka Intel Press na ten temat: Poza BIOSem

Jeśli chodzi o praktyczność odczytu/zapisu BIOS-u, musisz zidentyfikować część SPI zawierającą BIOS i uzyskać nagrywarka ROM. Część SPI może, ale nie musi być w gnieździe; jeśli nie jest osadzony, będziesz potrzebować lutownicy i będziesz w stanie utworzyć gniazdo/nagłówek dla części. Oczywiście nie chcesz rozpoczynać tego projektu ze swoim podstawowym systemem komputerowym. Być może mógłbyś znaleźć starszy system lub płytkę referencyjną.

2
William Leara 20 sierpień 2011, 06:46
Dziękuję za odpowiedź, przeczytam opublikowane przez Ciebie artykuły i zobaczę, czy mi pomogą. Obawiam się, że tak nie jest, ponieważ wszystkie maszyny, które mam, używają starszych wersji biografii.
 – 
Rick
20 sierpień 2011, 15:14