Wątek przeniesiony 2021-03-24 11:54 z Inżynieria oprogramowania przez Shalom.

Jak debugowane są sterowniki karty VGA?

1

Na bazie postów o kopaniu i cenach jak np.
Złożenie komputera w dzisiejszych czasach
Naszła mnie refleksja, jak debuguje się sterowniki karty VGA. NVIDIA ostatnio ogłosiła że RTX3060 ma mieć specjalny sterownik blokujący kopanie chyba Etherum.
Już pojawiły się jakieś mody oraz NVIDIA dała jakiś testowy sterownik bez tej funkcji i kopacze już kopią.
Zastanowiło mnie jednak jak zdebugować i wykryć taką funkcjonalność celem jej usunięcia.
Scenariusz - kupujemy kartę i pobieramy sterowniki potem chcemy usunąć taką funkcjonalność.
Stery Nvidii już ważą po kilkaset mega i pewnie takie wykrywanie kopania to też nie jedna funkcja w jednym miejscu. Stery to też nie Open Source.
Czyli jak coś takiego zrobić?

0

Inżyniera wsteczna, mówi Ci to coś? A zdaje się, że jest to nielegalne.

0

@youmound: tak mówi. Tylko stery VGA z zaawansowanymi opcjami sprawdzania jakichś obliczeń matematycznych nie wydaje się być proste. Tym bardziej, że pewnie to jeszcze jakoś obfuskowane.

0

To może zadowoli Cię odpowiedź: "Czyli jak coś takiego zrobić?" - nie da się?`

Nie jakieś tam obliczenia, tylko równania różniczkowe realizowane metodami numerycznymi :>

1

Jak się kiedyś odkrywało świeże bugi w windach: czekasz aż M$ wypuści patch'a/update - aplikujesz patcha i porównujesz z obrazem systemu zrobionym tuż przed instalacją patcha. Patrzysz w których DLL'kach i SYS'ach jaki kod się zmienił i masz już jakiś punkt zaczepienia gdzie może być bug. Na sieci zawsze znajdzie się jakiś nie "up-to-date" windows na którym można taki reverse-engineer'owany bug wykorzystać.

Co do sprzętu, to znam się tylko z moich przygód z retro computingiem. Ale generalnie wydaje mi się że trzeba od

  1. przejrzenia protokołów dla starszych wersji kart NVidia (stań na ramionach gigantów), nowe pewnie są bardzo podobne
  2. open-source niewiele jest ale warto sprawdzić: https://en.wikipedia.org/wiki/Nouveau_(software)
  3. zrzut komunikacji driver'a z kartą, co się piszę co się czyta, jako że to idzie przez DMA pewnie to potrzeba pewnie mieć jakiś bardziej specjalistyczny sprzęt
  4. na podstawie 1, 2 i 3, trzeba odcyfrować protokół komunikacyjny
  5. znając protokół i architekturę można szukać exploidów lub jeżeli mamy szczęście wysłać po prostu odpowiedni ciąg instrukcji

Wydaje mi się też że takie zdejmowanie zabezpieczeń to często wychodzi od ludzi z branży którzy mieli np. możliwość pracy nad kodem sterownika.

1

To moze byc kilka linijek kodu. Nawet jak dotrzesz do pliku wykonywalnego ktory to zawiera to i tak moze sie okazac ze masz do przeszukania setki kilo LOC.
Ale zycze powodzenia, Rosjanie nie takie rzeczy rozgryzali w czasie zimnej wojny.

1

Gdyby dało się to łatwo zrewersować i wypatchować to jaki w ogóle sens miałoby pisanie takiego zabezpieczenia przez producenta sterownika? ;) Jeśli chodzi o samo debugowanie to np. w przypadku windowsa potrzeba do tego 2 komputerów -> https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windows-debugging i myśle że analogicznie w przypadku linuxa (ale qemu/kvm mogą wystarczyć)

1

Nie wiem jak teraz, ale podczas wcześniejszego szału na kryptowaluty kopacze instalowali modyfikowany firmware na kartach, żeby chodziły na pełnej mocy 24 / 7 bez dbania o temperatury. W porównaniu z tym sterownik to nic.

0

O FW wiem oczywiście. Natomiast tu wyraźnie NVIDIA pisała o sterach
Dziękuję ślicznie za wszystkie merytoryczne wypowiedzi.
Chyba już wszystko wiem.
Oczywiście za chudy w uszach jestem na zabieranie się za coś takiego i ciekaw byłem czy są jakieś wydajne metody na takie działania.

0

@jurek1980: Sterowniki to tylko część systemu antykoparkowego, same karty też mają w teorii zabezpieczenia. Które ominięto wkładając "wirtualne wyświetlacze" w gniazda HDMI. Czy powstaną karty na to odporne i wejdą do sprzedaży zanim szał na krypto się skończy? nie mam pojęcia

0

Karta graficzna wykonuje tylko obliczenia prawdopodobnie są w driverach odpowiednie funkcje, które wykonują operacje kryptograficzne, mogą być blokady na tych procedurach albo mogą być usunięte, to można je odblokować lub je przywrócić.

Jeśli sam zaimplementujesz te obliczenia to ominiesz zabezpieczenia, nie wiem jakie heurystyki trzeba by było stworzyć żeby wykryć, że akurat ktoś kopie bitcoina, a nie wykonuje innych obliczeń.

0
Shalom napisał(a):

Gdyby dało się to łatwo zrewersować i wypatchować to jaki w ogóle sens miałoby pisanie takiego zabezpieczenia przez producenta sterownika? ;)

reklamowy ;) pytanie czy dobrze to przemyśleli
dorobili się na kopaczach, reklamują jako procesory do obliczeń a tu takie cosik

1 użytkowników online, w tym zalogowanych: 0, gości: 1