W porządku, chłopaki.
Mamy więc teraz naszego Furby'ego razem z naszym smartfonem.
I sugerowałbym po prostu zacząć to hakować.
Pierwszą rzeczą, którą musimy zrobić, jest obudzenie Furby'ego, ponieważ po przebudzeniu
sklep reklamuje się w tym obszarze i możemy go odebrać.
Ok, więc zróbmy to.
Okej, więc po prostu naciskam przycisk na tym Furby i Furby staje się dość głośny.
Mam nadzieję, że to nie jest takie straszne.
W przeciwnym razie muszę wziąć osobny mikrofon.
Zobaczmy więc.
Dobrze.
Tak więc Furby budzi się teraz i możemy teraz połączyć go z aplikacją mobilną.
Na szczęście ta aplikacja mobilna również nie jest już dostępna.
Ale to nie jest wielka sprawa, ponieważ niektórzy ludzie dokonali inżynierii wstecznej całego protokołu
i stworzyli własną aplikację, która może rozmawiać z tym Furby, nawet jeśli ten Furby cały czas rozmawia w tle.
Tak.
Dobrze.
Wróćmy więc do pulpitu i przyjrzyjmy się tej aplikacji mobilnej.
W porządku.
Zalogujmy się więc tutaj.
Mamy to już teraz.
Więc to jest aplikacja mobilna.
Można to znaleźć na J Stone, dot GitHub, dot IO.
Tak więc cały hack komunikacyjny Furby został zidentyfikowany przez niemieckiego studenta.
Jaki pseudonim nosi Cha Cha?
Ale niektórzy ludzie rozszerzyli rzeczy, które odkrył i tak, napisali kilka niesamowitych aplikacji.
Na przykład ten tutaj.
Tak więc teraz klikamy połącz przy okazji, tylko w przeglądarce Chrome, ale przeglądarka Chrome jest
również w stanie wykonać Bluetooth Low Energy.
Widzimy, że mamy tutaj Furby'ego.
Niesamowite.
Połączmy to z tym.
No i proszę.
Więc teraz jesteśmy sparowani i możemy zobaczyć.
Tak, kolory anten tego Furby'ego zmieniały się dość często.
Teraz mamy aplikację mobilną i możemy zmienić kolor anteny.
Na przykład dwa czerwone, zielony, niebieski i biały.
Czerwony, zielony, niebieski i biały.
Czerwony, czerwony, czerwony, czerwony, czerwony, czerwony.
Dobrze.
Wydaje mi się więc, że mamy już wystarczającą ilość danych.
Odłączmy się od tego Furby'ego.
Uśpijmy go.
Uśpijmy go jeszcze raz, aby nie był już tak irytujący.
W porządku.
A teraz pobierzmy dane ze smartfona i przeanalizujmy je w BioShock.
Wróćmy więc do pulpitu.
Dobrze.
A teraz otwórz nowy terminal.
Raport ATP Back.
Furby.
Ponownie, ten raport pobierze wszystkie dane, nie tylko te związane z Bluetooth Low Energy,
ale czasami ten plik nie jest dostępny na smartfonie.
Chciałbym przedstawić rozwiązanie, które działa przez cały czas.
Następnie przyjrzymy się zrzutowi Wireshark i spróbujemy zidentyfikować koncepcję stojącą za tym
kolorem anteny.
A potem pokażę ci kilka naprawdę niesamowitych rzeczy, które możemy z tym zrobić.
Furby.
W porządku.
Dobrze.
Nie daj się zwieść 93%.
Potrwa to dość długo.
Do zobaczenia za chwilę.
Dobrze.
Więc mamy to już teraz.
Umieśćmy to po lewej stronie.
Myślę, że możemy to już zakończyć.
W porządku.
Zbadajmy to.
Oto nasz łyk Furby'ego.
Wyodrębnijmy go.
W ramach danych Ef-s, misc, blokad Bluetooth mamy teraz Bluetooth, dziennik BT Snoop HD i ten, to jest ostatnia
blokada.
Więc ostatnim razem użyliśmy tego.
Otwórzmy więc nowy terminal, kliknijmy prawym przyciskiem myszy, otwórzmy nowy terminal i otwórzmy ten plik w Wireshark.
Chłopaki.
Czasami zajmuje to chwilę, zanim zdasz sobie sprawę, że kamera blokuje wszystkie ważne rzeczy, które
właśnie chciałeś pokazać.
Przyjrzyjmy się zatem temu plikowi.
Po raz kolejny wciąż mówimy o przechwytywaniu Bluetooth Low Energy między smartfonem a aplikacją
Furby.
Zmieniliśmy więc kolor anteny z czerwonego na jaki?
Jasnozielony, niebieski i biały, to chyba kilka razy.
A na koniec zmieniliśmy go na czerwony jeszcze kilka razy, prawda?
Absolutnie.
Dobrze.
Rzućmy więc okiem.
Dobrą rzeczą jest to, że nadal możemy ignorować wszystko pomiędzy hostem a kontrolerem, więc możemy przewijać w dół.
Dobrze.
Musimy sporo przewijać w dół.
I oto mamy.
Więc dorośnijmy jeszcze raz.
Tak.
Tutaj możemy zobaczyć, jak trzy ostatnie kęsy Maca są adresowane.
To jest nasze urządzenie pixel two.
I tutaj mamy teraz pełny adres Mac.
Jeśli więc Apple rozgłasza swoją nazwę, jest to niesamowite, ponieważ teraz zdecydowanie wiemy, że jest to urządzenie
Furby, ale dostawca tego adresu Mac nie jest znany Wiresharkowi.
To znaczy, to nic wielkiego.
Zidentyfikowaliśmy już to urządzenie i przypuszczam, że nie ma tam innego połączenia, więc możemy być
pewni, że jest to nasze trzecie urządzenie.
W porządku.
Przyjrzyjmy się tej sprawie.
Po raz kolejny smartfon wysyła żądanie i prosi o ogólny profil atrybutów tego
Furby.
I tutaj czasownik odpowiada tym.
Tak, tutaj widzimy, że generic x to profil.
Tak więc smartfon po prostu pyta Furby'ego: hej, Furby, jakie usługi oferujesz?
A Furby po prostu odpowiada listą cech i usług, które oferuje Furby, na przykład
kolorem anteny.
Ok, więc zobaczmy, czy możemy znaleźć ten pakiet dotyczący koloru anteny i powiększmy
go trochę, ponieważ widzieliśmy wymianę informacji.
Wykonuje całkiem sporo zdjęć.
Dobrze.
Więc to, czego teraz szukam, to pakiety od smartfona po Furby.
Zobaczmy więc.
Tak.
Wydaje mi się, że mamy tutaj kilka pakietów, które pochodzą ze smartfona.
Ok, zbadajmy to.
Mamy więc teraz urządzenie pixel two i naszego Furby'ego.
I widzimy, że mamy właściwe dowództwo.
Brzmi to absolutnie interesująco, ponieważ smartfon nakazuje Furby'emu zmianę koloru
anteny.
Więc najprawdopodobniej jest w dobrym dowodzie.
Widzimy więc, że tak, wysyłamy to do Furby'ego.
Polecenie na tym uchwycie.
Otwórzmy ten.
I to jest teraz uid usługi, a ten jest uid charakterystyki, więc myślę, że znowu
są różne.
Zapisujemy więc do tego uid wartość 14 f0000.
Przyjrzyjmy się kolejnemu pakietowi.
Interesujące jest również to, że właściwa komenda nie czeka na odpowiedź.
Tak więc po prostu wysyłamy komendę do tego Furby'ego, ale nie czekamy, aż odroczony Furby odpowie na
tę komendę.
Widzimy więc, że mamy tutaj kilka żądań, ale żadne z nich nie ma takiego źródła jak Furby tutaj.
Więc po prostu wysyłamy żądania ze smartfona do tego Furby.
Dobrze.
Teraz sugerowałbym przyjrzeć się innym pakietom i zaobserwować, jak zmienia się wartość
tutaj.
Weźmy więc ten pakiet.
Och.
To się nie zmienia.
Również to samo.
W porządku.
Przejdźmy trochę wyżej.
Co my tu mamy.
I to samo.
Teraz to się zmienia.
W porządku.
Zmienia się z 50000 na wszystkie FS.
Och, to zmienia się po raz kolejny.
0000f ten.
Jeszcze raz, 00400.
Dobrze.
Mamy więc dobre przeczucie, że jest to związane z kolorem anteny.
A jeśli pomyślimy o tych krokach, które wykonaliśmy i otwórzmy ten.
Więc wysłaliśmy antenę w kolorze czerwonym, zielonym, niebieskim, białym, czerwonym, zielonym, niebieskim, białym, może
jeszcze raz, nieprawda o tym.
Czerwony, zielony, niebieski, biały.
Ale potem wysłaliśmy czerwony, czerwony, czerwony, czerwony, a potem nie rozłączyliśmy się.
Tak więc ostatnimi zdjęciami w naszym połączeniu dotyczącym uchwytu, o który często proszono wcześniej, powinien
być nasz czerwony kolor anteny.
Racja.
I zobaczmy.
Dobrze.
Mamy więc tutaj programy obsługi o numerach od 0 do 6.
Dobrze.
Jest to obecnie wartość 2006.
Dobrze.
I zobaczmy.
Ten model to 14 f0000.
Przejdźmy trochę wyżej.
14 ff00 14 f f f 14 f f.
Ok, więc ten kod wydaje się być kodem do zmiany koloru anteny na czerwony i teraz wszystko zależy od ciebie.
Czy możesz już dowiedzieć się, jak ten kod jest skonstruowany, abyśmy mogli na przykład wysłać kolor anteny, który
nie jest tutaj uwzględniony?
Wybierzmy kolor anteny, na przykład żółty.
W porządku.
Pomyśl o tym przez chwilę, a potem dam ci dodatkową wskazówkę.
W porządku, na wypadek, gdybyś już mógł to rozwiązać.
Doskonale.
W ten sposób można analizować połączenia Bluetooth Low Energy i bawić się nimi.
Aby zidentyfikować wzorce i zrekonstruować, co te bity i bajty mogą oznaczać w przypadku, gdybyś nie mógł już
tego rozgryźć.
Absolutnie nie ma problemu.
Zaobserwowaliśmy tylko jeden pakiet, ale mamy dostęp do wielu pakietów.
Zobaczmy więc, zanim zmienimy kolor na czerwony, użyliśmy szerokiego, co oznacza, że pakiet, gdy się zmienia, powinien być reprezentacją
w odniesieniu do kodu koloru białego.
Zobaczymy, kiedy to się stanie.
Dobrze.
Tutaj?
Nie.
No i proszę.
Dobrze.
Tutaj następują zmiany.
W tej chwili wartość, która oznacza, że jest to teraz reprezentacja koloru białego.
Więc może jeszcze jeden pakiet.
Jeśli ten jest biały, poprzednie opakowanie powinno być niebieskie.
Zobaczmy.
W porządku.
I myślę, że dzięki tym informacjom może to być teraz jasne.
Mamy więc 14 z przodu.
Dobrze.
A potem mamy trzy kęsy dotyczące koloru.
Czy to Archie może być taki czerwony, zielony, niebieski?
Chyba tak.
Zobaczmy, czy ten jest niebieski.
Wcześniej mieliśmy zielony, co oznacza, że jeśli te dwa bity są czerwone, to powinieneś mieć 00f dla zielonego.
Zero zero.
Zobaczmy.
Doskonale.
Jest to więc po prostu kod koloru w formacie RCB.
Liczba 14 z przodu oznacza adresowanie zamierzonego koloru.
Ponieważ ostatni pakiet widzieliśmy tutaj.
Dotyczy tego samego uchwytu, ale ma zupełnie inną strukturę.
W porządku.
Dobrze.
Więc naszym zadaniem byłoby teraz wysłanie czegoś, co nie jest zawarte w tej aplikacji.
Na przykład kod dotyczący koloru żółtego.
Czy wiesz, które bajty musimy wysłać do tej charakterystyki?
Więc do tego uuid.
Jak powinny wyglądać te bajty.
Pomyśl o tym przez chwilę, a wtedy znajdziesz rozwiązanie.
Ale domyślam się, że już to rozgryzłeś.
Zobaczmy więc.
Dobrze.
Więc jesteśmy tutaj z powrotem.
Jeśli więc chcemy wysłać kod koloru żółtego, musimy użyć koloru czerwonego i zielonego, co oznacza, że pakiet
powinien wyglądać następująco 14 f f dla koloru czerwonego.
F F dla zielonego, tak i zero zero dla niebieskiego.
Więc czasami trochę trudno jest zapamiętać wszystkie te kolorowe rzeczy.
Ale tak, 14 ffff00 powinno być kodem koloru żółtego.
Chodzi mi o to, że ten nie jest uwzględniony w tej aplikacji.
Więc jeśli to zadziała, mamy dodatkowe funkcje, które nie zostały tutaj zaimplementowane.
Absolutnie.
Niesamowite.
Racja.
W ten sposób analizujemy połączenie Bluetooth Low Energy.
Chodzi mi o to, że te narzędzia usługowe, a także te cechy są teraz dobrze udokumentowane i możemy
je sprawdzić.
Ale jest to coś, co możesz zrobić później, jeśli chcesz się tym pobawić.
To znaczy, musisz się odnowić, ale jest to coś, co staje się bardzo szybkie, absolutnie irytujące.
Dlatego nie jestem pewien, czy chcesz to mieć.
W porządku.
Wypróbujmy to teraz.
Zastanówmy się, jak możemy wyliczyć te cechy Furby'ego i, co najważniejsze,
jak wysłać do niego dane.
Czy jesteś na to gotowy?
Więc chodźmy.
Zacznijmy w końcu hakować tego Furby'ego.
Ok, więc aplikacja, której potrzebujemy lub którą polecam, to aplikacja od Nordic.
Więc ten tutaj, podam ci również link dotyczący tego.
NAF Connect, otwórzmy to.
Widzimy, że natychmiast rozpoczyna skanowanie, jeśli oczywiście Bluetooth jest włączony.
Widzimy tu również naszego Furby'ego.
Doskonale.
Połączmy się z tym Furby.
I zobacz.
Widzimy, że mamy teraz klienta i serwer.
Jeśli wrócimy do klienta, zobaczymy, że mamy teraz ogólne atrybuty dostępu, a także nieznane
usługi.
Powiększmy to idealnie tutaj.
Możemy teraz zobaczyć wszystkie te cechy, a także zobaczyć, powiadomienie, odczyt, zapis, brak odpowiedzi,
powiadomienie i odczyt i tak dalej.
Jedyne, co musimy zrobić, to zidentyfikować UUID, A, B, dziewięć tutaj, a następnie zapisać
tę wartość.
14 Co to było, czerwony i 14.
ffff00.
Myślę, że to była wartość.
Zobaczmy więc, pierwszą trudną częścią jest zidentyfikowanie tego, ponieważ widzieliśmy,
że może to być tylko jeden bajt i odróżnienie tego UID od innego.
Dobrze.
Po pierwsze, możemy również nawigować, ponieważ ten górny klawisz strzałki oznacza, że możemy pisać do tej charakterystyki,
więc możemy już zignorować takie rzeczy jak ta.
Ok, więc to ten?
Nie, to nie ten.
Tak, chyba go znalazłem, więc zakładam, że to ten tutaj.
Zobaczmy.
Dobrze.
Teraz musimy być bardzo ostrożni, ponieważ piszemy teraz dwa w charakterystyce i możemy uszkodzić
lub zepsuć Furby, jeśli nie wiemy, co robimy.
Mam nadzieję, że wiesz, co robimy.
Zobaczmy, 40 ffff00, a teraz obserwujmy kolor anteny tego Furby.
Zobaczymy, czy zmieni kolor na żółty w stosunku 3 do 1.
Doskonale.
Nieźle.
Możemy zobaczyć ten kolor anteny.
Ups, ten kolor anteny.
Ta droga zmieniła kolor na żółty.
Ta funkcja nie jest więc włączona w tej aplikacji.
Ale tak, zidentyfikowaliśmy to na własną rękę, analizując pakiety, które wysłaliśmy do tego Furby,
natychmiast się wyłączył.
Ale myślę, że jeśli wyślesz go ponownie, powinien zostać.
Zobaczmy.
Nie, powinno być fffff00 oc wysłane 3 do 1.
Tak, teraz pozostaje aktywny.
Nie wiem jak długo, ale zobaczymy.
Super.
Możemy ingerować w tego furby'ego, a także.
Tak.
Wykonaj pewną akcję, która nie została zdefiniowana w ten sposób.
Niemniej jednak cha cha już wykonał niesamowitą robotę i ma wiele fajnych funkcji, które można znaleźć w tym Furby.
Na przykład ten tutaj.
Wróćmy do tej aplikacji.
To, nawiasem mówiąc, nie jest aplikacja, którą napisała cha cha cha.
Cha Cha Cha napisała to w niebieskiej puchowej aplikacji, ale to nie wymaga krzeseł.
A ta może być używana nawet w przeglądarce Chrome.
Zobaczmy więc, połączmy się z Furby.
Dobra, połączmy się z tym.
W porządku.
Oprócz tych kolorów anteny, mamy kilka innych niesamowitych funkcji.
Na przykład, mamy Deepaka.
A jeśli możemy, na przykład, wyłączyć oczy Furby.
3 do 1.
Możemy również włączyć to ponownie.
Ale teraz najbardziej niesamowitą częścią tego, Furby, jest polecenie debugowania, ponieważ jest
to polecenie DB.
Możemy również wysłać to samodzielnie, a ten wydrukuje interfejs terminala na oczach tego Furby.
Brzmi absolutnie szalenie, prawda?
I tak właśnie jest.
Dlatego przybliżmy je nieco, ustawmy obok siebie i zobaczmy, jak to wygląda.
Dobrze.
Teraz mamy je obok siebie.
Zobaczmy.
Naciskam debugowanie w 3 do 1.
No i proszę.
Niesamowite.
Racja.
Tak więc widzimy i ekran terminala pojawia się na tych oczach.
Przybliżmy nieco bardziej.
Niesamowite.
Widzimy więc pełnię dobrego samopoczucia i tego typu rzeczy.
Możemy również cyklicznie przechodzić przez to polecenie debugowania i gotowe.
Więc teraz.
Otrzymujemy jeszcze więcej informacji.
Więc to jest całkiem fajne, ale może być jeszcze fajniejsze, ponieważ oprócz tej funkcji mamy również
coś takiego jak akcje i tutaj możemy zobaczyć Legendary.
Jest to predefiniowana akcja, która jest już zawarta w Furby.
Tak więc słownik jest w stanie wykonać animację w ich oczach.
Na przykład w odniesieniu do papryczki chili lub w odniesieniu do gwiazdek i melona i tym podobnych rzeczy.
Jest to specjalny format pliku stworzony przez Hasbro.
Tak więc okno Furby i tak, niektórzy ludzie dokonali inżynierii wstecznej i stworzyli własne pliki.
Zanim przejdziemy do tego, odtwórzmy istniejący plik.
Więc tutaj, zróbmy to w 3 do 1.
Furby, jak wygląda ten kurs?
Legendarny.
Absolutnie.
Więc Furby krzyczy, że to zadanie jest legendarne.
I jestem prawie pewien, że są to wstępnie zdefiniowane działania, które mogą być wyzwalane przez Bluetooth Low Energy.
A teraz na koniec dodajmy niestandardowy plik i niestandardowy plik DLC do tego Furby.
Ten plik został już utworzony przez ludzi z firmy kontekstowej, a ja go tylko ponownie wykorzystuję.
Więc nie ma kredytów dla mnie ani kredytów dla kontekstu.
Ale ten jest całkiem niezły.
Zróbmy więc tak.
Powiększmy nieco obraz.
Proszę bardzo.
A teraz wybierzmy coś naprawdę fajnego.
Więc ten, ten, to plik DLC i niestandardowy z kontekstu firmy.
A ten jest animacją, animacją AI, a także plikiem audio.
Zróbmy więc tak.
I 3 do 1.
Proszę bardzo.
Czyż to nie niesamowite?
Tak więc firma wyświetla się teraz jako zhakowana i wykrzykuje dziwne rzeczy.
A także te obroty silnika są włączone.
Więc to jest zajebiste, prawda?
Absolutnie.
Dobrze.
Jest to również koniec naszej podróży Bluetooth Low Energy.
Te dwa filmy stały się dość długie.
Tak, ale wydaje mi się, że to wyjaśnienie bardzo pomaga.
Jeśli chcesz przeanalizować niektóre połączenia Bluetooth Low Energy, również opcję deweloperską,
ten plik wysokiego bloku jest bardzo pomocny w całym procesie.
Ok, więc dzięki za cierpliwość i dzięki za przebrnięcie przez to.
Jeśli coś jest niejasne, nie martw się, nie musisz mieć tej wiedzy, aby przejść dalej w tym kursie.
Była to swego rodzaju dodatkowa sekcja dotycząca Bluetooth Low Energy.
W porządku.
Dobrze.
Dlatego naprawdę nie mogę się doczekać, aby zobaczyć cię w następnym filmie.