Hello World kontra Hello Apple: co widzisz, gdy patrzysz na ten obraz?

Dec 18 2021
Przykładowe zrzuty ekranu pokazujące, jak wszystkie cztery odmiany wyglądają dla różnych użytkowników. Wszyscy pamiętamy pytanie „Jakiego koloru jest ta sukienka?” zjawisko, a następnie „Yanny vs.
Przykładowe zrzuty ekranu pokazujące, jak wszystkie cztery odmiany wyglądają dla różnych użytkowników.

Wszyscy pamiętamy pytanie „Jakiego koloru jest ta sukienka?” fenomen, a następnie „Yanny kontra Laurel”. Teraz świat ma obsesję na punkcie nowej łamigłówki, która postawi użytkowników Apple przeciwko ich długoletnim rywalom.

Oto jak to działa: spójrz na ten obraz na komputerze PC lub telefonie z systemem Android (lub jakimkolwiek innym produkcie firmy innej niż Apple). Następnie wyświetl ten sam obraz na urządzeniu Apple. Jeśli korzystałeś już z komputera Mac, iPhone'a lub iPada, przełącz się na inną platformę.

Spróbujmy jeszcze raz z innym obrazem .

Całkiem schludnie, co? Podczas przeglądania pierwszego obrazu na komputerze PC lub telefonie z systemem Android powinieneś zobaczyć komunikat „HELLO WORLD”. Na urządzeniu Apple ten sam plik obrazu brzmi „HELLO APPLE”. (Istnieje zastrzeżenie, które omówimy bardziej szczegółowo poniżej).

Drugie zdjęcie jest jeszcze potężniejsze. Na urządzeniu innym niż Apple obraz przedstawia stary IBM PC, ale przełącz się na i-device, a zobaczysz starego Maca.

OK, więc co tu się do cholery dzieje? Niech inżynier i kryptograf David Buchanan — twórca tej układanki — wyjaśni:

„Znalazłem to podczas pisania własnego wielowątkowego dekodera PNG. Zastanawiając się nad moim projektem, zdałem sobie sprawę, że mam błąd implementacyjny, który można wykorzystać” – napisał Buchanan w poście na blogu . „Kiedy dowiedziałem się, że Apple ma własną implementację równoległych dekodowanych plików PNG, zdałem sobie sprawę, że popełnili dokładnie ten sam błąd!”

W uproszczeniu istnieją różne sposoby dekodowania obrazu. Można to zrobić w jednym wątku lub w równoległych wątkach podzielonych na bloki (metoda używana do przyspieszenia działania programów), jak próbował Buchanan. Odkrył błąd we własnym projekcie, a potem okazało się, że Apple popełniło ten sam błąd. Ustalił, że możliwe jest wyrenderowanie pliku PNG, gdzie: decompress(a + b) != decompress(a) + decompress(b) (gdzie != oznacza nierówne). Oznacza to, że dwie części zdekodowane oddzielnie, a następnie połączone razem, nie zawsze dawały takie same wyniki, jak te same dwie części zdekodowane razem.

„Może się to zdarzyć, jeśli a kończy się w połowie nieskompresowanego bloku. W związku z tym obraz może mieć dwie możliwe interpretacje, w zależności od tego, czy dekoduje go równoległy, czy nierównoległy dekoder” – kontynuował Buchanan.

Dla was, sceptyków, kiedy pokazałem te obrazy mojemu bratu, naukowcowi z University of Virginia, zaszyfrował pliki (przekształcił je w liczby) i potwierdził, że są one rzeczywiście takie same, udowadniając, że Buchanan nie tnie narożniki, udostępniając różne pliki w zależności od używanej przeglądarki lub systemu operacyjnego.

Jeśli masz problem z odtworzeniem tej układanki, może to mieć związek z twoją przeglądarką, ponieważ sztuczka opiera się na oprogramowaniu Apple, a nie na sprzęcie. Po obejrzeniu obrazu na wielu urządzeniach i w wielu przeglądarkach dowiedzieliśmy się, że produkty Apple z przeglądarką Safari zawsze będą wyświetlać HELLO APPLE, podczas gdy urządzenia innych firm korzystające z innych przeglądarek będą wyświetlać HELLO WORLD.

Ale sprawy stają się mylące, gdy zaczniesz mieszać i dopasowywać.

Podczas korzystania z przeglądarek innych niż Safari na urządzeniach mobilnych Apple (iPad, iPhone) pojawił się komunikat HELLO APPLE. Co dziwne, przy użyciu tych samych przeglądarek — na przykład Chrome, Opera, Edge — na komputerze Mac pojawił się komunikat HELLO WORLD. Chociaż nie możemy być pewni, sugeruje to, że aplikacje przeglądarki napisane dla App Store korzystają z biblioteki obrazów renderowania PNG firmy Apple, podczas gdy przeglądarki pobierane jako programy w systemie macOS używają własnego parsera PNG.

Niezależnie od przypadku, jeśli chcesz wziąć udział w zabawie, Buchanan opublikował narzędzie o nazwie „Ambiguous PNG Packer” , które pozwala każdemu tworzyć obrazy, które wyglądają inaczej, gdy są uruchamiane przez oprogramowanie Apple. Powinniśmy jednak ostrzec, że te odchylenia w analizie plików graficznych mogą stanowić zagrożenie dla bezpieczeństwa i coś, co według Buchanana „należy podejść ostrożnie”.

Aktualizacja o 13:30 ET: Pierwotnie opublikowaliśmy ten artykuł z osadzonymi zdjęciami. Niestety, nasz CMS zmienił pliki na tyle, by przełamać iluzję. Zaktualizowaliśmy artykuł o linki prowadzące do zdjęć, które powinny wyglądać inaczej na Apple niż na innych platformach.

przez BleepingComputer