Hackowanie interfejsów sprzętowych z Arduino (film, 15m)
Na kanale Adam Śmiałek, widzowie zostali zaproszeni do nowej serii filmów dotyczących hakowania interfejsów, pojęcia mało znanego, ale bardzo użytecznego. Adam podkreśla, że hakowanie nie jest wyłącznie związane z nielegalnym dostępem do systemów, lecz może dotyczyć także usprawniania użycia sprzętu, co jest celem tej serii. Rozpoczyna od wyjaśnienia, czym jest interfejs, zaznaczając, że obejmuje on nie tylko fizyczne złącza, ale także panele sterujące, z którymi na co dzień mamy do czynienia. W odcinku skupi się na hakowaniu monitora, który, pomimo swojej przydatności, ma nieintuicyjny interfejs, sprawiający problemy podczas użytkowania.
W kolejnych krokach Adam przedstawia monitor wybrany do analizy i omawia problemy, jakie występują z jego klawiaturą. Zwraca uwagę na to, jak małe, membranowe przyciski mogą powodować frustrację użytkowników. Podczas eksploatacji sprzętu Adam stara się unikać jego uszkodzenia, co jest ważnym aspektem przemyślanego hakowania. Mówi o potrzebie rozpoznania konstrukcji urządzenia i możliwości modyfikacji interfejsu w sposób, który nie zniszczy oryginalnej funkcjonalności.
W miarę jak Adam kontynuuje proces analizy elektronicznych połączeń, dzieli się praktycznym podejściem do testów miernikiem. Ostatecznym celem jest stworzenie systemu, który pozwala na wygodniejsze sterowanie monitorem, przy pomocy Arduino. Adam objaśnia również, jak ważna jest izolacja w przypadku podłączania nowych systemów do istniejących urządzeń po to, by uniknąć problemów z błędami w ich działaniu.
Adam wyjaśnia, że klawiatura monitora jest bardziej złożona niż się początkowo wydaje, co dodaje kolejnego poziomu do wyzwania hakowania. Zamiast używać skomplikowanego podłączenia dwóch linii, decyduje się na zastosowanie transoptorów, co wymaga dalszych testów. Dzięki lepszym komponentom udaje mu się znaleźć elementy, które działają w niskich napięciach, co pozwala mu kontynuować projekt. Adam również dotyka tematu przekaźników, jako alternatywy, podkreślając, że dbałość o detale, takie jak diody gaszące przepięcia, jest kluczowa dla długoterminowego sukcesu.
Na koniec Adam zaprasza do śledzenia kolejnych odcinków, obiecując dalszy rozwój swoich pomysłów i rozwiązań. Zostańcie z nim, aby poznać następne etapy hakowania interfejsów i podejmowania wyzwań z elektroniką. Film oglądany był do tej pory przez 20,567 osób, zdobywając 646 polubień. To świadczy o dużym zainteresowaniu tematem i zachęca do dalszych działań w tej dziedzinie.
Toggle timeline summary
-
Wprowadzenie do partnera kanału, TME, globalnego dystrybutora komponentów elektronicznych.
-
Zaproszenie do subskrypcji kanału.
-
Powrót do praktycznych treści.
-
Wprowadzenie do serii o hakowaniu interfejsów.
-
Wyjaśnienie, czym jest hacking.
-
Skupienie się na hackowaniu w kontekście zwiększania wygody urządzeń.
-
Definicja interfejsu.
-
Dyskusja na temat różnych typów paneli urządzeń.
-
Wzmianka o ograniczeniach spowodowanych przez interfejsy.
-
Wprowadzenie do typowego przykładu monitora.
-
Dyskusja na temat nieintuicyjnego oryginalnego panelu monitora.
-
Wyjaśnienie, że jest to ogólny film metodowy, a nie specyficzny dla jednego monitora.
-
Dyskusja na temat powodów, dla których chcemy hackować urządzenia.
-
Porównanie problemów z użytecznością urządzenia multi-efektowego na gitarze.
-
Podkreślenie zachowania oryginalnej funkcji urządzenia.
-
Początkowe kroki obejmują rozpoznanie sprzętu.
-
Odkrycie dotyczące wewnętrznych połączeń monitora.
-
Szczegóły dotyczące braku styku włącznika zasilania monitora.
-
Wprowadzenie do podejścia z użyciem prostego połączenia z Arduino.
-
Wyzwania stawiane przez układ klawiatury monitora.
-
Testowanie i rozwiązywanie problemów z transoptorami.
-
Przygotowanie do kolejnych kroków w interfejsowaniu.
Transcription
Partnerem kanału jest firma TME, globalny dystrybutor komponentów elektronicznych. Zapraszam do subskrypcji mojego kanału. Dzień dobry. Wracamy do praktyki. Zapraszam na początek serii o tak zwanym hakowaniu interfejsów, rzeczy mało popularnej, a bardzo przydatnej, zwłaszcza ostatnio. HAKOWANIE Czym jest hakowanie? Właściwie do końca nikt nie wie, bo tak określa się wszystko, co jest związane z włamywaniem się do programów czy systemów i zmienianie ich zachowania na swoją modłę. Tak więc pojęcie to jest szerokie, podobnie jak motywy. Od ciekawości, usprawnień przez omijanie ograniczeń, czasem postawionych świadomie, po działalność już stricte nielegalną. Ponieważ to seria o Arduino, poprzestanę na węższym nieco znaczeniu hakowania i celu. Będziemy włamywać się do sprzętu, by uczynić jego pracę wygodniejszą. W każdym razie na początek. Czym jest interfejs? To także szerokie zagadnienie, bo dotyczy ogólnie tego, co łączy maszynę ze światem. Ale czasem sięga nie tylko po złącza, gniazdka i kable, a także panel sterujący, którym maszynę obsługujemy. Jedno i drugie jest ze sobą ściśle związane i tym właśnie będę chciał się zająć. Usprawnieniem owych interfejsów najczęściej nie do końca takich, jakich oczekujemy. Oczywiście paneli jest tyle, ile urządzeń, choć ostatnio mniej, gdyż wiele z nich migruje do smartfona. Tam korzystamy z paneli wyświetlanych, ale problem wcale nie został rozwiązany. Gratuluję pomysłodawcy tego interfejsu, szybkie wyzerowanie tej pozycji jest bardzo trudne. Ktoś powielokroć nie pomyślał, dał nam krótki suwak, zbędny zakres aż 12 jednostek eV, z czego używa się może czterech i rozdzielczość 1 szóstej jednostki, gdy potrzeba połowy, najwyżej 1 trzeciej. W tym przypadku możemy liczyć na upgrade, choć to zwykle nadzieje płonne. Rzućmy okiem na inne urządzenie, które będzie bohaterem dzisiejszego odcinka. Monitory Oto taki typowy, tak zwany chiński monitorek, przydatny przede wszystkim filmowcom, a ostatnio także fanom retro komputerów. Posiada nie tylko najbardziej dziś popularne wejście HD, ale dwa analogowe zespolone i profesjonalne komponentowe. Monitor ten wybrałem do przedstawienia idei hakowania interfejsu z kilku powodów. Oryginalny panel jest mało intuicyjny, ze względu na marne przyciski fatalnie się go obsługuje, cechuje się lagami i czasem trafienie w wybraną pozycję wymaga kilku prób, a do tego włamanie się do klawiatury stworzyło szereg nowych problemów, a więc też wyzwań. Tak więc będzie to bardzo fajny przykład, jak sobie radzić z niemiłymi urządzeniami, który pokaże wszystkie potencjalne problemy i podpowie rozwiązania. I tu moja uwaga. To nie jest film o hakowaniu tego konkretnego monitora, tylko o metodach i na tym się skupimy. Wrócę jeszcze do bardziej ogólnej myśli. Po co w ogóle zaprzątać sobie głowę jakimś hakowaniem? Tutaj trzeba użyć wyobraźni. Przykład z monitorkiem może nie będzie miał mocno praktycznego wymiaru, ale istnieje mnóstwo ciekawych urządzeń, które są ograniczone ze względu na interfejs. To jest na przykład tani multi-efekt do gitary, który brzmi jako tako, ale właściwie nie da się go używać na scenie poza zmianą presetu. A to jest ten sam efekt wbudowany w podręczny piecyk, który dla odmiany jest bardzo łatwy i szybki w użyciu, bo każdy istotny parametr możemy natychmiast zmienić, używając gałek. Jedna gałka dla jednego parametru. Na scenie jest to bezcenne. Żadnego menu, przewijania, szukania i zastanawiania się, co dany skrót może znaczyć. Tak, to jest dokładnie to samo urządzenie, tylko niebywale wygodniej sterowane. Pomyślmy teraz o różnego rodzaju wieżach audio, odtwarzaczach wideo, telewizorach i tym podobnych urządzeniach, w których producent poskąpił gałek ofiarując jedynie kilka niewygodnych przycisków, czasem ukrytych gdzieś, a bywa, że dotykowych, co już w ogóle jest tragedią. Gdy mamy pilota, rzeczy nie wyglądają tak źle, ale czasem go nie mamy albo jest on równie nieintuicyjny, co panel lokalny. Bierzmy się zatem do roboty, etap po etapie. Pierwszym z nich będzie rozpoznanie sprzętowe. Klawiatura Po rozkręceniu monitorka okazało się, że marna klawiatura bierze się z budowy. Malutkie membrany są przyklejone taśmą klejącą do pól miedzianych, bynajmniej niezłoconych, więc czasem styk jest, a czasem nie i trzeba się z przyciskami siłować. Możemy to poprawić, ale nie to jest celem naszych działań. Trzeba przyjrzeć się temu, jak to tu działa i gdzie możemy się włamać, by narobić się jak najmniej. Z tej strony bieda. Nie wiadomo nic na temat tego, co tu z czym zwieramy. Oczywiście można zerwać te membrany i przylutować w ich miejsce przewody, ale wtedy stracimy panel, a tego nie chcemy. Chcemy mieć możliwość pracy po staremu i za pomocą nowego interfejsu jednocześnie. To jest jedna z zasad, o której powinniśmy pamiętać. Jeśli tylko to możliwe, nie niszczmy oryginalnego sposobu pracy urządzenia. Odwróćmy płytkę i obróćmy ją jeszcze o 90 stopni. Przyciski znajdują się mniej więcej po przeciwnej stronie tych przelotek. Zatem możemy założyć, że te ścieżki są zwierane z, zakładam, że z masą, ale to trzeba będzie jeszcze sprawdzić. W tym celu wykorzystamy w multimetrze funkcję wykrywania zwarć. Jedną z elektrod połączymy najlepiej z obudową gniazdka HDMI, bo tu na pewno jest masa. Drugą będziemy przykładać do ścieżek. Tylko że na nich znajduje się lakier izolujący. Można go zeskrobać lekko, ale zaraz, odwróćmy płytkę raz jeszcze. Mamy sporo szczęścia, po drugiej stronie ścieżki biegną do pustych pól lutowniczych, w które nic nie wstawiono. Wynika z tego, że płytka jest używana w serii monitorów, gdzie w niektórych wypadkach klawiatura sterująca stanowi osobną płytkę, którą łączy się przewodami z bazową. A ponieważ tutaj klawiatura została osadzona lokalnie, złącz nie wlutowana. Bierzemy więc wspomniany miernik zwarć i łączymy po kolei wszystkie styki, wciskając przyciski na panelu frontowym. Po chwili mamy już całą rozpiskę. Jak widać, nie ma tutaj styku wyłącznika monitora, ale z tego zrezygnuję, bo wydaje mi się, że nie ma sensu nim sterować. Służy tylko do włączania i wyłączania duszącenia. Pozostałych sześciu styków przyda nam się, więc podłączymy sześć przewodów, lutując je wprost albo używając goldpinów i gniazdek. Obok ładnie podpisano masę, więc siódmy przewód podłączymy tam. Użyłem takiej taśmy dwustronnej, która bardzo dobrze trzyma przewody na miejscu, więc nie wyrwiemy ich przypadkiem. Obudowę monitora lekko spiłowałem, wysuwając w tym miejscu taśmę. Całość możemy już skręcić, acz za chwilę jeszcze tam zaglądnę. Klawiatura. Gdy teraz będziemy zwierać ze sobą masę i kolejne przewody, otrzymamy symulację pracy klawiaturki. Wszystko działa jak należy, więc trzeba przejść do kolejnego etapu. I tu zaczną się schody. Najprościej byłoby podłączyć się do Arduino wprost. Niski stan oznacza zwarcie, czyli wciśnięcie przycisku, natomiast puszczenie oznacza... no właśnie, to wcale nie musi być stan wysoki, a powinien być stanem tak zwanej wysokiej impedancji, jako że oryginalnie w taki właśnie wpadają linie klawiatury niewciskanej. Ale może jednak dla monitora będzie to tożsame ze stanem wysokim, czyli napięciem równym 5 V. Podłączmy woltomierz i niewciskana klawiatura to napięcie 3,3 V. Istnieje ryzyko, że gdy podamy tam 5 V, zniszczymy nasz monitor. Rozwiązania są dwa. Pierwsze to przejść na Arduino 3 V. Można, ale wciąż będziemy połączeni z urządzeniem, a niesie to ze sobą szereg problemów. Interfejs klawiatury niekoniecznie był zaprojektowany w ten sposób, by można było tam podłączyć jakieś rozbudowane systemy i mogą pojawić się przekłamania i różnego rodzaju, bliżej nieokreślone kłopoty. A gdybyśmy tak hakowali jakieś urządzenie z wyższym napięciem, bardziej rozbudowane albo wręcz połączone w sieć? Tworzymy kolejne pętle mas, sprzężenia i tak dalej. Zasadą projektowania takich rozwiązań jest izolacja. A tę mogą zapewnić transoptory albo przekaźniki. Przekaźnik jest idealny w teorii, ale taki sobie w praktyce. Nie można nim pstrykać bez opamiętania, nie jest też szybki. Wymaga prądu, a więc i wzmacniaczy, kosztuje i generuje zakłócenia. Ale zwarcie to zwarcie, zero ohmów, a brak zwarcia to nieskończenie dużo ohmów. Transoptor nie ma żadnej z wymienionych wad przekaźnika, ale nie da zera ohmów przy oświetleniu siedzącej wewnątrz diody świecącej i spadek napięcia na fototranzystorze także nie będzie zerowy. Zwykle będzie się mieścił w przedziale napięć, interpretowanych jako stan niski, ale... no właśnie, zwykle. Okazało się, że Chińczycy wcale łatwo się nie poddają. Klawiatura Struktura tej klawiaturki jest bardziej chytra niż się nam wydaje. Tak naprawdę mamy tutaj dwie linie, a nie sześć i dzielniki rezystorowe tak dobrane, że zwieranie tych linii wymusza pojawienie się trzech przedziałów napięć. Więc wystarczyłoby nam się tutaj podłączyć dwoma liniami, ale analogowymi. Podawalibyśmy konkretne napięcia i układ interpretowałby to jak wciśnięcie konkretnego przycisku. To jest sposób, ale nieco skomplikowany. Należałoby szałkować przebiegi PWM i dobrać szybkość zmian tak, by nie były rejestrowane napięcia przejściowe. Zrezygnowałem z tego pomysłu na rzecz sześciu linii sterowanych transoptorami. Tak sobie to będzie teraz wyglądać. Po złożeniu całości po kolei podrzucałem napięcia na kolejne transoptory. W dwóch przypadkach nic się nie działo. Myślałem, że mam uszkodzone elementy, więc podmieniłem wyprowadzenia i nadal nic z tego. Po pomiarach okazało się, że napięcie spada do 100 mV, a klawiatura reaguje dopiero gdy spadnie do 50. Wymieniłem więc rezystory sterujące diodami w transoptorach z kilooma na 220 ohmów, dające zdecydowanie duży prąd 15 mA, ale dopuszczalny dla wszystkich ogniw układu. Napięcie spadło do 60 mV, interfejs już działa, ale nie zawsze. Sytuacja wydawała się beznadziejna. Wysypałem wszystkie transoptory z szufladki i rozpocząłem testy. W końcu znalazły się takie, które dają mniej niż 40 mV, a to wystarczyło do pewnej pracy klawiatury. Uff, można będzie działać dalej. A co w przypadku gdyby się nie udało? Cóż najprościej byłoby użyć przekaźników. Są takie, które zadowolą się prądem 30 mA, co może nieco niezgodnie ze sztuką, ale praktyka wskazuje, że tak można, dałoby się sterować wprost z pinów Arduino, które dopuszczają 40 mA, acz z agnotacją, iż nie zaleca się. Na szczęście nie muszę tego sprawdzać, ale jeśli ktoś byłby do tego zmuszony, jest rzeczą bardzo ważną, by nie zapomniał o diodach gaszących przepięcia na każdej z cewek przekaźnika. A najlepiej po prostu nie dziadować, tylko użyć ULN-a. Innym rozwiązaniem byłoby nawiązanie bardziej inteligentnej współpracy z układem za pomocą wspomnianej generacji napięć i do tego kiedyś przejdę. Skoro jednak wszystko działa, trzeba będzie przejść do kolejnego etapu, ale o tym już w następnym odcinku. Napisy stworzone przez społeczność Amara.org