Mam więc ten skaner RFID el-cheapo i kilka tagów RFID.
Pomyślałem sobie: wiesz, co byłoby fajne? Włączanie i wyłączanie ekranu blokady za pomocą tej rzeczy.
Tak więc paczka dotarła, a ja ją rozerwałem i połączyłem.
To urządzenie emuluje klawiaturę USB (która wyjaśnia, co pchali bez sterowników) i zasadniczo wpisuje identyfikator karty i wprowadza liczbę uderzeń.
Pomyślałem, że mogę po prostu otworzyć ciągły strumień z / dev / stdin (a la keylogger) i sprawdzić, kiedy wybrana karta jest wbita. To doprowadziło mnie do stworzenia tego głupiego prostego skryptu:
#! / bin / bash cat / dev / stdin | podczas czytania linii zrobić jeśli [„$ line” == „0000996716”] następnie powtórz „Prawda!” fi gotowy
Który działał!
Potem zmienił ówczesny oświadczenie polecenia odblokowania gnome-screensaver, gnome-screensaver-command -d
.
I ręcznie zablokowałem ekran ( Ctrl- Alt- L) Przesunąłem kartę i ... i nic. Skaner właśnie wpisał numer karty w polu hasła i wcisnął Enter, co powoduje wyświetlenie „nieprawidłowego hasła” na ekranie blokady.
Odblokowałem więc ekran za pomocą hasła i zauważyłem, że na ekranie terminala nic nie ma.
Więc otworzyłem bezpośredni potok /dev/stdin
i zablokowałem ekran. Odblokowałem je moim hasłem i ... nic więcej.
Dlaczego to nie robi tego, czego oczekuję? Nie /dev/stdin
zawiera informacji wpisywanych na ekranie blokady? Jeśli nie, co robi?
źródło
Odpowiedzi:
Cóż, chłopaki, ssicie: P To było trochę specyficzne i niszowe, ale nie będę miał tego przeciwko tobie;)
Tak czy inaczej, dla pełnego zaniedbania.
Kupiłem tę zgrabną małą jednostkę, która opisuje się jako „bez sterownika”, jak w oryginalnym poście. Oznacza to, że działa jak klawiatura USB (i rejestruje się jako taka w / dev / input / event *). Uczyniło mnie to niemal bezużytecznym, ponieważ nie mogłem w żaden sposób wchodzić w interakcje z urządzeniem, gdy ekran blokady był aktywny, musiałem czytać naciśnięcia klawiszy z urządzenia, ponieważ były one „wprowadzane” przez czytnik Cating
/dev/input/event3
(mój czytnik) ) dała mi śmieci, a przynajmniej tak mi się zdawało.Potem natknąłem się na ten fragment kodu tutaj: http://itech-planet.net/content/reading-device-input-directly-fromto-devinputeventx-ubuntu-c bez? autora, którego widzę, ale większość zasług za pracę nóg w tej aplikacji należy do niego. Dzięki! Upraszczając ten kod, byłem w stanie odczytać nieprzetworzone dane wejściowe z własnej klawiatury, przy czym tajne wyrażenie jest „tajne” i przystąpiłem do przechwytywania naciśnięć klawiszy w zmiennej i sprawdzam, kiedy naciśnięty został klawisz „Enter”, aby sprawdzić ciąg znaków względem zapisanej wartości dla kodu.
Ten kod jest w zasadzie uwielbionym keyloggerem wskazującym na inną „klawiaturę” i skanującym to, co „wpisuje” do pasującej frazy. Podobnie jak FBI przesuwa miliony AOL IM od 13-letniej dziewczyny szukającej terrorystów!
Gdy trafi w pasującą frazę, uruchamia instrukcję if i uruchamia resztę odpowiedniego kodu. Skomentowałem to najlepiej jak potrafię, jeśli masz jakiekolwiek problemy, napisz do mnie e-mail / pm / im / krzyk.
Nie tak, jak to czytasz, po prostu chcesz kod! Cóż, oto jest!
Stosowanie:
Więc ja, będąc Tylerem, z moim urządzeniem w / dev / input / event3 i moim tagiem 0000996716 miałbym:
KOD:
źródło